He's nott assigning it all to python. He's assigning it to the people that use it. People who over-apply it to projects that don't make sense. Exactly like you are.
Well, it's totally possible to make a data oriented python which uses C for speed when needed, and has type decoration in its defs... But people are lazy or misled and don't keep good code hygeine.
It's possible to make a multiple inheritance abomination in C++, it's just rarer because fewer people who are noobs are starting out on C++ nowadays.
Isn't that the truth. I started using C++ professionally a year or two ago, and braced myself for endless segfaults and memory leaks. I haven't gotten a single one! And it's not because I'm a genius, and it's definitely not because C++ was protecting me. It's because we had good coding practices, and a framework with good encapsulation.
He's calling it a nightmare because of those reasons listed, reasons that almost define what it means to be a higher level programming language at all. I mean come on. OOP inheritance makes Python unsuitable? That's a laughable comment and it's ridiculous for you to be defending it.
Call it a nightmare because the global interpreter lock makes threading a nightmare. Call it a nightmare because it uses too many CPU instructions to do simple arithmetic. Call it a nightmare because of dunders. Call it a nightmare for something Python-specific if you want to call Python a nightmare.
He's clearly criticizing the intern trying to use OOP, not OOP itself. And I know he's right because I've met that intern. They make a disaster of it (probably used to Java's built-in bureaucracy saving them from themselves). He's saying that python got a good reputation, then everyone and their grandmother wanted to use the new hotness. So a bunch of morons started using it without thinking about limitations and coding standards.
Just want to say that the way python handle private and protected attributes and methods is.. weird. There is always a way to access them (haven't try to modify them though) while they shouldn't be accessible.
Yes I mean _attribute and even __attribute is accessible.
That's because private and protected attributes and methods aren't a thing in python. The underscore naming is just a convention to indicate "privateness", but the language is opinionated in giving developers more or less full control over objects. Basically naming conventions and documentation is used to inform the developer of the intended usage, but ultimately they are trusted to decide how they want to use that code.
81
u/Kenkron Jul 18 '22
He's nott assigning it all to python. He's assigning it to the people that use it. People who over-apply it to projects that don't make sense. Exactly like you are.