"...(C is faster and more portable than golang)  ..."

It's always best if we can keep these discussions factual or, at least, if
we make a claim, we can back it up.

For example, the u-root version of dd, written in Go, is faster and more
portable than many C and Rust versions. Measured: GNUBIN dd from /dev/zero
to /dev/null tops out at 20 GiB/S on my s76 laptop; the Go version tops out
at 50. The GNUbin dd has no hope of running on Plan 9; the u-root version
compiles with no changes. golang has better speed and portability in this
one example.

If you've got some factual basis for such a broad claim, I'm happy to hear
it.


On Sat, Jun 21, 2025 at 11:00 AM G. David Butler <[email protected]> wrote:

> 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 <https://9fans.topicbox.com/latest>* / 9fans / see discussions
> <https://9fans.topicbox.com/groups/9fans> + participants
> <https://9fans.topicbox.com/groups/9fans/members> + delivery options
> <https://9fans.topicbox.com/groups/9fans/subscription> Permalink
> <https://9fans.topicbox.com/groups/9fans/Tf84d656c78bbda91-Mec5883aa609ac470d8667146>

------------------------------------------
9fans: 9fans
Permalink: 
https://9fans.topicbox.com/groups/9fans/Tf84d656c78bbda91-M2989ae9467b608f69bfb7ef8
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription

Reply via email to