Python is very pragmatic choice because there are simply so many libraries but Python as language is not very elegant or beautiful. A syntax that depends on whitespace is not easy for beginners or anyone else (have you tried copy+pasting Python code?). Having Begin/End keyword that Starts/Closes a block is much more clear, even for beginners. Parenthesis or curly brackets are also very clear (but shorter to write). How about working in a team? 1 person who has configured their editor to insert 4 spaces while everyone else uses 1 tab char can (will) cause trouble if you code in Python.
Some List functions in Python are functions but others are methods, which is confusing for beginners. Why lst.remove() but len(lst)?.
Would it have been better if OOP in Python was provided by separate module? Lua and Tcl* does this (core Tcl now includes TclOO). Why doesn't range(n1, n2) func include also number n2
(it includes n1...(n2 - 1)) but the stdlib random.randint(n1, n2) func does include n1...n2 ???
Also, the only reason why Python replaced Perl, is that Python was pushed by Google (before Golang). The proponents of Python also resorted to FUD. They said that "Perl is write-only language" and they then showed some code golf example code and said "look!". They also showed bad code written by beginners. But it's important to keep in mind that Perl used to be the beginner's programming language before Python. There is plenty of bad code written in Python now.
Why is packaging and package management so broken and fragile in Python land? Perl has CPAN and it has been around for a long time and it works well. Ruby has gems that also just works™. Rust has cargo etc. Everyone else can do it but why can't Python?
I should also mention GIL and the overall bad performance of Python, too...
51
I also like sigils in Perl5. It makes it 100% clear what kind of variable you are dealing with (is it a regular/"scalar" var or array?).
https://raku-advent.blog/2022/12/20/sigils/