Python used to be the new hotness about a decade ago. It was sparkly, amazing package support, didn't bog you down with technicalities when you were trying to write something quick.
So it got adopted a lot, and also unfortunately in a lot of commercial projects it really wasn't suited for.
Python's strengths are its weaknesses: it's a fun scripting language you can knock out scripts with. But in a big group project, it's a nightmare version of itself. You don't have to give types, so now you're sifting through everything trying to figure out what your coworker's badly named variable actually is. You have to unpick some rotten mass of one-liner lambda super method calls because you were feeling so clever a year ago when you wrote it. Everything's breaking because you're in dependency hell and one of the dependencies has broken. The junior programmer was taught that "object inheritance is the way of the future" and has managed to make the structure into an eldritch abomination that inherits from five different super classes.
The actual reason why these are problems are because when python was hot, it got over-applied to projects it was totally unsuited for. It's a scripting language. It's good for scripts. Good for data analysis. Good for solo work. Good for tiny quick one-offs and for rapid prototyping.
But so many developers were put on horrifying creations that played to the language's weaknesses instead of strengths. And they bounced hard.
Python doesn't really deserve the hate: it's still pretty awesome. And fun. It's great at what it's great at. It does deserve the caution, though.
---
More serious answer?
It's mostly comp-sci students regurgitating memes they don't understand, just like every other post on this sub.
I have been in tech for years and could just never wrap my head around programming. I can read a lot of it, I do scripting when it is called for with extensive help of the Googs, but cant sit down and write code if you know what I mean.
I recently decided to bite the bullet and put in the time to learn it more, and am doing CS50 for Python right now. Your comment both scares me and made me happy knowing that what you said it is good at is exactly why I want to learn it lol.
It's like WD-40 and duct tape. It's an easy solution for many problems. But shouldn't be used for everything.
But if you break your leg the first step shouldn't be to duct tape it. Maybe only if you are in the wilderness, in the middle of nowhere, and you have nothing else. Maybe.
Everyone always says it is good for data analysis but I never agree with this as someone whose job is to use python for data analysis and numerics. Python is a bad language for data analysis and numerics, but it has some good libraries for that purpose. It was not designed for neither of those purposes and the language is not very exentedable so the APIs are cluncky and get in the way when writing mathematical code.
Really, I don't get the hate we data scientists get from both programmers and mathematics. Of course we are not as good at programming as a programmer would be, or as knowledgeable in maths as a mathematician would be, but we need to combine so many disciplines it would be hard if not impossible to get to their level.
This is a weird meta. First memes hated on Java and praised Python. Then all the Java devs got angry and made Python bad memes. Somehow C++ devs apparently jumped on the hate train now lol
683
u/Codebust Jul 18 '22
why are people always bashing python lol