From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 21715 invoked from network); 2 Aug 2021 21:26:43 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 2 Aug 2021 21:26:43 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 0DE759CA6A; Tue, 3 Aug 2021 07:26:40 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 27FB79CA63; Tue, 3 Aug 2021 07:26:26 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="mGkEzjjv"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 6757D9CA63; Tue, 3 Aug 2021 07:26:24 +1000 (AEST) Received: from mail-ot1-f45.google.com (mail-ot1-f45.google.com [209.85.210.45]) by minnie.tuhs.org (Postfix) with ESMTPS id E5F069CA60 for ; Tue, 3 Aug 2021 07:26:23 +1000 (AEST) Received: by mail-ot1-f45.google.com with SMTP id e13-20020a056830200db02904f06fa2790cso1377otp.1 for ; Mon, 02 Aug 2021 14:26:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=/73kvsyThyjVV0XyE5g02tAIWwNGa1okLI6fY7wtI3o=; b=mGkEzjjvhS5jE26Q6XLDlgLeNkvBk0fjEUzmI4N3X8DAggbb1TfUNdevmabAV5Yn5d z9feb86saMcUjD6FwfHPgMDG30bhFZdHCu8taJgVuYzdUgi8t69qB6Qxf6oxJCRLitXj 4Xm3Zbz53fOFGIGMLQo3At/c1QgfC7n03l4HFOBDRn8rEj8RKKr3kw+yBDo1dEkxfC4C Sb2MhhSpcUPbvtvF67E2Z7GUX7cJ5GV4WpERkXt1yShJcLJVEr6Kzo405vsrlP/x4eIZ iP4f6U9ruuoR2xriG9nR4Je71mItTj2p1hq9/dWwVY1SO+lgnYLqj81EPUBL61fshnmD weog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/73kvsyThyjVV0XyE5g02tAIWwNGa1okLI6fY7wtI3o=; b=VlZjwgKOdkYZh2v4aFW8KKVp3SXRyRT4RRmIJMQYhIa6/SSNnts5GR4Kz81JP4t3Cc eqcNTEOK2UDP09pgiGDvPZgk4iaBOhCssxeNGRQa6cSthkL92+riQN0GAgk4v34DY/Yt DpMVoK36vlH9gPuM2prfWZLRXBkUafXuka6AULLDynj5xSiKEYQF0VDItdKoG1HN4HDl wcjW49qdbyQSAZBQ4TnfSTCipmq9u7ZbXdt6IQZihKgNbgOLLr+esVPL/WbxDANmk//n s8jTCxhn24D53FaKszpej1s4K208RzPmvB8Zp4mate6/5PeMibj4WvRgTNnaZQ8qf7sA QPzA== X-Gm-Message-State: AOAM533xlGmFGEHqsfaVy1y9oSqtVmjX2f9/fv4y6Ubd5rVwdWYewHSv SJMiPWL8qy+aW6bdJ7UVTOWEPK35fUThzqtOHSQ= X-Google-Smtp-Source: ABdhPJwla8YxHVOOdWBBO38TYBM9zjHse2tOnfLSbN/IvJrklgbHkHprQD2sKtMtne0unSWeq7gQxuufF8TmVe61g3c= X-Received: by 2002:a05:6830:1058:: with SMTP id b24mr5223otp.313.1627939583162; Mon, 02 Aug 2021 14:26:23 -0700 (PDT) MIME-Version: 1.0 References: <202108022106.172L6I1i135429@darkstar.fourwinds.com> In-Reply-To: <202108022106.172L6I1i135429@darkstar.fourwinds.com> From: Dan Cross Date: Mon, 2 Aug 2021 17:25:47 -0400 Message-ID: To: Jon Steinhart Content-Type: multipart/alternative; boundary="00000000000091fd1d05c89a3836" Subject: Re: [TUHS] Systematic approach to command-line interfaces X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: The Eunuchs Hysterical Society Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --00000000000091fd1d05c89a3836 Content-Type: text/plain; charset="UTF-8" On Mon, Aug 2, 2021 at 5:19 PM Jon Steinhart wrote: > John Cowan writes: > > > fork() is a great model for a single-threaded text processing pipeline > to > > > do automated typesetting. (More generally, anything that is a > > > straightforward composition of filter/transform stages.) Which is, > y'know, > > > what Unix is *for*. > > > > > > > Indeed. But it's also a very good model for "baking" web pages in the > > background so that you can serve them up with a plain dumb web server, > > maybe with a bit of JS to provide some auto-updating, especially if the > > source data is stored not in a database but in the file system. The > result > > is a page that displays (modulo network latency) as fast as you can hit > the > > Enter key in the address bar. > > > > (The weak point is the lack of dependency management when the system is > too > > big to rebake all the pages each time. Perhaps make(1), which Alex Shinn > > described as "a beautiful little Prolog for the file system", is the > Right > > Thing.) > > We have, of course, had similar discussions many times on this list. > I think that the root issue is the false equivalence of "I don't > understand this well enough to be able to use it effectively to solve > my problem" with "it's broken/obsolete/dated". > That's a bit unfair. One can understand something and see value in it and still appreciate its limitations. Fork has served us well for more than five decades; I've got no argument with that. However, should we never question whether it continues to be the right, or best, abstraction as the environment around it continues to evolve? - Dan C. --00000000000091fd1d05c89a3836 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Mon, Aug 2, 2021 at 5:19 PM Jon Steinh= art <jon@fourwinds.com> wrot= e:
John Cowan writes:
> > fork() is a great model for a single-threaded text processing pip= eline to
> > do automated typesetting.=C2=A0 (More generally, anything that is= a
> > straightforward composition of filter/transform stages.)=C2=A0 Wh= ich is, y'know,
> > what Unix is *for*.
> >
>
> Indeed.=C2=A0 But it's also a very good model for "baking&quo= t; web pages in the
> background so that you can serve them up with a plain dumb web server,=
> maybe with a bit of JS to provide some auto-updating, especially if th= e
> source data is stored not in a database but in the file system.=C2=A0 = The result
> is a page that displays (modulo network latency) as fast as you can hi= t the
> Enter key in the address bar.
>
> (The weak point is the lack of dependency management when the system i= s too
> big to rebake all the pages each time.=C2=A0 Perhaps make(1), which Al= ex Shinn
> described as "a beautiful little Prolog for the file system"= , is the Right
> Thing.)

We have, of course, had similar discussions many times on this list.
I think that the root issue is the false equivalence of "I don't understand this well enough to be able to use it effectively to solve
my problem" with "it's broken/obsolete/dated".

That's a bit unfair. One can understand some= thing and see value in it and still appreciate its limitations.
<= br>
Fork has served us well for more than five decades; I've = got no argument with that. However, should we never question whether it con= tinues to be the right, or best, abstraction as the environment around it c= ontinues to evolve?

=C2=A0 =C2=A0 =C2=A0 =C2=A0 - = Dan C.

--00000000000091fd1d05c89a3836--