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.0 required=5.0 tests=MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 27475 invoked from network); 1 Jan 2022 20:00:58 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 1 Jan 2022 20:00:58 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id AB0C69CFFF; Sun, 2 Jan 2022 06:00:54 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 6890B9CF06; Sun, 2 Jan 2022 06:00:20 +1000 (AEST) Received: by minnie.tuhs.org (Postfix, from userid 112) id 9793A9CF06; Sun, 2 Jan 2022 06:00:17 +1000 (AEST) Received: from darkstar.fourwinds.com (fourwinds.com [63.64.179.162]) by minnie.tuhs.org (Postfix) with ESMTPS id 1C2B69CE58 for ; Sun, 2 Jan 2022 06:00:17 +1000 (AEST) Received: from darkstar.fourwinds.com (localhost [127.0.0.1]) by darkstar.fourwinds.com (8.16.1/8.15.2) with ESMTP id 201K0GVm1610900 for ; Sat, 1 Jan 2022 12:00:16 -0800 Received: from darkstar.fourwinds.com (jon@localhost) by darkstar.fourwinds.com (8.16.1/8.15.2/Submit) with ESMTP id 201K0Fd31610896 for ; Sat, 1 Jan 2022 12:00:16 -0800 Message-Id: <202201012000.201K0Fd31610896@darkstar.fourwinds.com> From: Jon Steinhart To: TUHS main list In-reply-to: <20211231234039.GU31637@mcvoy.com> References: <20211231234039.GU31637@mcvoy.com> Comments: In-reply-to Larry McVoy message dated "Fri, 31 Dec 2021 15:40:39 -0800." MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <1610894.1641067215.1@darkstar.fourwinds.com> Date: Sat, 01 Jan 2022 12:00:15 -0800 X-JON-SPAM: local delivery Subject: Re: [TUHS] roff(7) [ and other related stuff ] 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: , Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" Larry McVoy writes: > On Sat, Jan 01, 2022 at 09:07:49AM +1000, George Michaelson wrote: > > But macros aside, anyone who had used runoff had a > > massively simpler path into roff than TeX. My future was set. The phd > > students at Leeds looked down their noses at me for using cryptic .2 letter > > inline magic. They were the high priests of things, I was just a computer > > operator. Watching them spend weeks and weeks wrangling a one em offset > > problem stopping perfection in print was.. entertaining. > > I was program committee chair for Linux Expo in 1999 (all that means is > I formatted the proceedings into a book). I let people use LaTex but > encouraged troff. A few people tried out troff and their reaction was > "Wow, that was so easy and groff is really fast!" > > The only negative reaction was table of contents complaints, LaTex is > 2 pass so it can do them, roff is one pass so you have to fiddle with > things. A lot. > > I've used *roff for almost 40 years and I've never had the urge to use > something else. I wrote a paper a while back where they insisted on > LaTex and it just made me like *roff more. > > It's Betamax and VHS all over again, the crappy answer won. Happy New Year to everybody. COVID has taken its toll if people are spending New Year's Eve thinking about text formatting :-) Warning - this is a grumpy pendantic Jon post... First of all, I love *roff. It's the thing that got me started on UNIX when I needed to write documentation for my first summer project at BTL. There was a V3 UNIX machine across the hall from my lab (2C-517?) that I used for that. Been a fan ever since. Complaints about things like tables of contents are just that - complaints. C'mon - this is UNIX, composable software tools. So what if LaTex is 2 pass and *roff is 1 pass. I have a simple script and a Makefile that adds a 2nd pass and does all that. Even with that the LaTex ecosystem is way more complex than *roff. The one thing that *roff doesn't do which I think I remember from runoff is that runoff allowed in-line formatting requests; not just special escape sequences but everything. I never got into TeX although I've tried. Probably just first language syndrome. Coming from UNIX, I just find using \ as a non-escape character ugly, just like DOS\Windows pathnames. But there are a number of things that annoy me about it leading to the pendantic part. In my opinion, the big innovation in TeX is the two-dimensional layout. I do spend a bit of time on big documents adding keeps and such to avoid orphan and widow lines. In my opinion, much of what Don did in TeX added no value. Been meaning to ask him about it but with COVID haven't seen him in a while. For example, the language parsing broke no new ground. If it were me, and I wanted to explore/demo/implement two-dimensional layout, I would have added it to *roff. To me, the rest of it was not only a waste of time, but actually made the world worse by making two incompatible ways of doing things that practitioners have to learn instead of one. Make's life harder, not easier. How much time went into the development of the TeX front end that could have been done in a few hours had Don used lex/yacc? I made a similar comment to Alan Wirfs-Brock when proofreading his big 20th anniversary article on JavaScript. I don't get the "oooo, Eich did this one-week sprint to get a demo up and running" stuff. Had Eich used lex/yacc instead of rolling his own not only would he have not had to sprint, but we likely wouldn't still be fighting with optional semicolons decades later since that's harder to do with those tools. I read it as praising him for making a bad decision. This is my biggest issue with "modern software development". Seems like every project has to begin with it's own language, build system, package manager, and so on. Were I a modern software developer I'd create all that plus a new email client just to send this message :-) None of this behavior adds value. It makes it so that practitioners have to learn many arcane incompatible systems that all do pretty much the same thing. While I haven't given it a hard look, I'd look at the netstat/ss/... stuff with the same lens. Sure, new features were needed, but was it necessary to make the old stuff work differently? In my roll as a mentor, this is the stuff that freaks out students, especially during their first internships. I have to explain that there are two types of knowledge at play: their coursework and company crap. I tell them that they should be secure in the quality of their education and never ask their boss how to copy a string or something like that. But, it's perfectly OK to ask for help on the internal undocumented crufty development environment. In some respects, it's similar to how I decide what to bill for and what not to on consulting projects. I don't bill for learning some general knowledge thing that I didn't know. I do bill for learning odd project-specific weirdness that I'll never use on anything else. Back to *roff. Might have said this before, but pic is probably my favorite little language. It's like having an artist on staff because I can tell it what to draw and it will; I'm terrible at drawing. One of its best features that unfortunately was missed by the people who wrote fig is invisible objects. I typically start a figure with a big invisible box and hang things on it. If I need to move or scale things I just change the size of the box. Sure beats hours of carpal-tunnel clicking to move a pile of objects in a drawing program. I guess it's relative addressing versus absolute all over again; relative addressing makes it easier to relocate objects. One more way to look at this. I think that a lot depends on the state of the world when one starts using stuff. I remember a friend of mine telling me how much simpler DOS was as compared to UNIX. I told him that I thought that it was because he was growing up with DOS, and learned new features as they came along which is what I did with UNIX. By the the time he got started UNIX was more complicated. Of course, DOS caught up. It's sadly amusing how this applies to markup languages. People who carped about *roff requests are happy to craft HTML. I guess what's missing from the field is Lorites from Neal Stephenson's Anathem if you haven't read it. A priesthood who's role is to inform people claiming to invent something new that it's already been done. Jon