I think one of the reasons it's really hard to do any kind of system innovation is because current systems, that work pretty damn well despite their flaws, have decades of development baked into them.
Let's say I have an idea for some kind of experimental system idea. The amount of effort to build that idea from scratch and make it relevant to modern computing is astronomical. Unless you're a wealthy company that can hire dozens of engineers to work on a research problem for years, it's much more reasonable to build that idea as some kind of software package on top of existing systems like Linux or have it be a component of whatever technology stack that idea is relevant for (web - JS/ruby/php etc)
This paper is from 22 years ago, it's not true anymore. The fact that the technology stacks that occur to you are "JS, Ruby, PHP, etc." is strong evidence of that.
Rails is a very relevant modern web technology. It's just ruby + JS at its core along with whatever tools get added to make the infra scale up (docker, aws, redis, kafka etc)
There is no widespread modern web without JS at the moment
Agreed, and 22 years ago none of that was true. Rails, Docker, AWS, Redis, and Kafka didn't exist, and JS was unstable and mostly used for image rollovers. Those are ideas that have been built from scratch and made relevant to modern computing since the paper was written.
Yes and to the author's point and mine, they are just software built on top of existing systems. Theses technologies solve certain problems very well, but they all run on linux under the hood using the same base OS primitives.
If you wanted to use an innovative system to redo the web from the ground up, good luck, as you'd have to reinvent this entire ecosystem to get to a reasonable equivalence
The slides gloss "systems" in this context as "Operating systems, networking, languages; the things that connect programs together." See https://doc.cat-v.org/bell_labs/utah2000/utah2000.html if you don't see it in the PDF. He's definitely not talking about only operating system kernels.
JS, Ruby, PHP, Rails, Docker, AWS, Redis, and Kafka are solidly in that wheelhouse (though, to be fair, JS, Ruby, and PHP did exist in 02000, Pike just didn't know they were important). Some of them couldn't have been built with the base OS primitives common in 02000: Docker requires cgroups, for example, and AWS requires virtualization or (originally) paravirtualization. Paravirtualization came out of Keir Fraser's doctoral research.
You don't have to write a system that has no connection to the existing ecosystem in order to be doing systems software research, or even relevant systems software research.
Also though the Web has been pretty much redone from the ground up since 02000.
> Also though the Web has been pretty much redone from the ground up since 02000.
Rather: An insane uncontrolled growth of extensions appeared since 2000. The only in my opinion serious attempt to redo the web from ground up that existed in this timeframe was XHTML 2.0 (https://en.wikipedia.org/w/index.php?title=XHTML&oldid=11002...). Since the arrival of HTML5 (which was a "let's standardize the wild zoo of extensions that already exist at least a little bit instead of redoing things from ground up in an organized way") XHTML 2.0 is dead.
I mean, the hypertext web has been mostly replaced by a web of interactive applications. They even removed support for ftp:// URLs!
In particular, in this context, the browser went from being a user-agent for browsing hypertext (a regular application, if one a bit 3270-like as Pike points out in the talk) to being mainly an execution environment for third-party software. That is, it became "the things that connect programs together". Most new software is developed for this platform, and it's a platform that barely existed in a recognizable form at the time he wrote the talk.
Let's say I have an idea for some kind of experimental system idea. The amount of effort to build that idea from scratch and make it relevant to modern computing is astronomical. Unless you're a wealthy company that can hire dozens of engineers to work on a research problem for years, it's much more reasonable to build that idea as some kind of software package on top of existing systems like Linux or have it be a component of whatever technology stack that idea is relevant for (web - JS/ruby/php etc)