On Sun, Jan 24, 2021 at 4:25 PM Larry McVoy <lm(a)mcvoy.com> wrote:
On Sun, Jan 24, 2021 at 01:14:34PM -0800, Jon
Steinhart wrote:
So I never liked Apollos much. What I was
referring to was Apollo's
claim
that their token-ring network performed better
for large numbers of
nodes.
And they were correct. However, they didn't
consider the eventually
invention of switches that solved the problem.
The network performance of the cluster of Apollos we had was awful.
I don't know anything about how you set that up, never liked token rings,
maybe it is possible to set it up wrong, I dunno. All I know was network
performance was awful on the Apollos.
Interestingly, descendents of the Apollo RPC system live on in windows, and
if I recall correctly, got there via the DCE/RPC library, largely
contributed by Apollo. Some good judges have said that, on technical
merits, the RPC layer was superior to ONC RPC, though I never used an
Apollo machine to really know.
I remember working at a startup in late 1999/early 2000 that had built some
hokey network daemon to track people logged into their website; this thing
crashed all the time, was slow, and generally not well implemented. It
occurred to me that much of the complexity of dealing with it was in the
level of abstraction for the network being too low: it ran on a Sun, so
reimplemented it on top of ONC/RPC with XDR for architecture independence
(most of the web servers were Intel machines). The new code was a sixth of
the size of what I started with, it was simpler and easier to reason about,
used less memory, was significantly faster, etc. The lesson is that the
right abstractions matter.
I further remember when I got to Google and saw protobuf for the first time
being a little confused. "Why didn't you just use XDR? It's an Internet
standard and there's an RFC defining it, and it's implemented essentially
everywhere. Why do something new?" The response was very much along the
lines of, "ho ho; this is Google, kid. We know what we're doing."
Apparently, the variable-length encoding for integers was considered
particularly important at the time, an argument I never really bought into.
*shrug*
It's a statistically valid sampling of one case :-)
I can totally believe that their workstations were slow and the software
environment was a bummer.
The interesting thing about all of this graphics stuff (and to tie it back
to TUHS) is that none of these things ever struck me as particularly Unix-y
in nature. X in particular doesn't seem like it composes nicely with
anything else, and in many ways, Unix from the perspective of a user is all
about composition from smaller parts. But X is this big, monolithic thing
that you kind of bolted on the side. For example, it certainly doesn't
integrate with, say, the permissions model.
I wonder if these seeming impedance mismatches are because pretty much
being all of this stuff invented as folks went along.
- Dan C.