Live data from Hacker News

The Python Paradox (2004)

paulgraham.com

21–30 of 275 posts

Re: The Python Paradox (2004)

#21
post #13

2004. Almost 20 years ago. Was Python even a teen? Python does not attract smart young iconoclasts anymore. It's the scripting language everyone writes because everyone writes Python. What languages do attract smart young iconoclasts? Nim? Elm? Whatever you're doing that is not yet old enough to drink by the time you comment?

It would be an interesting future in which Koka[1] becomes the new Python. Or Lean 4,[2] and we end up with formally proved ML code in 2043.

[1] https://koka-lang.github.io/koka/doc/index.html

[2] https://leanprover.github.io/documentation/

Re: The Python Paradox (2004)

#23
post #13

2004. Almost 20 years ago. Was Python even a teen? Python does not attract smart young iconoclasts anymore. It's the scripting language everyone writes because everyone writes Python. What languages do attract smart young iconoclasts? Nim? Elm? Whatever you're doing that is not yet old enough to drink by the time you comment?

My vote is on Nim. Python like syntax with C++ speed. Unknown enough, but still not too new or obscure.

My vote is for Nim too, but I'm decidedly biased. It's allowed us to do things in embedded that would've taken 3, 4 times as long and with more developers to achieve in C++.

Re: The Python Paradox (2004)

#24
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.

Rust hits more of these but it's ugly. Uglier than Python and approaches C++-level eyebleed. Rust generics aren't as flexible as they could be because type constraints don't have union and specialization is painful. Tag structs are laborious. Go hits more of these except it's not as flexible and not quite as safe as Rust. Rust makes enormous binaries and compiles slow and the cargo index download is glacial, I'm surprised they don't have an "sccache" for it. Go is easy to learn but then the capability of it plateaus. Go compiles and tests insanely fast.

Rust should rebase its type system to have union types, i.e., foo: i32 | f32. Also, more granular and specialized type constraints (negation, union) on generic trait parameters.

Elixir (on erlang) can be productive. It's gorgeous, it's fast, it's powerful, and fairly expressive.

Haskell and Idris are beautiful and powerful, but inaccessible to most software engineers.

Pony is beautiful, productive, extremely safe, and fast.

Zig, Nim, Kotlin and friends are all moving in the right general directions. Swift is alright too.

Re: The Python Paradox (2004)

#25
post #5
post #3

[2004] -- Python is no longer a "comparatively esoteric language" these days. I suppose now this might be an argument for hiring folks using Haskell or the like.

I'm not convinced this advantage is available to harness anymore. A small company can still outrun a larger company via less process, fewer internal entrenched interests, the ability to not have to worry as much about internationalization and other things you need to instantly address large markets and comply with various internal and external regulations, and you could continue this list for quite a while. But $LARG…

Another thing is that back in 2004, a larger % of code was hand written. So, choosing a new language didn’t come with as high a switching cost outside of learning a new syntax.

Now, if you deviate from PHP, Python, Node, Rails, etc., to one of the new “esoteric” languages, you have to learn a new language, plus reinvent the wheel in a lot of areas that you’d otherwise be getting for free.

So you have brilliant developers working in esoteric languages trying to complete 25-50% more code.

Even if you can swim upstream fast enough to compete with highly competent devs working in a more popular language, then you get into hiring / onboarding challenges, documenting and debugging custom features (features that would otherwise be a “solved problem” in other languages), acquisition due diligence, etc., that persistently weighs against you.

Re: The Python Paradox (2004)

#26
post #13

2004. Almost 20 years ago. Was Python even a teen? Python does not attract smart young iconoclasts anymore. It's the scripting language everyone writes because everyone writes Python. What languages do attract smart young iconoclasts? Nim? Elm? Whatever you're doing that is not yet old enough to drink by the time you comment?

2014

Almost 10 years ago, I translated this article to Telugu.

https://avilpage.com/2014/12/python-paradox.html

Re: The Python Paradox (2004)

#27
What an interesting theory. Talking to new hires, they learned python because that's what they were taught in school. Maybe in the 1990's when Python was competing with PERL for 2nd generation scripting languages that was the case that enthusiasts picked it up (along with Java beans, it was the 90's. :), but Python is institutional now in CS coursework.

EDIT: I just realized this was 2004. And now I agree with him.

Re: The Python Paradox (2004)

#28

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…

approaches C++-level eyebleed

Have you ever hit F12 on any C++ std function or data structure? Every time I do it genuinely feels like I'm back at day 1 freshman year of an undergrad CS degree.

Re: The Python Paradox (2004)

#29
post #3

[2004] -- Python is no longer a "comparatively esoteric language" these days. I suppose now this might be an argument for hiring folks using Haskell or the like.

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 important to your world view that they might as well be nazis[0], you can tell your priorities are not in order.

They hardly seem like iconoclasts in that respect, it feels like there is a lot of group mentality there which is strange to me. People in a place with strange groups dynamics might not be aligned with the public outside the group (who are oblivious to the group think since they are just "normies"), and so the group is sure, against the grain in some respect, but that aspect of being separate from the general population is due to adherence to groupthink, not really due to individual eccentricity or originality.

Another aspect, rust is being hyped by some big names in Tech, so at this point, rust feels alot more like Java in its early days, so not really niche but just new and before mainstream penetration.

[0] Yes, some anti-systemd people literally say Lennart Poeterring is hitler or some nonsense, they are idiots. I just think the software he pushes is not the best.

Re: The Python Paradox (2004)

#30

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…

approaches C++-level eyebleed Have you ever hit F12 on any C++ std function or data structure? Every time I do it genuinely feels like I'm back at day 1 freshman year of an undergrad CS degree.

Post a pic
Post reply on HN