Live data from Hacker News

The Python Paradox (2004)

paulgraham.com

101–110 of 275 posts

Re: The Python Paradox (2004)

#101
post #43

It was right then, but it's kind of dated and misses an evolutionary lesson: beautiful code isn't enough, it has to be safe, beautiful, maintainable, productive, understandable, and resource efficient. Ruby is still great for throwing something together fast and maintaining it until it runs into scale problems. It added gradual typing with sorbet and RBS. Crystal is a neat typed, compiled Ruby-alike but it's buggy. R…

> Haskell and Idris are beautiful and powerful, but inaccessible to most software engineers. I don't see any fundamental reason why that should be the case. It seems to me that while it's true that most engineers would have a hard time navigating these languages today, it's mostly due to socio-historical accident. It's not because the languages are particularly difficult or arcane, it's mainly because people don't al…

I believe that to be mostly true for Lisp or ML-family (OCaml, ...) languages, but not for Haskell. Reasons would be: - lazy evaluation can be tricky if you work with files, you have to profile and force strict evaluation at key points to avoid memory explosion. - refactoring something to work with the IO monad is hard - typing some higher-order functions is hard

It may be subjective, but even for the syntax I felt a much stronger cognitive load working with Haskell.

Re: The Python Paradox (2004)

#102
post #41

Yeah it is dated. Python got hyped and now people learn it because data science hires python people, and data science pays well, not because they care.

I remember Python being hyped for being a good beginner language and a good web programming language(Django, Flask). It does seem that Python has settled into a niche as one of the mainstream data science languages.

There's a saying "Python is the second-best language for everything".

Re: The Python Paradox (2004)

#103

It was right then, but it's kind of dated and misses an evolutionary lesson: beautiful code isn't enough, it has to be safe, beautiful, maintainable, productive, understandable, and resource efficient. Ruby is still great for throwing something together fast and maintaining it until it runs into scale problems. It added gradual typing with sorbet and RBS. Crystal is a neat typed, compiled Ruby-alike but it's buggy. R…

You missed TypeScript, which has advanced generics with union support and the JS ecosystem is getting better each day and it’s ubiquitous.

Re: The Python Paradox (2004)

#104
post #68

Funny how emergence works with tools. Give a language too few tools but viral circumstances - the ecosystem diverges (Lisps, Javascript). Give it too long an iteration time but killer guarantees, you end up with committees. Python not falling into either of these traps should be understood as nothing short of magic in emergence. I only recently discovered that python's reference typechecker, mypy, has a small side pr…

I haven't followed development of the Python language in a while but this article was featured last week [1] and it does feel like committees. I have followed development of C++ and... yeah, committees and subcommittees. [1] https://chriswarrick.com/blog/2023/01/15/how-to-improve-pyth...

Well, in reality it’s more complicated there always were approaches through committee and approaches outside (conda being an initiative, and lately there is an explosion of tools making use of the pyproject.toml interface).

with packaging there are things the committee is good at (making sure that a change to packaging does not break packaging for certain configurations and use cases) and individual initiatives outside of the committee often had drawbacks improving packaging in some area and making it worse in others. But the “committee” then was able to take inspirations into the committee which means there is the best of both worlds.

IMHO the python PEP process is a good example of python going the middle way.

Re: The Python Paradox (2004)

#105

Earlier quoted context omitted.

Or Rust, which is very popular on HN.

Rust is "not as used" but it has a following who hype it to the point that I've avoided taking time to relearn it just due to the strange vibes I get from their community. These people once mentioned, on twitter, that people who hate systemd are like reactionaries (as in, politically far right), as if a choice of init is a correlative of political ideology. When you view others' preferences for fucking software as so…

>These people once mentioned, on twitter, that people who hate systemd are like reactionaries (as in, politically far right), as if a choice of init is a correlative of political ideology. When you view others' preferences for fucking software as so important to your world view that they might as well be nazis[0], you can tell your priorities are not in order.

I hate that everything is politically-coded nowadays, but, honestly, as much distaste as I feel even writing this, I think they're not entirely wrong / there is something significant underlying that sentiment. Especially post-2014, nearly everything on the internet, including open source technology, is highly entangled with the culture wars. For better or worse, Rust really is left-coded and anti-systemd sentiment really is right-coded. A lot of this stems from the 4chan /g/ (Technology) board's staunch opposition to systemd and Rust + the broad cultural influence 4chan retains to this day. I've been a 4chan regular for over a decade and have seen all sides of this.

