Hacker News new | ask | show | jobs
by curryhoward 1990 days ago
> Until about 5 years ago there was no safe, GC-free, practical systems programming language, and furthermore it was unknown how to build such a thing. Now we know.

It was known [1], but only by theorists, and theorists aren't the ones building compilers and implementing real programming languages.

Obviously the Rust community has achieved an impressive feat of engineering, and I'm extremely grateful for that. But using a substructural type system to avoid needing a garbage collector is not a new idea, just one that Rust has successfully popularized.

It takes a long time for ideas from the programming languages theory community to reach the mainstream.

[1] http://www.cs.ioc.ee/ewscs/2010/mycroft/linear-2up.pdf

3 comments

Theorists knew how to build certain features but did not know whether the resulting language would scale up to work in practice. To determine that, they would have had to do the experiment of trying to get mass adoption for a language. No-one did that experiment until Rust did.

And of course just implementing linear types and trying to get people to use the language probably would have failed. Borrow checking, compiler error message engineering, and various kinds of social engineering were probably essential to make Rust practical.

Also (as someone with a PhD in a PL-related area) I think the effort to implement a real programming language and drive adoption is a much more significant contribution than writing a dozen academic papers describing the theory behind its features. The academic research is helpful but often people say "not a new idea" and imply that the real work was done by whoever first wrote down the idea, which is often quite wrong IMHO.
Paraphrasing from Dave Herman in a 2011 lunch conversation about Rust, the goal of Rust is not to break new ground in PL theory, but rather to bring the existing ideas into a practical language.
Exactly. We should recognize that as the real contribution of Rust: not breaking new ground in what is theoretically possible, but making it practical for the masses.