News for hackers. Stuff that matters.
Re:Systems Software Research is Irrelevant (2000) [pdf] by ekidd on Tuesday December 28, 2021 @05:12AM (#29712190)
Since Rob Pike wrote this note in 2000, there have been many commercially important advances in systems software:

- iOS and Android: Power-efficient mobile systems, wakelocks, etc.

- Docker, Borg and Kubernetes: Container isolation, cluster orchestrators.

- Modern browser environments, with high degrees of isolation.

- Fast JavaScript runtimes and specialized JITs.

- WASM.

- Ruby and metaprogramming, which rose to considerable commercial success and then petered out. But by the standards of 2000, there's some neat language design there.

- Rust, which successfully applied a lot of lesser-appreciated academic ideas including affine types.

- Type systems retrofitted to many dynamic languages, including Typescript. Typescript is really rather remarkable, even though the types are "unsound", in the technical sense.

Some of these trends were already underway in 2000, when Rob Pike was writing. Admittedly, much of the most important implementation work happened in big tech companies, or occasionally startups. Not in academia. But that's largely a question of scale. Even as early as 1990, it was hard for a professor and a few graduate students to directly change the industry. But plenty of the items on the list above do have roots in academic research.

And Rob Pike did get to write Go. He deliberately ignored quite a bit of interesting research to focus on a specific aesthetic vision, which is fine. And a lot of good systems work has been done in Go.

Re:Systems Software Research is Irrelevant (2000) [pdf] by dekhn on Tuesday December 28, 2021 @12:47PM (#29716042)
Rob was simply wrong. All his thinking was formed by the explosion of systems research around UNIX from the 70s to the 80s which was extremely productive. But research definitely didn't end then. It just transitioned to another dimension.
Re:Systems Software Research is Irrelevant (2000) [pdf] by ogogmad on Tuesday December 28, 2021 @08:19AM (#29713492)
> Admittedly, much of the most important implementation work happened in big tech companies, or occasionally startups. Not in academia

> - Rust, which successfully applied a lot of lesser-appreciated academic ideas including affine types.

There's some scepticism going round about a model of technological innovation where academics invent an idea and engineers implement it. While I accept that affine types were known to academics, I recall a precursor to them existed in the form of C++ unique pointers. I'm wondering whether the Rust creators reinvented affine types independently, instead of learning of them from the academic literature.

Also, maybe a better question is how beneficial the literature on affine types was to the Rust creators.

Re:Systems Software Research is Irrelevant (2000) [pdf] by steveklabnik on Tuesday December 28, 2021 @11:14AM (#29715033)
Graydon has forgotten more about PLT than most of us will ever know. (And several of the folks who came after Graydon have PhDs…)

Early Rust didn’t have some of the things it had today, but we used to keep a list of papers that Rust either was inspired by or implemented the ideas from on the website, even if it was incomplete.

I also don’t believe that smart pointers in C++ count as affine? Move semantics in C++ work quite differently than in Rust. I could be wrong about that though, but given the whole copy by default thing, I’m not entirely sure that that counts. It might though.

Oh, and in the earliest days, literally Rust’s introduction inside of Mozilla, it was described as “ideas from the past, come to save the future.” Explicitly built on older PLT ideas that hadn’t made it mainstream yet. Rust may feel cutting edge for industry but it’s basically the opposite of avant garde theoretically speaking.

Re:Systems Software Research is Irrelevant (2000) [pdf] by vitno on Tuesday December 28, 2021 @11:41AM (#29715310)
unique_ptr counts as a affine type, the linearity is enforced at compile time. (even if access safety is not)
Re:Systems Software Research is Irrelevant (2000) [pdf] by steveklabnik on Tuesday December 28, 2021 @12:00PM (#29715541)
Yeah, thinking about it I would agree with you. I was thinking that it being copyable so easily would be disqualifying, but I wouldn’t say the same about Clone in Rust and it’s not really about explicitness, anyway. Thanks.
Re:Systems Software Research is Irrelevant (2000) [pdf] by vitno on Tuesday December 28, 2021 @10:34AM (#29714665)
I was in the space around Rust in the early days: ~10 years ago.

It was 100% research based. Everyone working on the language was familiar with this literature and many of the early contributors were PL Phd people.

Re:Systems Software Research is Irrelevant (2000) [pdf] by saurik on Tuesday December 28, 2021 @08:35AM (#29713609)
> There's some scepticism going round about a model of technological innovation where academics invent an idea and engineers implement it. While I accept that affine types were known to academics, I recall a precursor to them existed in the form of C++ unique pointers.

There feels like an implicit value judgment here, that the work of "academics" isn't needed because "engineers" figured it out themselves.

> I'm wondering whether the Rust creators reinvented affine types independently, instead of learning of them from the academic literature.

Why would this ever be a good thing? Is it "cool" somehow to be proud of not taking advantage of the hard-won knowledge of other people who actively hoped their work would get used?

Re:Systems Software Research is Irrelevant (2000) [pdf] by mistrial9 on Tuesday December 28, 2021 @11:45AM (#29715355)
they are "fuzzy sets" ; in the actual world there are certainly differences, if not absolute boundaries
Re:Systems Software Research is Irrelevant (2000) [pdf] by kenjackson on Tuesday December 28, 2021 @11:38AM (#29715276)
There’s also cloud scale OS work that was done for AWS and Azure. And moving Linux to embedded and IoT class devices.
Re:Systems Software Research is Irrelevant (2000) [pdf] by kevinfat on Wednesday December 29, 2021 @10:32PM (#29733226)
To be a contrarian here to bring up a question, do these things really count? The roots of similar ideas already existed decades ago in old journals for all of these. Maybe the phrase "System Software Research is Irrelevant" could be interpreted as saying that all the big foundational ideas have all been found. The low hanging research is done and now its all iterating on details. Please tell me why this is incorrect?
Re:Systems Software Research is Irrelevant (2000) [pdf] by turminal on Tuesday December 28, 2021 @08:30AM (#29713580)
> - iOS and Android: Power-efficient mobile systems, wakelocks, etc.

- Docker, Borg and Kubernetes: Container isolation, cluster orchestrators.

- Modern browser environments, with high degrees of isolation.

- Fast JavaScript runtimes and specialized JITs.

- WASM.

Would be interesting to know what Rob Pike thinks of all these.

Re:Systems Software Research is Irrelevant (2000) [pdf] by wbl on Tuesday December 28, 2021 @06:14PM (#29719509)
You never heard of Self or the Alto, the JVM, BSD jails/Solaris zones/whatever the 360 had, etc? Mobile I'll give you, but the rest have lots of antecedents.