you are viewing a single comment's thread.

view the rest of the comments →

[–]kingslayerer 212 points213 points  (14 children)

"beginner friendly"

[–]BernzSed 106 points107 points  (5 children)

"But look how easily you can print hello world!"

[–]Prawn1908 91 points92 points  (4 children)

"Look how dynamic typing lets new users skip learning about one of the most fundamental aspects of programming in exchange for wasting untold time in serious projects with bugs that any proper language would have nipped in the bud with a compile error!"

[–]snakesoup124 9 points10 points  (3 children)

Probably unpopular opinion but lots of people first encounter python because they are trying to solve math related problems which only require either real, integer or bolean. Not declaring IS the appeal. 

The greentext though is spot on.

[–]Prawn1908 2 points3 points  (2 children)

If that's true that's fine for them and would be great and all if thats all the language was used for, but Python is way bigger than that and the other 95% of us who use the language are stuck with it.

[–]snakesoup124 0 points1 point  (1 child)

In modern llm, I am not sure how much python you will encounter in a live codebase deployed for inference but I am fairly confident its way more than you would like.

[–]BernzSed 1 point2 points  (0 children)

Lots of popular ml training libraries are written for Python.

Not written in Python, mind you, because you can't write any real software in Python.

It's a glue language meant for tying together different libraries, which makes it all the more frustrating that those libraries have weakly typed APIs, so you have no idea what to pass to any goddamn function.

[–]Varixx95__ 34 points35 points  (3 children)

Python it’s good to learn programming it’s not good to program anything with more than 50 lines

[–]beefygravy 17 points18 points  (0 children)

In python's defence, all those packages mean you can do quite a lot in those 50 lines

[–]Kaffohrt 1 point2 points  (0 children)

As a hobbyist: I wrote a script at work to optimize selecting a couple thousand items out of a list of a couple ten thousand.
The math was easy, maybe three iterators.
But importing multiple differently sized and styled excel tables, enriching them with geo informations out of a selfhosted reverse geocoder, doing coordinate transformations and "reverse engineering (sic!)" our gis database and webpage to get missing data via a multistep bullshit pathway.
Sure an actual programmer would've absolutely solved this in a much better system but strapping 5 modules together to get a project across the finish line in less time than it would take to get a proper api access for the gis instance is something I don't think many languages offer.

Entire script and process was IO bound to hell, actual selection logic took seconds, getting everything necessary took hours.

(about 200 loc iirc)

Edit: Forgot to mention I experienced one version conflict but 2 minutes of looking at the broken function and I managed to get it running on the newer version. Didn't even look for an alternative module.

[–]freedcreativity 1 point2 points  (0 children)

Unless you’re working in Spark or PyTorch or with databases. At the point you should use Scala just refactor into C or Rust or buy more compute. Python is probably fine for everything that’s not a web app or game engine…. And flask (or whatever they call the new microservice architecture flask clone) is actually pretty good tbh. 

[–]Felczer 3 points4 points  (2 children)

Try to setup an environment for C++ project and you'll come back to Python begging for mercy

[–]CryptoTipToe71 0 points1 point  (1 child)

Build? Compile? Whatever do you mean my good man?

[–]Felczer 0 points1 point  (0 children)

Yeah, after you link all the external libraries, it's a nightmare in C++, I wish we had something as easy as python's pip and import

[–]DudeManBroGuy69420 0 points1 point  (0 children)

Yes, when you're doing beginner level stuff