[TUHS] Hypothetical: Could MULTICS have been written in C, if available?
John P. Linderman via TUHS
tuhs at tuhs.org
Wed May 27 00:38:44 AEST 2026
The observation that "In C, you can feel the machine" resonates with me,
but I have a different take. When I am trying to understand a non-trivial
program, I need to break it into comprehensible chunks. When a statement is
"close to the machine", I can assume it does what I think it does. Since it
relies only on hardware, the odds of it being done incorrectly are
miniscule. Each such statement is a comprehensible chunk. The way it
interacts with variables in the routine containing it are relatively
obvious. If a C statement doesn't include something that looks like a
subroutine call, it can be understood on its own.
If a statement invokes another routine, because that routine is done in
software, I may not understand what it does, and it is much more
susceptible to being done incorrectly. I dislike call by reference, because
it may mess with local variables, increasing the cognitive load on
understanding the routine I am looking at. External variables can similarly
complicate understanding. If a routine doesn't expose its variables to
other routines, I can hope to understand what it does, and "prove" its
correctness in isolation; I can defer understanding other routines it calls.
Because C doesn't make any sneaky subroutine calls, you can identify such
calls lexically. If a statement doesn't explicitly make a call, operation
remains "close to the hardware". I couldn't look at a PL/1 statement and
determine if it made subroutine calls. I found nasty PL/1 bugs hiding
behind apparently simple statements. C code was, for me, much easier to
understand.
On Mon, May 25, 2026 at 11:42 PM Brian Stuart via TUHS <tuhs at tuhs.org>
wrote:
> On Tue, May 26, 2026 at 1:52 AM Larry McVoy via TUHS <tuhs at tuhs.org>
> wrote:
> > I have a son who is more about theory, he's a math guy. I nudged him
> > towards programming, he of course went to python. I nudged him towards
> > C and he came back with the best statement ever that I have gotten from
> > him: In C, you can feel the machine. Yes, Travis, yes you can. That's
> > part of what makes C great.
>
> As it should be. It's just as why I always prefer to drive a sports car to
> a luxury car, why when I did photography, I used my eyes and hands in the
> darkroom, and why when I play a musical instrument, I play the instrument
> instead of an abstraction that prevents me from making mistakes. If I
> can't
> feel the connection to the car, its designer, and the road, driving stops
> being
> fun. If I can't feel the connection to the instrument, I'm fighting
> against it,
> rather than it pulling the music out of me. If I can't feel the connection
> between the language and the transistors, programming stops being fun
> and becomes a chore, and life is too short to write code that's not fun.
>
> As retirement approaches, the chance to withdraw into my own hardware
> and my own languages is irresistable.
>
> BLS
>
> P.S. Kids, get off my lawn! And you'll only get my PDP-11 when you pry
> it from my cold, dead hands!
>
More information about the TUHS
mailing list