On Wed, Dec 9, 2020 at 12:07 PM Theodore Y. Ts'o <tytso@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/evolution.html

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.