Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I find it difficult to argue with its success.

Python underwent one of the most poorly conceived backwards incompatible version updates of any language. I believe that it did irreparable damage to Python's position as an application making or web stack language.

Yet today, it is still one of the most popular languages out there. I believe you can place this popularity at the feet of its outreach programs, which parlaid into being able to find new niches which it is currently thriving in.



From all the surveys I've seen, the demographics of Python users haven't meaningfully changed over time. (And the core dev team is still over 90% male as best I can determine, although there doesn't seem to be an authoritative list.) It's far more plausible that the popularity owes to its viral success as a "glue" language in data analysis and "scientific" applications, which lead to familiarity and adoption for ML applications that are connected to today's AI hype. It also saw a boom during the COVID lockdown; and the choice of Python here can largely be attributed to network effects.

In short, languages like Perl and Ruby didn't have a NumPy equivalent (PDL doesn't appear to be on anything like the same level, and Numo is a newcomer), while languages like R and Julia don't have the same perception as general-purpose (i.e. suitable for integrating numerical computing applications into a wider context).

Python isn't in these niches because of demographic-specific outreach programs, as demonstrated by the demographics of the niches.

Also, the updates were not "poorly conceived", although they were initially released half-baked. If anything, they didn't go nearly far enough.


> It's far more plausible that the popularity owes to its viral success as a "glue" language in data analysis and "scientific" applications

I actually agree with you on this point. It's just that I believe that Python's focus on outreach is why it caught on in those applications in the first place. Without it, I feel like Python would probably occupy the same amount of mindshare of something like Ruby, and those niches it currently occupies would probably have been eaten by JavaScript.

It's certainly not because of any merits of the language itself as being newbie-friendly. I've had enough non-programmer friends and family asking me to explain why whitespace is used for blocks and the difference between using `==` and `is`.....okay I'm going to stop now before I start ranting.

> Also, the updates were not "poorly conceived", although they were initially released half-baked. If anything, they didn't go nearly far enough.

One fun little anecdote I love to throw around is that in the span of time that Python underwent a single seismic update, PHP underwent two, and did a much better job of enticing developers to make those jumps.

The difference is that PHP didn't break the entire universe at once, it just made small, backwards-incompatible changes that you could either shim, or rip through your project and do in-place fixes for. On the other hand, it also gave developers enormous carrots to entice them into upgrading - 5.3 had namespaces which allowed for clean code separation, and 7.0 was *significantly* faster. I hear PHP 8 now has a JIT compiler.

Meanwhile, it took forever for Python to give developers enough tooling to cleanly support Python 2 and 3 in one codebase, and it also lacked enough of a carrot to entice developers to upgrade. Projects like Mercurial thought that the upgrade was a complete waste of time and wish they had switched languages instead. The first Python version I was actually excited about was 3.5 because of type hinting and async/await, and there were still Python 2 holdouts up until the point when 2.7 was finally EOL.

So...."not far enough"....I beg your pardon? I feel like that would've gone even worse, and ended up in a repeat of Perl 6/Raku.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: