‘The C Language is a toy’.

A good question to ask in any interview with one of the high and mighty in IT is ‘What is the biggest mistake you ever made’. Few of us will have made a mistake as easy to sympathise with, but with such far-reaching consequences as the one Gary Kildall made. It is a reminder of how precarious success is in the IT industry.

A long time ago, there was only one operating system for PCs and that was CP/M. The company that sold it, Digital Research, had the monopoly of operating systems, and used their monopoly to sell other software that ran under CP/M. Microsoft were around, a small company with just one product, Microsoft BASIC. It ran, of course, on CP/M though there was a ‘Stand-alone’ version for diskless computers.

Gary Kildall, who wrote CP/M, was enjoying the executive lifestyle. He’d handed over the development of CP/M, originally a postgraduate project at the Naval College where he taught, to a development team. He settled down to the pleasurable task of being the CTO of a booming company.

His mains skills were in implementing computer languages: The creation of a Disk operating system was just a diversion, so he went back to his old skills. He came across the language C, and was intrigued enough to start writing an implementation to run under CP/M. He got it all working, only to discover how awful the language was, and how quirky and irrational the standard library was.

At that point he made a fateful decision that was to alter the course of computer history. Gary Kildall decided that C was quite unfit for any reliable commercial programming.

At the time, nobody else had developed a full C compiler for any PC, but Gary decided to turn his C compiler into a PL/1 compiler, enticed by a contract from Data General. I knew Gary vaguely at the time. I vividly remember him telling me that C was a toy that would never make it as a mainstream computer language. It had none of the qualities of a commercial computer language; it didn’t even have a BCD package capable of doing financial calculations of sufficient accuracy for financial applications. He told me the standard library actually had bugs in it (he was right). When compared to some of the languages he had developed, it wasn’t even that good for doing low-level programming. I still believe that Gary was right. He certainly convinced me, then and now, about C. But the industry disagreed with him.

In time, the PL/1 Compiler was released. It was brilliant. It worked reliably, and was perfect for commercial accounting applications. We used it for years in the City of London for developing Dealing Systems that required a high degree of accuracy and reliability.

 Commercially, it bombed.

For some reason, the time was not right for PL/1. (It was subset G, which made sense of the ugly behemoth, and reduced it to a manageable size). A C compiler would have given Digital Research that edge in the Language arena. As it happened, Microsoft’s BASIC compiler benefited markedly from Digital Research’s marketing blunder.

Gary made two more visionary decisions. His first was to create a Logo interpreter, which was supposed to revolutionise the teaching of computing to young children, but didn’t, and a rather more successful attempt at a windowing system called GEM which predated Microsoft’s better known version.

Gary had lost interest in the operating system CP/M in pursuit of his main love, implementing computer languages. The Development team that produced the next versions of CP/M were late. Fatally, they took far too long to produce the first 16-bit operating system, for the brand-new IBM PC. In the meantime, Microsoft had been able to make use of the confusion at Digital Research to gain supremacy of the PC market with a DOS that looked very similar to CP/M, but which was developed for the IBM PC. It was called PCDOS. They sold it to IBM for their PC.

The rest is history. You hear mention of Microsoft nowadays, but not Digital Research.