I know what I'm saying sounds, and is, utterly ridiculous, but this really actually is a "thing", for some reason. Of course most people who like/dislike systemd or Rust aren't politically motivated or even aware of these associations, but there's a surprisingly large chunk of both who are, even if they aren't really consciously thinking of it in this way. It's very easy and understandable to laugh at someone accusing systemd critics of being neo-Nazis - it's the ultimate Godwin smear/cope - but for a variety of reasons the inverse pretty much does hold: alt-right technologists indeed are near-universally actively opposed to systemd, and generally actively hostile towards Rust. The Rust opposition is in large part due to their belief that Rust and Mozilla are associated with trans people and that if you use Rust you are "pro-trans agenda", "cucked", "pro-Jewish", "pro-globohomo". The systemd opposition is less concrete and seems to be more a matter of happenstance + typical conservatism/"if it ain't broke, don't fix it".

Re: The Python Paradox (2004)

#106

Earlier quoted context omitted.

Rust is "not as used" but it has a following who hype it to the point that I've avoided taking time to relearn it just due to the strange vibes I get from their community. These people once mentioned, on twitter, that people who hate systemd are like reactionaries (as in, politically far right), as if a choice of init is a correlative of political ideology. When you view others' preferences for fucking software as so…

Genuine question: Maybe the pro systemd people meant the word reactionary in it's non-left/right definition? From Wikipedia: "In political science, a reactionary or a reactionist is a person who holds political views that favor a return to the status quo ante, the previous political state of society" [0] I've heard people use 'reactionary' to mean "doesn't want things to change", or "wants things to go back to the wa…

I think that's part of it, but I think they primarily mean politically reactionary. I wrote more about this here: https://news.ycombinator.com/item?id=34543573

Re: The Python Paradox (2004)

#107

Funny how emergence works with tools. Give a language too few tools but viral circumstances - the ecosystem diverges (Lisps, Javascript). Give it too long an iteration time but killer guarantees, you end up with committees. Python not falling into either of these traps should be understood as nothing short of magic in emergence. I only recently discovered that python's reference typechecker, mypy, has a small side pr…

I might be wrong, but I believe that Mypyc is like Nuitka in that you're still using an interpreter that will end up being your bottleneck even after compiling your code. Nuitka gives a ~4x speedup for most code, the bottleneck being the Python VM.

You might want to reach for something else if you need better performance than that.

Re: The Python Paradox (2004)

#108

It was right then, but it's kind of dated and misses an evolutionary lesson: beautiful code isn't enough, it has to be safe, beautiful, maintainable, productive, understandable, and resource efficient. Ruby is still great for throwing something together fast and maintaining it until it runs into scale problems. It added gradual typing with sorbet and RBS. Crystal is a neat typed, compiled Ruby-alike but it's buggy. R…

> Ruby is still great for throwing something together fast and maintaining it until it runs into scale problems. It added gradual typing with sorbet and RBS.

I think Ruby is much better than Python for building large applications.

Ruby is essentially Smalltalk with a neat Algol-like syntax and some Perl-isms. Its OO system is a joy to work with.

Python got so popular in data-oriented applications because it's a really simple procedural language.

More importantly, it had the right libraries (NumPy, SciPy and Matplotlib) when Torch (implemented in Lua) was no longer viable (due to LuaJIT limitations).

Re: The Python Paradox (2004)

#109

It was right then, but it's kind of dated and misses an evolutionary lesson: beautiful code isn't enough, it has to be safe, beautiful, maintainable, productive, understandable, and resource efficient. Ruby is still great for throwing something together fast and maintaining it until it runs into scale problems. It added gradual typing with sorbet and RBS. Crystal is a neat typed, compiled Ruby-alike but it's buggy. R…

You missed TypeScript, which has advanced generics with union support and the JS ecosystem is getting better each day and it’s ubiquitous.

TypeScript is fantastic —- such a flexible type system.

It was introduced 18 years after JavaScript but feels like a perfectly natural evolution of JavaScript. TypeScript _should_ feel like a wonky bolt on but it’s wonderful. A testament to the folks who built it

Re: The Python Paradox (2004)

#110

It was right then, but it's kind of dated and misses an evolutionary lesson: beautiful code isn't enough, it has to be safe, beautiful, maintainable, productive, understandable, and resource efficient. Ruby is still great for throwing something together fast and maintaining it until it runs into scale problems. It added gradual typing with sorbet and RBS. Crystal is a neat typed, compiled Ruby-alike but it's buggy. R…

> Go is easy to learn but then the capability of it plateaus.

Given that almost every cloud native project is written in Go I'd say this is entirely not true.

Post reply on HN