On Mon, Jan 30, 2023 at 10:45 AM Larry McVoy <lm(a)mcvoy.com> wrote:
On Mon, Jan 30, 2023 at 10:35:25AM -0500, Dan Cross
wrote:
Plan 9 was different, and a lot of people who
were familiar with Unix
didn't like that, and were not interested in trying out a different
way if it meant that they couldn't bring their existing mental models
and workflows into the new environment unchanged.
At one point it struck me that Plan 9 didn't succeed as a widespread
replacement for Unix/Linux because it was bad or incapable, but
rather, because people wanted Linux, and not plan9.
Many people make that mistake. New stuff instead of extend old stuff.
Some would argue that's not a mistake. How else do we innovate if
we're just incrementally polishing what's come before?
Computing now is radically different than when I started, but if I'd
listened to my betters back then, it wouldn't have changed all that
much. Actually I _did_ listen to my betters, and now I'm sad that I
missed out on a lot of exciting things.
Look at programming languages for instance. We had C,
it was pretty
simple to understand, but people wanted more stuff.
I think C is a language that people _think_ is simple to understand,
and perhaps _was_ simple to understand, but is actually remarkably
subtle and a _lot_ of people don't actually have a great handle on how
it really works anymore. Particularly now, when the compiler people
seem to be prizing optimization above all else and so even obvious
behavior that's technically "undefined" results in unexpected behavior
(e.g., `if (a > 0 && b > 0 && a*b) < 0) overflow(); // signed
integer
overflow is UB`. Maybe sadly, C hasn't been a portable macro assembler
for decades now.
So now we have
things like Rust that is pretty much completely different. Could we
not have extended C to do what Rust does? Why do we need an entirely
different syntax to say the same things?
People tried to extend C to do the things that Rust does and it didn't work.
Seems like Plan 9 fell into that trap. When you
invalidate all of the
existing knowledge that people have, that creates a barrier to entry.
Plan 9, as a research system, was an experiment in doing things
differently. As a research system, it was remarkably influential: a
lot of the ideas made it into e.g. Linux. Imitation is the most
sincere form of flattery. As a production system, people just wanted
Linux. There was a time when people wanted to try out new ideas; oh
well.
As you said, people don't want to give up their
mental model when that
model works. They'll only give it up when there is at least a factor
of 2 improvement that they care about. These days it feels like people
are stuck enough that they want a factor of 10.
Yup, that's about right. The mainframe is still going strong, after all!
- Dan C.