Bookshelf Classic: The C Programming Language

The C Programming Language by K&R
My first job had me programming in Microsoft BASIC for the IBM PC (DOS).  BASIC worked well enough, but its limitations were clear.  The language was interpreted and therefore slow.  More importantly, it wasn't a modern structured language, and instead, relied on line numbers and the GOTO statement.  Anyone who has read Dijkstra knew GOTO was a bad thing.

Having learned a structured language in college (PL/I), using BASIC felt unnatural.  When a C compiler became available for the PC, I saw a chance to improve and modernize our software.  The problem was selling the idea -- a problem made harder because I wasn't fluent in C.

"It would be a staffing problem.  Not many people know C, but we can find a lot of programmers who know BASIC," noted one manager.

The argument was strong as my knowledge of C was weak.  But I knew that C, by design, was a small language and thus easy to learn.  "It has about 30 keywords," I proffered to another manager.

Unimpressed, he responded "Only 30?"

This was a Wall Street company, where "more" was often equated with "better."  Thirty keywords sounded insufficient to him.

I sought out a peer at a different company.  He didn't know C, and I described it as a "mid-level" language -- one that can touch hardware and manipulate bits, but also offer some high level constructs to the programmer.  "Hmmm, it's not low-level like Assembler, and not high-level like Pascal or PL/1.  It sounds like a compromised language that can't do either very well."

I was undeterred.  I couldn't yet know how great a language C was, but I did know I had to get away from a profoundly bad language: BASIC.

To be continued in part 2...


Popular posts from this blog

Bookshelf: UNIX A History and a Memoir