The EFF just published an article on the rise and fall of Gopher on
their Deeplinks blog.
"Gopher: When Adversarial Interoperability Burrowed Under the
Gatekeepers' Fortresses"
https://www.eff.org/deeplinks/2020/02/gopher-when-adversarial-interoperabil…
I thought it might be of interest to people here.
--
Michael Kjörling • https://michael.kjorling.se • michael(a)kjorling.se
“Remember when, on the Internet, nobody cared that you were a dog?”
We lost Rear Admiral "Amazing" Grace Hopper on this day in 1992; amongst
other things she gave us COBOL and ADA, and was allegedly responsible for
the term "debugging" when she removed a moth from a relay on the Harvard
Mk I and taped it to the log.
-- Dave
Moving to COFF since this is really not UNIX as much as programming
philosophy.
On Thu, Dec 17, 2020 at 9:36 AM Larry McVoy <lm(a)mcvoy.com> wrote:
> So the C version was easier for me to understand. But it sort of
> lost something, I didn't really understand Steve's version, not at any
> deep level. But it made more sense, somehow, than the C version did.
>
I'm not too hard on Steve as herein lies the dichotomy that we call
programming. Looking back the BourneGOL macros were clearly convenient
for him as the original author and allow him to express ideas that he had
well in his source. They helped him to create the original and were
comforting in the way he was used to. Plus, as Larry notes, the action of
transpiling loses that (BTW -- look some time at comments in the C version
of advent and you can still vestiges of the original Fortran).
But the problem is that when we create a new program, we can easily forget
that it might live forever[1] - particularly if you are a researcher trying
to advance and explore a set of ideas (which of course is what Steve was at
the time). And as has been noted in many other essays, the true cost of SW
is in the maintenance of it, not the original creation. So making
something easy to understand, particularly in the future without the
context, starts to become extremely attractive - particularly when it has a
long life and frankly impact beyond what is was originally considered.
It's funny, coming across BourneGOL help to validate/teach/glue into me an
important concept when programming for real -> the idea of "least
astonishment" or "social acceptance" of your work. Just because you
understand it and like it might not be the same for your sisters and
brothers in the community. There is no such thing as a private program.
The moment a program leaves your desk/terminal, it will be considered and
analyzed by others.
So back to the time and seeing BourneGOL for the first time, please
consider that in the mid-70s, I was coming to C from BLISS, SAIL, Algol-W
as my HLLs, so I was used to BEGIN/END style programming and bracketing
lining up 4 spaces under the next line with B/E in the same column. The
White Book did not yet exist, but what would become 'one-true bracing
style' later described in K&R was used in the code base for Fifth and Sixth
Edition. When I first saw that, it just looked wrong to me. But I was
coming from a different social setting and was using a different set of
social norms to evaluate this new language and the code written in it.
At some point I took CMU's SW engineering course where we had to swap code
3 different times with other groups for the team projects, and I had come
to realize how important making things be understood by the next team was.
So, I quickly learned to accept K&R style and like Ron and Larry cursed
Steve a little. And while I admire Steve for his work and both ADB and
Bourne Shell were tools I loved and used daily, when I tried to maintain
them I had wished that Steve had thought about those that would come after
- but I do accept that was not on his radar.
That lesson has served me well for many years as a professional and it's a
lesson I try to teach with my younger engineers in particular. It's not
about being 100% easy for you now, it is about being easy for someone other
than you that has to understand your code in the future. Simply use the
social norms of the environment you live and work ("do as the Romans" if
you will). Even if it is a little harder now, learn the community norms,
and use them.
FWIW: You can actually date some of my learnings BTW with fsck (where we
did not apply this rule). Ted and I have come from MTS and
TSS respectively (*i.e.* IBM 360), which you remember from this first few
versions had all errors in UPPER CASE (we kept that style from the IBM
system -- not the traditional UNIX style). For many years after its success
and the program spreading like wildfire within the UNIX community, I would
run it on a system and be reminded of my failure to learn that lesson yet.
Clem
[1] BTW: the corollary to living forever, is that the worst hacks you do
seem to be the ones that live the longest.
ᐧ
https://www.youtube.com/watch?v=GWr4iQfc0uw
Abstract of the talk @ ICFP 2020
Programming language implementations have features such as threads, memory management, type safety, and REPLs that duplicate some of the work done by the underlying operating system. The objective of hosting a language on bare metal is to unify the language implementation and operating system to have a lean system with no redundancy for running applications.
This seems to be the OS:
https://github.com/udem-dlteam/mimosa
The Mimosa operating system consists of a minimal kernel built on C++ and Scheme. It contains a Scheme implementation of a hard drive (ATA) driver, keyboard (PS2), serial (8250 UART), FAT32 filesystem and a small real time clock manager. The project was built to experiment with developement of operating system using a high level functional language to study the developement process and the use of Scheme to build a fairly complex system.
On Dec 16, 2020, at 8:08 PM, John Cowan <cowan(a)ccil.org> wrote:
>
> Sometimes I wonder what would have happened if A68 had become the medium-level language of Unix, and Pascal had become the language of non-Unix, instead of both of them using C.
Funny how we seem to rehash the same things over the years!
In a 1988 comp.lang.misc thread when I expressed hope that "a major
subset of Algol 68 with a new and concise syntax (sort of like C's)
can make a very elegant, type safe and well rounded language.", Piet
van Oostrum[1] commented the combination of dynamic arrays *and*
unions forced the use of GC in Algol68. Either feature by themselves
wouldn't have required GC! The larger point being that compiler
complexity is "almost exponential" (his words) to the number of
added features. Piet and others also wrote that both Pascal and C
had left out a lot of the hard things in A68. So I doubt A68 or a
subset would have replaced C or Pascal in 70s-80s.
[My exposure to Algol68 was when I had stumbled upon Brailsford and
Walker's wonderful "Introductory Algol 68 programming" @ USC. After
having used PL/I, Pascal & Fortran the regularity of A68 was quite
enticing but AFAIK no one used A68 at USC. I must admit I still like
it more than modern languages like Java, Go, Rust, C++, ...]
[1] Piet had implemented major parts of both A68 and A60.
Sorta relevant to both groups...
Augusta Ada King-Noel, Countess of Lovelace (and daughter of Lord Byron),
was born on this day in 1815; arguably the world's first computer
programmer and a highly independent woman, she saw the potential in
Charles Babbage's new-fangled invention.
J.F.Ossanna was given unto us on this day in 1928; a prolific programmer,
he not only had a hand in developing Unix but also gave us the ROFF
series.
Who'ld've thought that two computer greats would share the same birthday?
-- Dave
I like a challenge although it wasn't really much of it. A simple arpa
imp in yahoo spilled the beans :-)
"The Interface Message Processor (IMP) was the packet switching node
used to interconnect participant networks to the ARPANET from the late
1960s to 1989. It was the first generation of gateways, which are
known today as routers.[1][2][3] An IMP was a ruggedized Honeywell
DDP-516 minicomputer with special-purpose interfaces and software.[4]
In later years the IMPs were made from the non-ruggedized Honeywell
316 which could handle two-thirds of the communication traffic at
approximately one-half the cost.[5] An IMP requires the connection to
a host computer via a special bit-serial interface, defined in BBN
Report 1822. The IMP software and the ARPA network communications
protocol running on the IMPs was discussed in RFC 1, the first of a
series of standardization documents published by the Internet
Engineering Task Force (IETF)."
https://en.wikipedia.org/wiki/Interface_Message_Processor
Cheers,
uncle rubl
From: Dave Horsfall <dave(a)horsfall.org>
To: Computer Old Farts Followers <coff(a)tuhs.org>
Cc:
Bcc:
Date: Wed, 9 Dec 2020 13:41:11 +1100 (EST)
Subject: Re: [COFF] ARPAnet now 4 nodes
On Sat, 5 Dec 2020, Noel Chiappa wrote:
> The ARPAnet reached four nodes on this day in 1969 .. the nodes were > UCSB, UCLA, SRI, and Utah.
Yeah; see the first map here:
http://www.chiappa.net/~jnc/tech/arpageo.html
Yep; I know that first map well :-) For the newbies here, the ARPAnet
was the predecessor of the Internet (no, it didn't spring from the
brow of Zeus, nor Billy Gates), and what we now call "routers" were
then IMPs (look it up).
Missing maps gratefully received!
Indeed; history needs to be kept alive, lest it die.
-- Dave
> The ARPAnet reached four nodes on this day in 1969 ..
> the nodes were UCSB, UCLA, SRI, and Utah.
Yeah; see the first map here:
http://www.chiappa.net/~jnc/tech/arpageo.html
Missing maps gratefully received!
Noel