On Wed, Dec 9, 2020 at 12:07 PM Theodore Y. Ts'o <tytso(a)mit.edu> wrote:
On Wed, Dec 09, 2020 at 10:40:19AM -0500, Clem Cole
wrote:
My point is that "intelligent design"
doesn't necessarily guarantee
goodness or for that matter,complete logical thinking.
There are some really great quotes, mostly from Linus, but I saw at
least one from Larry McVoy, here, on the subject of "Linux is all
about evolution, not intelligent design" here:
https://ipfs.io/ipfs/QmdA5WkDNALetBn4iFeSepHjdLGJdxPBwZyY47ir1bZGAK/comp/ev…
One of the quotes from Linus that is most pertinent for TUHS from the
above:
There was a overall architecture, from Dennis and
Ken.
Ask them. I'll bet you five bucks they'll agree with me, not with you.
Oh golly. Linus sure does have a special way of communicating.
I've talked to both, but not really about this particular issue, so I
might lose, but I think I've got the much
better odds.
If I understand the context here, it's that Linus is arguing against the
sort of large-scale architectural "design" that plagues software projects
that employ, say, the waterfall method, arguing in favor of organic
evolution for Linux development. I guess that's fine, but evolution almost
always favors a local maxima, and I don't think that's optimal in an
absolute sense. But I also don't know another way to do it that doesn't get
bogged down in the pursuit of perfection; it may be a necessary survival
trait.
I think that's a slightly disingenuous reading of what he's replying to,
though; by the time Linus started working on Linux, there was a pretty
well-defined Unix architecture in place that he was able to copy, very
successfully. Sure, the details are up to the implementer, but to suggest
that there wasn't a framework for his thinking about what Linux would look
like just isn't true.
If you want to see a system that was more
thoroughly _designed_, you
should probably point not to Dennis and Ken, but to systems like L4 and
Plan-9, and people like Jochen Liedtk and Rob Pike.
I'm not sure I would agree with this assessment about either L4 or Plan 9.
Both evolved greatly over their lives, and both continue to evolve (though
plan9's evolution is greatly diminished).
And notice how they aren't all that popular or well known? "Design" is
like a religion - too much of it makes you
inflexibly and unpopular.
That's a terrible metric.
I submit that neither of those systems were created with the explicit goal
to become "popular", and the claim of inflexibility is unwarranted. Within
their domain, that is as research systems, both are quite well known and
remain highly influential.
This is a common but annoying line of thought in the computer world:
because something is useful and popular, it is good. My first car was a
1985 AMC Eagle; it was undeniably useful. It may have even been moderately
popular at one point. But damn it was an awful car.
Linux is undeniably useful and it's arguably the most popular operating
system in the world. And parts of it are really, really good. But simply
put, that doesn't mean that its evolutionary path has landed in an
inherently good place.
To circle back to plan 9 for a moment, this was something that the open
source folks who found their way to 9fans just couldn't grok. The answer to
the question, "why don't you do all this work to support (emacs|a web
browser|a C++ compiler|whatever du jour)?" was, "because there's little
inherent research value in doing that, and this is a research system." That
it was also a workaday system for a handful of folks was incidental; the
goal wasn't world domination, it was advancing research and providing a
comfortable environment for that work. Linus's response exemplifies this
lack of understanding. (Disclaimer: I was very much an outsider looking in
there, but it seems clear enough in retrospect.)
The very architecture of UNIX has very much been an evolution. Sure,
there are some basic ideas, but basic ideas do not make a system.
And yet, by the time that Linus started work on Linux, Unix already was a
system and had been for 20 years.
At the Unix 50th event at the LCM+L, Mary Ann and I spent a little time
playing around with the original 7th Edition on a simulator, trying to
write simple programs in B. There was certainly familiarity there, but it
was simultaneously very foreign; the system was recognizable as an
ancestor, but one very far back on the evolutionary timeline. If anything,
changes due to Linux's evolution from its early days are far less
pronounced, or perhaps I should say has been much more internally focused
(I recognize that the kernel sources are unrecognizable from what Linux was
putting onto Finnish FTP sites in 1991...).
- Dan C.