Why is Python popular?

Hello Everyone, I am new to this community and I want to know why python is so popular? I am thinking to build a career as a python web developer but I have some confusion regarding to what the average salary of a python developer in India and what skills should be required to become a python developer. Can anyone suggest me?

I think that for any profession it is important to express yourself with clarity.

Your question header is: ‘Why is Python popular’, but in body you ask also following questions: ‘what the average salary of a Python developer in India’; ‘what skills should be required to become a python developer’.

Your post ends with ‘Can anyone suggest me?’ About popularity (as your header suggests), average salary or skills required?

Python Zen stipulates: ‘In the face of ambiguity, refuse the temptation to guess.’

Please remove ambiguity to empower others to answer your question.

2 Likes

So sorry for the confusion but I am asking that everyone goes with python nowadays, So why is python so popular. I want to know, Is the salary high in python if yes so how can I become a python developer?

I am asking that everyone goes with python nowadays

This one is easy one. What you are asking is nicely covered with answer to the Ultimate Question of Life, The Universe, and Everything. And the answer is 42.

/…/ the answer seems meaningless because the beings who instructed it never knew what the question was

Just an idea: could you be more specific in your questions. Like in programming, decompose one big problem into smaller ones and solve them one at a time.

Howdy Shivam,

there (at least…) are three completely different areas of commercial software development:

  1. web development
  2. application development
  3. embedded development

How Python is used also differs from country to country. My answer is based on the experience of being a professional software developer in Germany for some decades.

Concerning 1:
In the area of web development, Python yet almost exclusively is used in the area of Backend (and/or server side) development. This often is connected to Big Data business.

If you want to earn money in this area, good knowledge in Javascript as well as about Web Frameworks etc. is mandatory, if you ask me. Being a mathematician or at least a statistician or alike is helpful to get big data contracts too.

Maybe Pyodide — Version 0.17.0 can change this in the mid / long term.

At the moment, if you want to become a web developer, my recommendation is to start with Html, CSS and Javascript and after that go on with Python.

Concerning 2:
Commercial (standalone) applications with GUIs are seldomly developed using Python. The predominant languages here are Java, C++ and C#.

Those applications either run on mobile platforms alike Android (which is strongly entangled with Java) or on Windows (which is strongly entangled with Microsoft products alike Visual Studio and .NET).

As Java seems to be dying (sloooowly) already, my recommendation, if you want to earn money in this area, is to go with C# and .NET.

Concerning 3:
Embedded software (unfortunately) still is developed mainly with C. In this area, you won’t get rich with high level languages alike Python, C# or alike.

In this area, knowledge in digital electronics is mandatory, if you ask me.

General Advice:
For earning money in Germany, Python unfortunately is not very relevant yet. It is slooooowly getting stronger, but yet, no…

Also be aware, that freelancing on your own in Germany is near to impossible, you just get projects from big companies via personnel service providers alike Hays AG, Gulp Information Services GmbH, DIS AG, Solcom GmbH, top itservices AG and others.

The alternative is an employment at a german company, which won’t be too easy too, being from India… Remote definitely is not accepted very well in Germany! If you introduce the term “fully remote” in a negotiation in Germany, you are out in 98 out of 100…

Good Luck and
Cheers, Dominik

PS: it would be very interesting to hear how it works in US, UK, Canada, Australia, New Zealand and alike / and others? Personally I am very interested in France and Switzerland too… :heart_eyes:

IMO, Python is popular because it’s simple yet powerful, and requires few words per idea expressed compared to most languages.

I have no idea what the average salary of a Python developer in India would be. Perhaps ACM or IEEE would have data like that. There may be some recruiters in India who could provide you with that kind of data too.

As far as skills, that depends on what kind of Python development you want to focus on - but they pretty much all require the ability to break down a task into simpler subtasks, understanding Performance to some extent (EG don’t use a list where you’re better off with a set or tree), datastructures and algorithms.

If you want to do applications, let us know what operating system you’re interested in. For Linux, I’d probably go with pygobject. For Windows, perhaps have a look at Pyside2. For Mac, I really don’t know, but I’ve done a little pygobject on Mac too.

If you want to do embedded Python, have a look at Micropython.

If you want to do web applications, perhaps have a look at Django.

If you want to do backend work, have a look at Flask (the safe choice) or FastAPI (the up and coming one).

