----------------------------------------
       What Is C?
       March 28th, 2020
       ----------------------------------------
       
       
       What is C?
       
       It's 1969, how are you programming?  A lot of businesses are
       using COBOL to process payroll and accounting data.  A lot of
       number crunchers are using FORTRAN for engineering compuations.
       But a lot of folks are still programming in assembly language.
       Especially if they are writing operating systems.  This is
       not meant to be an authoritative definition or history of C.
       There are plenty of good sources for each.  I just want to
       give you a sense of the what their world must have been like.
       
       On a computer like the PDP-7 had the equivalent of about 128k
       of RAM and cost around 500,000 dollars in today's dollars.
       Programmers were as likely to code in assembly language as they
       were to run a high level language compiler.  It was on the PDP-7
       that Unix was first developed by Thompson and Ritchie, in 1969.
       It was much less capable than a mainframe that might have had
       up to 4 megabytes of memory, but it was decidedly less
       expensive and therefore accessible to small teams of users.
       
       But there was a problem with the first version of Unix.  When
       it came time to port Unix to other systems like the more capable
       PDP-11, it required a rewrite.  When DEC came out with a new
       computer, it didn't just make a slightly faster version of the
       previous model.  Instead, companies often came out with a whole
       new architecture.  Meaning the CPU and the instructions were
       different from model to model.
       
       Becuase the new processor had a different set of instructions,
       assembly language programs had to be re-written.  We no longer
       have this problem.  When Dell comes out with a new server,
       it's the same architecture but slightly faster.  A high level
       language would allow the software to be ported to a new
       architecture without costly re-writes to assembly language
       routines.
       
       Ritchie and Kernighan created C mostly to make porting Unix a
       simpler process.  The parts of Unix that require asembly
       language are very small with the bulk of Unix written in C.
       Even if you came up with a completely different instruction set
       from anything that came before, it would be posible to write a
       C compiler for that processor and port Unix to it.  With only
       some small bits here and there that specific to a computer
       architecture and processor.
       
       Maybe that's why C has been so successful.  It was built to solve
       a very real problem, in a world where computing resources were
       expensive and limited.  It wasn't designed by committee of as an
       academic exercise.  And the folks that did create it were
       incredibly talented and intelligent individuals.  
       
       
       ____________________________________________________________________________
                              Gophered by Gophernicus/3.0.1 on Ubuntu/22.04 x86_64