top | item 44010269

(no title)

lesser23 | 9 months ago

Having been around for a long time I liken it to PERL. Post-PERL it also looks a lot like Ruby. I remember everything being re-written in Ruby. Yet PERL still stands!

Anyway, Python is a nice language for small-ish (< 1000 lines or so) projects. It starts to get very unruly after that and without a type system of any kind your brain becomes the type system... and the compiler. MyPy tries it's best but it really isn't sufficient and requires developer buy-in...hard to get in a language so well designed for throw-away code.

Python 3's syntax is actually quite nice and you can write some very expressive code in it. My opinion, of course, but I also find it to be one of the "lowest common denominator" languages like Go. Python doesn't require much to get started and it's syntax and semantics are relatively easy for even a mediocre programmer to understand. Of course it has a terrible (mostly non-existent ABI) that relies on "consenting adults" as the contract and an awful package system. Yet another reason it's really only practical for (relatively) small projects.

Rarely is anything in Python about raw performance - imo. Of the things that are (NumPy, Pandas, various ML libraries) they call down to C handle most of it. For things that require true parallelism it's not uncommon to see `exec` calls to binaries. That being said in a lot of places (FastAPI based applications, etc) you can get quite a lot of perf out of Python before it becomes a problem.

However, what makes it super nice is how easy it is to hack something together in it. As it turns out most of ML is just hacking things together in a few files or a Jupyter notebook. What a perfect language for such purpose. This is not unlike PERL. I still remember all the random PERL scripts I hacked together for various tasks because it was so simple. It is no wonder it is as popular as it is.

discuss

order

nathan_compton|9 months ago

It may be the case that most software engineering is just hacking pieces of software together, but Python still does a pretty bad job of it. Python libraries tend to be weird/poorly designed and pretty hard to actually use. R is a much nicer/more expressive language for ML stuff. Again, the only real advantage python has here is that everyone else is using it.

lesser23|9 months ago

Maybe I’m just suffering from Stockholm syndrome but I haven’t really had trouble using most libraries in Python. I do agree however that Python makes it harder to write reusable code.

To quote Bjarne Stroustrup there are only two kinds of languages: the ones people complain about and the ones nobody uses :).