Phil Factor's Phrenetic Phoughts

Simple-Talk columnist
The wilder shores of Transact SQL

'The C Language is a toy'.

Published Monday, February 05, 2007 2:20 PM

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.

Comments

 

Mark Tremel said:

Brilliant.  Phil, you remind me of me.  Well,that is a little too vain.  But, you do write many things that I agree with and this is one of them.  I have for years stated to those who know what it means that I hate all computer languages that start with the letter "c" (C, C++, COBOL,...am I missing any?)

Interestingly, I had never heard of Gary Kildall, but I also like his interests.  Being an old PL/1 programmer and having tried my hand at LOGO, I would find sitting next to him at a dinner party an enjoyable evening.  Maybe Phil Factor could be there too.  We could probably retire to the pub after the dinner was over and have a great time.
February 7, 2007 2:01 PM
 

Ireneus Pisanko said:

Sorry, no dinner with Gary Killdall who died in 1994, see http://www2.gol.com/users/joewein/eulogy.htm
February 8, 2007 4:03 AM
 

colin leversuch-roberts said:

Instead we got basic, probably the worst language ever which spawned visual basic where everyone thought they were programmers and produced and still produce absolutely aweful applications/programs. I came the Pascal, C, C++ route btw.
February 8, 2007 4:43 AM
 

Death To Spam said:

Mark --

Do you have C#, as well?  Or is that still too new to hate?  :)


-= DTS =-
February 8, 2007 8:53 AM
 

Death To Spam said:

Err.... "have" = "hate".

February 8, 2007 8:53 AM
 

Vik said:

You can take that wrench and club someone over the head with it, or use it to fix your car.

Doesn't matter what language you use, you can still write bad, crappy code that turns into bad, crappy applications.

The idea that choice of language alone (or in large part) determines the ultimate quality of the application produced (including it's source code) is, quite frankly, a load of rich creamery butter.  There are plenty of examples around of both shite and gold being developed with all the languages mentioned thus far.
February 8, 2007 9:03 AM
 

Phil Factor said:

One day, I hope I shall again be having deep technical discussions with Gary Kildall, who was one of the pleasantest, and most brilliant people I ever met, but it will not be in this world, sadly. On July 8, 1994, he suffered head injuries in a Monterey restaurant and died three days later. leaving the IT industry a more boring place. Much of the way IT works today is based on his ideas, from Languages, Operation systems, windowing, and indexing large databases.
February 8, 2007 12:39 PM
 

Mark Tremel said:

Responding to Mr. Death To Spam,

I probably spoke out of turn by saying I hate C++ (which I always thought was the same as C#).  I programmed enough in C to find it was a crude instrument.  Not bad, really, but far from good.  I never bothered with any other C Plus Plus, even though I'm a glutton for punishment and would have if presented the opportunity.

So, if I offended any "C" zealots, I apologize.

And to clarify my position if anyone is interested, while it is true that a good programmer should be able to make good programs with any language, a good programmer should be able to write more robust code more quickly with a good language.  

I've got a lot of so-called reasons to back up my beliefs, but I find that typing these comments late at night at work is making me thirsty.  So, if I am going to be up late arguing about the nuances of programming languages, I am at least going to do it in a more civilized way:  anyone for a beer?
February 8, 2007 8:56 PM
You need to sign in to comment on this blog

















<February 2007>
SuMoTuWeThFrSa
28293031123
45678910
11121314151617
18192021222324
25262728123
45678910
DML Trigger Status Alerts
 When databases suddenly stop working, it can be for a number of different reasons. Human error plays a... Read more...

Dr Richard Hipp, Geek of the Week
 Simple-Talk's Geek of the Week is Dr Richard Hipp. His code is probably running on your PC, and running... Read more...

Message Hygiene in Exchange Server 2007
 Around four out of every five email messages are spam. Now that the nuisance threatens to engulf what... Read more...

Optimizing the Exchange Environment - Send us your Tips
 We are running a monthly Exchange top tips competition where you can win a $50 Amazon voucher. Read more...

How to Track Down Deadlocks Using SQL Server 2005 Profiler
 It is irritating, sometimes alarming, for the user to be confronted by the 'deadlock message' when a... Read more...