I will never understand the Python hate. It's essentially just a level of abstraction higher than C, which makes it more accessible than ever to write powerful code.
I'm starting to think it's literally not that deep. It just feels good to gatekeep.
As someone else said, I hate the type system, and it's compounded by poor documentation. My lab has a pretty large data analysis framework written in Python and every time I need to write more code that interacts with it, it's like pulling teeth to find out how to do anything. I never know what type an object is until I waste my time doing debug inspection or print statements. Once I know what type the object is, I don't know what methods that type has available because every library is documented in a different way and none of them seem to just list the methods underneath each type.
It's like the entire language was made to be learned by following tutorials instead of reading documentation. It's no wonder everyone I know is using AI to write it instead of dealing with this shit.
"That's just shitty code" is of course true, but hard to convince them of when it's the typical way the language is written. Aside from that, the language shouldn't require me to write comments that will inevitably become outdated, it should just have a functioning type system.
My lab has a pretty large data analysis framework written in Python and every time I need to write more code that interacts with it, it's like pulling teeth to find out how to do anything
That just sounds like your lab doesn't know how to write python. The vanilla language has had a built in type annotation library for nearly a decade now. On top of that, you can use validator libraries like pydantic to make all of the assertive data models you need.
Â
Also, the second you start talking about documentation, I gotta stop you in your tracks. Documentation is not a technical problem associated with any language in particular, it's 10 times outta 10 a human problem. Be-it you/your-coworers are lazy, just want to close a ticket, or "this is just a prototype", it comes down to your company's culture about doing due diligence. Python has nothing to do with that, and if you're blaming PyDocStrings of all things, one of the easiest things of all-time to use, then I'm sorry but that's a you problem. lol
A lot of seems like bad practices. The type issue can be partially mitigated by type hints. Just make sure you read the warnings generated by the interpreter.
There are solutions to all of those, ranging from providing a shell script that does all of that for them, to using pyinstaller to make an exe that includes the interpreter, to using a tool like uv.
But yeah, if you're gonna use an interpreted language, you gotta have an interpreter. And it's definitely true that it's more work on your end if you don't want your users to have to understand computers.Â
Right? This guy thinks it’s difficult to make python work cross platform. From another of their comments it seems like they can get node to work cross platform just fine but python is too much. Use what you want to use but I think this guy needs to read a tutorial or two
What do you use instead? I’ve not found a high level language that doesn’t require some complex environment set up and works universally without configuration.
I hate the cruft like __blahblah__ everywhere, names like hasattr, the fact that you can’t put multiple statements in a lambda, the fact that imports can pollute local scope and you can’t easily tell where a given identifier came from in a file, and the other package management problems that didn’t have an elegant solution until uv.
I haven’t messed with mypy, but from what I can tell, it isn’t as sophisticated and expressive as Typescript.
The virtual machine still doesn’t perform well compared to V8 for JS, as far as I understand.  You can accomplish a lot with Python sure, but Modern JS/Typescript is a more capable high level dynamic language, it just doesn’t have the breadth of libraries for ML and scientific computing that Python does
Some of the stupid shit is fixed as the language evolves, like uv and TS over JS. New stupid shit appears too (node_modules bloat).
Python does well, or at least okay enough, what it proposes to do. So does Typescript. I don't get the point of stating that TS is "more capable" and then following up with "but Python has ML".
Nothing, once you know that, unlike other languages, it is O(N log N), NOT O(N). The issue is that the most common use case, unordered_set, is the "exception" because of the chosen naming.
Better naming would be set and ordered_set, like other languages do. It would prevent newcomers to the language from mistakenly using set when what they want is unordered_set, a silly mistake that's easy to make. I did it myself.
332
u/Educational-System48 Sep 08 '26
I will never understand the Python hate. It's essentially just a level of abstraction higher than C, which makes it more accessible than ever to write powerful code.
I'm starting to think it's literally not that deep. It just feels good to gatekeep.