If you already know some other programming language, perhaps see BeginnersGuide/Programmers - Python Wiki . I’m a bit partial to the Youtube video series I created for this: Python for Developers part 1 of 7 - YouTube

If Python will be your first programming language, perhaps see BeginnersGuide/NonProgrammers - Python Wiki

HTH.

Because Guido van Rossum and committed Pythonistas have managed to have a perfect combination of: an intuition for a very elegant and readable syntax for a dynamically typed interpreted language; a very committed community dedicated to keeping the pathos of writing highly readable code alive; an open mind and foresight to allow for a humongous standard library and C extensions API; and luck to have these factors and a technical ability to create a programming language appear before something like Ruby or Lua became too big to host big name projects and flagship libraries like NumPy or Django.

I would speculate that the main two reasons why Python became so extremely popular is primarily because Django/FastAPI and Node.JS became more popular than Ruby on Rails as a web backend of choice, and people chose Python over R as their go-to language for machine learning libraries like Tensorflow and PyTorch because for aspects not related strictly to data manipulation it arguably became a more mature backend language due to features like optional static typing and dataclasses.

@Vladimir Pathos? Also, I don’t think Python is statically typed, even with type annotations. It’s more gradually typed, and that only in static analyzers.

mypyc is sounding pretty interesting though.

I mean, an option to have type hints. Call it however you like. It isn’t anywhere near as powerful in R as it is in Python via PEP 484, and more recently with NumPy typing module.

With regard to Java’s supposed slow death:
https://www.tiobe.com/tiobe-index/

JVM and Android are too big to let Java die.

With HTMX, learning Javascript for the front end is no longer mandatory :wink:

2 Likes

Maybe in freelance, but good luck telling that to the HR lady if you’re applying to junior frontend developer positions.

HTMX is indeed quite amazing, though. From what I’ve heard, you can build extremely impressive websites with nothing but pure Django + HTMX.

I’ve only glanced at it (hadn’t heard of it before this thread), but it looks to me like a DSL rather than a true replacement for actual code. DSLs tend to land in one of three broad categories (or sometimes in the overlap between them):

  1. Highly limited tools that grant restricted capabilities, usually to users with lower authorization than the executor. This includes a number of game modding scripts (you can’t mess with the game rules any more than you’ve been given permission to do), and some highly capable forms of configuration file (eg where the config is defined to be a JS or Lua script, but the only real effect it’s allowed to have is to return a config mapping).
  2. Command execution languages whose capabilities closely correlate to an execution engine, and which are limited to what that is capable of. These tend to grow in power as their engines do, but are much easier to write for than the corresponding engine itself. My Twitch channel bot has a highly flexible command interpreter with a graphical editor, but I use it mainly because it’s easier for simple tasks than writing raw code to do what I want.
  3. A bug-ridden, ad-hoc implementation of about 90% of a real programming language. Usually the result of a type 1 or type 2 growing more and more features until it almost becomes Turing-complete, but those features were never planned or designed. (Greenspun’s Tenth Rule covers a number of these.)

Where is HTMX in this? My reading of it is that it’s a Type 2, possibly stretching towards Type 3. If what you want to do can be done easily in HTMX, then great, have fun! But what if it can’t? How hard is it to do what you want to do?

Rather than tools that offer to remove the coding work from a task, I generally prefer tools that say “here’s a set of features that automate common tasks”. For example, one very common concept in my work is a server that synchronizes data across a set of WebSocket clients, and those clients all receive the same data every time there’s a new update. To make this easier, I built myself a set of tools for both the back end and front end, making it trivially easy for the front end to say “when there’s data, do this”, for the back end to say “let everyone know there’s new data”, etc, etc. But it doesn’t replace actual code; it’s simply some functions with predefined names. You want full coding power? You still have it.

So the notion that “learning JavaScript for the front end is no longer mandatory” is, IMO, a bit of a myth. Sure, you can do some things without any code, but try writing something that isn’t in the tutorial, and see whether you can still do that without code. Most likely, you’ll need either an actual programming language, or something with the same power as a programming language but without any sort of actual design.

(You know, like PHP.)

2 Likes

I got this years ago from (as I recall) Sean Reifschneider and Evelyn Mitchell when their company (the now defunct) tummy.com had a table at an early Python Workshop (before things graduated to conferences). I think its sentiment is appropriate for the thread.

5 Likes

Comment of the year 2022.