I certainly don't like the discussion which is going the way: Python is popular, because people are idiots.
That's just the currently most prevalent conclusion, because nobody has provided a better one.
Sure, there have been some members who do claim that popularity is indicative of fitness/usefulness/quality, but the tangential threadlets show that if we look at humanity on the whole, that does not tend to be the case: popularity has its own mechanisms, and is basically orthogonal to usefulness/quality. There is a reason why marketing and branding works.
I could draw a parallel here to systemd and how it has affected Linux distributions in a negative way. It was promoted primarily via social and commercial (primarily inside RedHat, now IBM) means, and not its technical prowess. It since started metastasizing and gathering weakly related and even unrelated projects under its own project umbrella. And as a project, systemd is definitely not interested in software engineering or software quality; only in popularity and achieving a dominant position.
A lot of people do not mind, but I do: there is a reason why
Unix philosophy,
modular design, and the
KISS principle work in software design and engineering; and discarding those principles just to become more popular –– dominant –– is a bad deal. (Just go read Debian discussions about adding user choice, and how adamantly systemd-umbrella-projects oppose that. "Dominant" is very applicable there.)
Instead, consider the reasons
why Python is becoming more popular. Popularity itself is not good or bad; we need to examine
why it is happening to form a rational opinion of the situation.
I use Python on the server back-end, but not because Python as a language is well suited for that task; because in practice, it is better than the other practical alternatives: PHP, Perl, and Ruby. If back-end developers are satisfied with Python (or the other languages), why would anyone put any resources into developing something better?
I also use Python for user interfaces. Because Python has a very nice Foreign Function Interface – I can interface my Python code to native dynamic libraries by only writing some glue code in Python –, I can use one of several widget toolkits to implement the user interface, and let my end users even modify it if they want, without having to expose any of my sekrit sauce (which I provide in a separately-licensed machine code dynamic libraries). However, Python I/O is rather slow, and the way it insists on separating strings (str type) and byte sequences (bytes type) is definitely not optimal. There are other features that others consider less than optimal. In any case, if UI developers are satisfied with Python, why would anyone put any resources into developing something better?
I do not have enough experience in teaching programming (quantitatively, as in I haven't taught enough students to have a representative sample), to know whether Python being increasingly used as an introductory programming language. I know it is definitely better than Java or Borland C, which are still very widely used in education, but I believe teaching a variety of programming languages instead of concentrating on one is a better approach.
I definitely do not want Python to gain a dominant status. As an interpreted language, it revealed very important features (like how to do the interfacing to native machine code libraries
right), but is very far from the best we can achieve, if we just keep at it.
And thus, the complexity in the topic reveals itself.
I'm hoping that the quick automotive detour jolts some other member's mind, that because of the detour, they describe an useful observation about Python (and programming languages in general) and the changes in popularity thereof, that would otherwise have left unsaid. A linear discussion is not an exploration of the subject; but at least to me, the
value of this thread is exactly in its exploration of the reasons for the increased popularity of Python.