Python is the most popular programming language and beloved by many. However I can't understand why (this is still the case in 2024).
Here are my main gripes with it:
It is slow, performance intensive tasks have to be offloaded to other languages, which makes it complicated to analyse. Moreover I wonder how many kwH could have been saved if programms were written in more performant languages. (and there are better alternatives out there)
The missing type system makes it easy to make errors, and the missing compiler makes it hard to catch them
It has no linear algebra built in, so you always have to convert things to numpy arrays, which is quite annoying
Managing virtual environments and pip packages feels overly complicated
I guess much comes down to personal, but I just can't understand the love for python.
I mean others don't seem to have the same problem with Python as me, so if it is right for them, I can't really complain, but I would use the following languages for the following tasks
Scientific Computing (my main area): I prefer Julia, it is faster, feels more intuitive and feels like a modern python for scientific computing
Web: there are many great frameworks out there, i am intrigued by phoenix for elixir
Game Developement: Nobody use python in games to distribute for anything heavy I hope, but for scripting I would use Lua
Learning: Python is often the first language, that people learn, and I guess that also explains it's widespread use to some degree. I would teach something less high-level like C as a first language, although I think writing "high-level code" also has a learning curve to it.
Scripting: Fine, I guess python is great for small scripts, although one could also use Ruby