To C, or not to C, that is the question

In the early days of personal computers, many owners — blokes who worked in IT and students of all ages — tended to find there were little jobs they wanted to do that they couldn’t do with the software then available, and so they had a go at programming themselves.

It is important to remember that, back then, the numbers of people with a PC, or an Apple II, were tiny; a million times as many people own a computer now as did then.

Anyway, for many the programming language they started with was Basic, and on PCs the operating system they started with was MS-DOS (the Microsoft Disk Operating System). But before long many of the more serious ones started to wonder whether they should not move to a better system, such as the one called Unix, which was eventually the origin, in the work of one brilliant student, Mr Linus Torvalds, of a behave-alike of Unix called after him Linux. This came because the big problem with Unix was that it was expensive to licence. Linux, when it arrived, was the start of the movement of open source software, given away free,

The small, efficient but powerful programming language that those guys then had to consider starting to use was the one in which system software like Unix was written, and its name was just one letter — because it came after prototype languages A and B: it was somebody’s third attempt — C. The only problem was that C is so powerful that you can do almost anything with it, within your system. C does not save you from yourself, by preventing you making mistakes. You have to know what you are doing. Giving access to C on a big system to a novice has been likened by some to giving the buttons to a nuclear missile system to a toddler.

Hence the questions: Do we move to this language, and to the operating system with which it was originally associated? Dare we? There was a time when this was critical — in technical businesses, anyway ...

There are, I admit, in-jokes here about C and Basic, the rivalry between Bill Gates and his predecessor Gary Kildall, between DOS and CP/M; the Bourne shell was the default flavour of the Unix user environment equivalent to an MS-DOS command prompt. And so on. But I guess you had to be there.

To C, or not to C, that is the question: —
Whether’tis nobler, in the mind to suffer
The signs and errors of outrageous Fortran;
Or to take ASMs against a list of troubles,
And by opposing end them. To DIR — to link —
No more; and, by a link, to say we end
The heartache, and the thousand natural bugs
That code is heir to: ’tis a compilation
Devoutly to be wish’d. To DIR — to link:
To link! Perchance to run:— ay, there’s the rub:
For in that execute, what breaks may come,
When we have shuffled through the input file,
Must give us pause. There’s the misread,
That makes calamity of so long file:
For who would bear the clock ticks of real time,
The designer’s wrong, the manager’s contumely,
The prangs of despis’d code, the Law’s* delay,
The insolence in offices, and the spurns
That patient programmer of the unworthy takes,
When he himself might his quietus make
With a fresh bootstrap? Who would MS–DOS bear,
Or grunt and sweat under a CP/M,
But that the dread of something called UNIX —
The undiscover’d country, from whose Bourne**
No traveller returns — puzzles the will,
And makes us rather bear those prompts we have,
Than port to others that we know not of?
Thus Bell Labs does make cowards of us all;
And thus the native code of the computer
Is written o’er with the least pause for thought;
And system software of great pith and moment
Runs not; and hardware, current turned awry,
Has lost the name of active ...

* i.e. Murphy’s Law, the “first law of engineering”
** i.e. the Bourne shell

© 1995 Ian P. Hudson — after William Shakespeare

To be, or not to be, that is the question:
Whether ’tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them? To die, to sleep,
No more; and by a sleep to say we end
The heartache, and the thousand natural shocks
That flesh is heir to: ’tis a consummation
Devoutly to be wished. To die, to sleep;
To sleep, perchance to dream — ay, there’s the rub:
For in that sleep of death what dreams may come,
When we have shuffled off this mortal coil,
Must give us pause — there’s the respect
That makes calamity of so long life.
For who would bear the whips and scorns of time,
The oppressor’s wrong, the proud man’s contumely,
The pangs of despised love, the law’s delay,
The insolence of office, and the spurns
That patient merit of the unworthy takes,
When he himself might his quietus make
With a bare bodkin? Who would fardels bear,
To grunt and sweat under a weary life,
But that the dread of something after death,
The undiscovered country from whose bourn
No traveller returns, puzzles the will,
And makes us rather bear those ills we have
Than fly to others that we know not of?
Thus conscience does make cowards of us all,
And thus the native hue of resolution
Is sicklied o’er with the pale cast of thought,
And enterprises of great pith and moment,
With this regard their currents turn awry,
And lose the name of action...

William Shakespeare