Live data from Hacker News

The Python Paradox (2004)

paulgraham.com

151–160 of 275 posts

Re: The Python Paradox (2004)

#151

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…

    > Rust makes enormous binaries
Rust binaries are optimized to be fast (by default, fast != small), this [0] explains pretty well why, and min-sized also has many optimizations [1].

    > and compiles slow
You can have a very slow compiler with all the optimizations and safety checks, or a fast one which doesn't. This however doesn't mean there is no room for improvement.

One thing that can definitely improved on is how cargo manages dependencies, I am tired of each of my project's /target directory using >2GB of disk space, there at least should be some kind of opt-in global cache.

I am also worried about dependencies going in the same direction as the JS ecosystem, many of my projects only have 3-5 top level dependencies, but I end up downloading hundreds. A few are only compile-time, but this makes auditing very difficult and does make compile times a lot longer.

[0]: https://lifthrasiir.github.io/rustlog/why-is-a-rust-executab... [1]: https://github.com/johnthagen/min-sized-rust

Re: The Python Paradox (2004)

#152
post #143
post #118

Earlier quoted context omitted.

> Imagine reading the C++wg release notes in the same mood that you would the python release notes. Which mood are we talking about here? Mild dread? They keep adding new features to the language. The Python programming language is around 30. The release notes at this point should be "wow, we found a bug this year! Didn't expect to see one of those!". The secret of Python is it is actually a large community all learn…

Industries change, needs change, new possibilities emerge. A language that doesn't change is probably either dead, dying, or headed for a tiny niche. Python changes a lot because lots of people use it and have needs and desires for it. Clojure is used very little, so doesn't have the same kind of demand for improvement or community to do it (I don't for a moment believe it couldn't be improved).

"A language that doesn't change is probably either dead, dying, or headed for a tiny niche"

Or complete. Eternal change is not a value in itself.

Re: The Python Paradox (2004)

#153

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…

> Rust makes enormous binaries

But it DOES make binaries. Such a breath of fresh air after years of Java/Scala.

Re: The Python Paradox (2004)

#154

> People don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know. At least in my area, these days there are many programmers who know Python because that's the only language they have been taught. And there are many job opportunities specifically looking for Python.

You have to put this essay in the context of year 2004. Python was not used as much as today, it was an emerging language.

Yes. I wanted to add how much have changed today, but wanted to keep it short. So just ended up putting "these days".

Re: The Python Paradox (2004)

#155
post #44

Typed python is extremely ugly and frustrating. Does anyone have any good advice on doing it well? It seems like every library has their own system and doing any kind of casting just to make the linter be quiet is such a chore.

To me it seems like the ugliest parts of every language is the parts dealing with anything but the most simple types. When langs start introducing things like generics, then things really get gruesome. Thats why I always personally enjoyed duck typing.

> Thats why I always personally enjoyed duck typing.

Static or dynamic? You will ask a non-duck to quack. Do you want to find out before or after you start your application?

Re: The Python Paradox (2004)

#156
post #43

Earlier quoted context omitted.

> 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…

> 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 already know it, and people don't like to learn to do things differently I beg to differ. I studied compsci BSC at an eastern european university. The professors decided to test that theory and decided to introduce programing to everyone in our program through Haskell.…

That's a response to a slightly different question. Your answer makes it clear that exposing students to a language isn't enough to make them take up a language. The original point was that Haskell isn't per se inaccessible.

Re: The Python Paradox (2004)

#157
post #152
post #143

Earlier quoted context omitted.

Industries change, needs change, new possibilities emerge. A language that doesn't change is probably either dead, dying, or headed for a tiny niche. Python changes a lot because lots of people use it and have needs and desires for it. Clojure is used very little, so doesn't have the same kind of demand for improvement or community to do it (I don't for a moment believe it couldn't be improved).

"A language that doesn't change is probably either dead, dying, or headed for a tiny niche" Or complete. Eternal change is not a value in itself.

Right, but I think any language that is "complete" is either dead, dying, or headed for a tiny niche (or already in a tiny niche). Can you think of any counterexamples?

Re: The Python Paradox (2004)

#158
post #157
post #152

Earlier quoted context omitted.

"A language that doesn't change is probably either dead, dying, or headed for a tiny niche" Or complete. Eternal change is not a value in itself.

Right, but I think any language that is "complete" is either dead, dying, or headed for a tiny niche (or already in a tiny niche). Can you think of any counterexamples?

The vast majority of languages are dead, dying or headed for a tiny niche. How many languages can you name that aren't? There can only be at most 3 languages with more than 25% market share.

Even Python is likely to die; in time. Most things do. Something will have to change first, at the moment it is doing great.

Re: The Python Paradox (2004)

#159

Earlier quoted context omitted.

The difference is that Java has alway been driven from the enterprise. And so there has been this long investment in frameworks, libraries etc that no one would ever otherwise write. Especially areas like governance, security, compliance, reliability etc. I think Rust is just going to end up just being a better C++ not a true mainstream language.

When you say enterprise, who do you mean? Rust is absolutely being pushed by faang et al for example. Just look at the bottom of the Rust foundation page[0]. You do not see this support for things like Nim or Julia[1]. [0] https://foundation.rust-lang.org/ [1] I checked, it looks like intel is funding julia development to some extent. The rest is government research orgs like NSF and DARPA. Okay, that's "large org" s…

FAANG isn't what people typically mean with enterprise, they mean programmers writing internal tools at fortune-500 non-tech organisations. It is very different from FAANG and it is usually boring languages like Java or C#. Think of all the COBOL code they had, those programs are still written and now its Java/C# instead of COBOL.

Re: The Python Paradox (2004)

#160
post #157
post #152

Earlier quoted context omitted.

"A language that doesn't change is probably either dead, dying, or headed for a tiny niche" Or complete. Eternal change is not a value in itself.

Right, but I think any language that is "complete" is either dead, dying, or headed for a tiny niche (or already in a tiny niche). Can you think of any counterexamples?

C.
Post reply on HN