Brian, I am always looking for kindred spirits and your message strikes a cord. So I looked you up and read a bit about your ENIAC simulator. Not because I’m particularly interested in the ENIAC but your golang simulation of it.
Where does Plan9 fit? I was a very early adopter of Plan 9. I liked some of its concepts and disliked others. (Long story that can be found in this list’s history.) The one that really took root was the channel theme of the language ALEF (https://en.wikipedia.org/wiki/Alef_(programming_language)) that Pike used to create rio and acme. Because of issues maintaining the language, the Plan 9 team created a C coroutine library to support the needed functionality to re-write the tools in C (https://swtch.com/libtask/). ALEF got channels from Pike’s Newsqueak that was invoked with the command “squint”. The significance is a paper written by M. Douglas McIlroy “Squinting at Power Series” (https://swtch.com/~rsc/thread/squint.pdf) and my implementation I used to test my C / pthread channel library. One thing difficult with testing a highly concurrent / parallel runtime environment is its non-deterministic execution. What is great about his paper is after all the huge number of threads and channels coming and going, the correct coefficients of the TAN function prove it works. Back to your ENIAC simulator and its extensive use of threads and channels. It looks like another good test of my channel implementation. Also, like the Newsqueak implementation of channels, the golang implementation of channels has shortcomings that I improved. Why am I reaching out? I don’t want to know about the ENIAC or learn golang well enough to translate your simulator. But if you are interested in an even more portable version of your simulator (C is faster and more portable than golang) I propose a collaboration to do it. What do I get out of it? Another through test of my channels. And why do I want to do that? Read below. David > On Jun 6, 2025, at 6:56 PM, Brian L. Stuart <[email protected]> wrote: > > So I've been seeing big-picture/philosophical discussions arise on 9fans > for about 25 years. Usually I just sit back with my bowl of popcorn and > watch. Every once in a while I'll jump in and present a painfully long > dissertation, and that's today. For those new to my perspective, I've > been at this stuff for nearly 50 years (I wrote my first code in '76 > or '77), and as time has gone by, I find myself becoming more and more > the G.H. Hardy of computing. For those who don't know that reference, > look up his essay "A Mathematician's Apology." The semi-serious tl;dr > is "If anyone ever finds a practical application of my work, I'll > consider it a failure." > > My launching point today is the statement made in various ways by > several of the contributors that computers are tools. Of course, I'm > aware that's the case for some people, and we've all done applied > things to put food on the table. But if that were the whole point > of computing, I'd be bored out of my skull. In the same way that > a study of physics might result in a better widget for the unwashed > masses but that's not its purpose, so a study of computer science > might result in a similar better widget but that's not its purpose. > Physics is the study of phenomena surrounding elementary particles > and forces. Computer Science is the study of phenomena surrounding > the property of universality. It requires no other justification. > We made a really big mistake back in the '60s and '70s when we got > excited about computers and people asked why and what good are they. > We tried to come up with justifications when we would have been > better off just saying, "you wouldn't be interested; they're just > for us nerds." I continue to be amused that one of our justifications > was always keeping track of recipes in a kitchen. If you're not > familiar with it, check out the infamous "kitchen computer" from > an old Neiman Marcus catalog. > > You would be correct then to infer that I don't really put any > weight on how many users we bring into the community. This is > the reason why by 2005 to 2010, I had largely turned my back on > Linux. It seemed that too many decisions in that community were > about making things "easy" for those who had no UNIX experience > at the expense of those who did. It seems that much of the open > source world has come to measure success by user adoption and > number of commits to the source control preference of the decade. > Neither of those draw my attention. If there is any correlation > between quality and popularity, it is negative. That gets us to > the general topic of the so-called "user." The garbage promulgated > by the self-appointed UI experts is almost always directly opposed > to what I want. I have plans in the after-life to use an endless > can of lighter fluid to stoke the fires burning the morons who > put huge trackpads where the heels of my hands belong on a laptop. > What would happen to music if piano and guitar makers applied the > same stupidity to help prevent beginners from making mistakes. Maybe > there is a place for the record player, but if you damage my piano > to turn it into a record player, you're a force for evil, not good. > Along similar lines, the justifications that are made for most of > the UI commandments (including the precious mouse) are prefect > examples of measuring the wrong thing. Speed of interface is > irrelevant. It doesn't matter whether I use ed and use search > to find the bit I want to edit, or whether I use acme and let > the mouse scroll to where I want to edit. The difference is lost > in the noise because any programmer or writer worth a damn spends > far more time thinking and drawing diagrams on paper than in > typing and clicking. If you want to respond with "but most > people don't write software or papers" then see my rant on the > piano vs the record player. Because the computer is a finite > realization of the universal machine Turing identified, it exists > to be programmed. To not create with it is to use it not as > a piano but as a toaster. > > As many of you know, I already have my own private language to > minimize the spikes in blood pressure every time the C standards > committee meets. Although POSIX does still exist when I teach, > I no longer go anywhere near it when I'm programming. So it > shouldn't be surprising to learn that in the last several years, > my thoughts have moved away from "what can I contribute to the > Plan 9 world" to "what ideas from Plan 9 would I borrow for > a private system" or "should I just use the Plan 9 kernel and > build my own environment around it." Of course, I also have > to solve the problem of hardware. The x86 is a steaming pile > of garbage and one of my objectives is to become an x86-free > zone. I've also come to the conclusion that it is so horrific > that what sticks to it is only the similarly disgusting stuff > like ACPI, UEFI, etc. What scares me to death is that some > of that same garbage has started to cling to what could > otherwise be reasonable architectures. At least the Raspberry > Pi is mostly its own world, so most of my Plan 9 work these > days is centered there. But I am starting to think I might > have to create my own hardware to truly escape from the > breathtaking stupidity that has come to dominate the industry. > Yes, I've even thought about resurrecting a 68000 machine > I wire-wrapped nearly 40 years ago. > > Much of my aesthetic is described by the quote from > Saint-Exupery, "Perfection is achieved, not when there is > nothing more to add, but when there is nothing left to take > away." Now I'm not telling people they shouldn't add for > themselves if they want. But as I move toward disconnecting > from the parts of the computing world that give me heartburn > to stay in the parts that give me intellectual satisfaction > and fulfillment, I expect to be taking things out, rather > than adding them. Everyone can have their own reasons > for being part of the community and their own objectives > moving forward. But for me the reasons I'm here are largely > dominated by the minimalism of the design where I can feel > direct connections to the individuals who created it, the > stability of the code base, and the smallness of the community. > > A little while back I found myself trying to articulate what > I really saw as programming while I was walking. By the time > I got back to the office, I had a phrasing I liked, so I > typed it up in TeX with \magnification=3584 and put the > output on my wall. The other day I was catching up with > one of our alums who has recently finished her PhD at Penn > and she saw it, said she liked it, and took a picture of it. > It reads, "Programming is the process by which we take an > idea, a concept, existing in nothing but a pattern of firing > neurons and transform it through pure thought into the > definition of a machine, a definition that can be interpreted > and emulated by a universal machine to manipulate the physical > world. All else taints and compromises the purity and beauty > of programming." > > There's your semi-decadal tirade from the old guy to remind > everyone that computing is not really about the nonsense that > pervades the general culture. > > BLS > ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/Tf84d656c78bbda91-Mec5883aa609ac470d8667146 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
