I think this is more like a rant.
Holy Christ! I've been using Python to do some simple scripts here and there, and what a terrible language to deal with (yea, terrible, just down vote and move on, I need to say it somewhere).
Why would anyone change so many standards? I often need to deal with PHP/JS at the same time and I don't have a single issue, they feel like the same language in practice, but when it comes to Python everything changes.
I just hate this more human-readable philosophy of Python, we need a common ground to communicate with the machine, I don't want fancy keywords or syntax, it's not that hard to learn a new syntax, it might take a few days, it's not worth the trade off of changing so many standards that older languages came with.
For some reason every single code I write feels aesthetically ugly. I feel like the letters are just floating around without brackets and curly brackets.
I often mistake a lot of:
for x in list:
With:
for (x in list):
And it's done, syntax error, I need to go back and do it "Python way". It's way harder to read Python code than anything else, I want to read what the for loop expression is evaluating, and the lack of brackets make it harder to assimilate.
Don't even let me talk about types! Why would you provide a way to type parameters but don't enforce it at runtime? Jesus Christ! It could be simple: if you type a parameter, you want it to be checked, if not, you wouldn't type anything. You need to import built in types, why would any human on Earth make a decision like that? (from typing import List, Optional)
Why so many different ways to declare an array-like structure? Tuples, Sets, Dicts, Lists? Dude... ffs, I know each one supposedly has a "different" purpose, I literally don't see any good benefits on it. It just makes me more confuse.
I'm not talking about 3rd party libraries like mypy, I'm talking about things that should be on language core since the first version.
The more I learn about Python, more it pisses me off. I'm mainly using it because of interoperability, easy to setup, it runs flawlessly in any OS and Python usually comes pre-installed in many OSs, but the experience of developing in this language is just terrible.
You have picked some weird hills to die on there.
This is fine. Many languages now do it. The extra brackets around a for or if dont really add any clarity or make things easier or harder to read. This is the type of thing you just get used to and prefer what you are used to. You get over it quickly.
This is a bit stupid, but really is legacy reasons for it. Since it didnt use to have static type declarations and wants to remain somewhat backwards compatible it needs to ignore them at runtime. But as a JS and PHP developer you should be used to this. Both do the same thing as python here with types (well, TS for JS and the many other attempts at getting types into JS). So it is weird that you are singling out python for this behavior.
DIcts are not array like here. Tuples sets and lists are all common is many languages as well. PHP is a real weird case here given everything, even arrays are effectively a dict - that is a strange language design feature. But Java is way worst for different types of array types in the language.
What? I hate setting up python projects. Each one wants to use a different dependency or version manager. Yeah you might have python on most systems but they are all different versions and python is famously terrible at backwards compatibility. It seems every few versions they throw something in the breaks some existing scripts so you really need a version manager for things. Which is more complex setup and management of things. There are far too many different tools to help you with this and fetching dependencies which means if you work on lots of different projects by different people you have a hodge podge of diffing tools you need. It is a complete mess.
Personally I hate python as a language, but you have picked some minor points that IMO dont really matter or that the other languages you use also suffer from. There are far better things to pick from that are far more annoying in the language.
It's been a while I don't use JS without TS, so idk. But PHP enforces type check at runtime, latest versions you can declare argument types as classes, interfaces, etc... It's a very pleasant experience IMO.
Idk I have more reasons to hate it, I'm just thinking if there's any good reason to not forget the existence of Python and go back to TS as a general purpose scripting language.
Regardless of whether the internet tells you anything or not, just do whatever the fuck you’re happy doing. If you want to code in cobol code in cobol, if you want to code in js code in js, if you want to code in python code in python.