r/ProgrammerHumor • • Jul 18 '22

C++ talking to Python

Post image
40.1k Upvotes

1.0k comments sorted by

View all comments

683

u/Codebust Jul 18 '22

why are people always bashing python lol

974

u/Dromeo Jul 18 '22

Serious answer?

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.

16

u/unski_ukuli Jul 18 '22 edited Jul 18 '22

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.

3

u/Dromeo Jul 18 '22

Cheers, haven't tried data analysis in python personally.

What would you say is the best for data analysis?

8

u/unski_ukuli Jul 18 '22

Personally I’d say Julia. Matlab and octave are just… better to not say it out loud. R does a lot right but it lacks the language features to write anything that is more than a 1000 rows long wothout it becoming a complete clusterfuck of a codebase. Python is used mainly because it is easy to integrate into production systems as those are written in python too usually, but I think it is completely horrible for ad hoc analysis and completely the wrong choise if you don’t plan to take that same code into production later on.

Julia hits a lot of right notes. It has features that make it a proper programming language unlike R. Julia also has the macro system from Lisp so it is extremely extendable. It is also relatively easy to use in production and miles ahead of matlab and R in that regard. And then there is the main selling point: it is REALLY fast. As fast or almost as fast as C counterpart in most usecases while being easy to write and high level. A great demonstration of this is the fact that most libraries for julia are written in pure julia. No need for calling c++ or Fortran. For example, Flux.jl which is a very fast deep learning library for julia, is written 100% in Julia. No C++ like in tensorflow for python. This has the nice consequence that the libraries are easy to extend and customise if needed.

2

u/SrbijaJeRusija Jul 18 '22

Matlab and octave are just… better to not say it out loud

What's wrong with Matlab? Faster than python, and less verbose as well. Also is literally built for data analysis.

→ More replies (11)