> 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.
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.