Predicting it now. A large part of the "why" is going to be because of the jump in data science. Python is an incredibly kind language to new comers in the sense that it allows you to just get started. A lot of people are making bigger jumps into data science (purely anecdotal) in the sense that they are programming more around it. Scraping data, cleaning data, etc is also really easy with Python. Devops stuff is als…
I think the "why" is because, for many users:
* they want a small and easy, dynamically-typed, garbage-collected language with few surprises (see `import this`). Perl misses out here.
* they want something built with C so there's easy access to native libraries. Languages on general-purpose VMs miss out here.
* I don't think they want something that transpiles/compiles down to some other lower-level language (which I suspect leads to difficult debugging). Maybe Nim misses out here.
* they're comfortable with imperative-style programming. Maybe lisps and Haskell miss out here.
* Python is fast enough for most things where C-speed isn't needed. Very-high-level languages chasing dreams of high performance mostly miss out here, IMO.
* they want a language that helps them catch their mistakes. IMO, maybe Lua misses out here (with default nil everywhere).
* Users want a general-purpose language. Again, Lua misses here, though, of course, Lua's goal isn't to be general-purpose anyway.
* I think many users also want a language that's licensed GPL-compatible. Clojure misses out here.
* they want a nice helpful community
* Users want a language with familiar C/C++/JS/Java -ish syntax. Python misses out here! {ducks}
Python has its own set of problems, but it hits all those marks except for the last one. So, it's gotten quite popular.