I always assumed C became popular because there was a very large cohort
of programmers who started with it as their first language, usually on
early Unix, at university, in the late very 1970s and early 1980s.
After all if I was exposed to it a small Canadian university in the
early 1980s, then surely it was almost everywhere!
At least that's how it happened for me. I was already fluent in BASIC
and reasonably good at Pascal before I went to university, and though we
had a very wide variety of languages to work with since we had accounts
on both Unix and Multics systems right from the start of first year, C
was the strong favourite amongst both juniors and phds, i.e. all but the
most die-hard Multics lovers (who of course used and loved PL/1, though
by 1985 there was even talk of C on Multics).
Some of this popularity of C was no doubt due to the fact that those a
year or two ahead of me had started with FORTRAN on an IBM 370 and had
absolutely hated it and were very vocal to those of us coming up behind
that we were very lucky to jump right onto the Unix (and Multics)
machines right from the start.
My first job programming in 1983/84 was back to BASIC and assembler, but
a year later and I was writing C again (though sadly mostly on MS-DOS,
briefly on Xenix, then back to very early MS-Windows until about 1988 --
not long in hindsight, but it was painful).
At Thu, 21 May 2020 12:10:35 -0400, Toby Thain <toby(a)telegraphics.com.au> wrote:
Subject: Re: [TUHS] History of popularity of C
- inexpensive compiler availability was not very good until ~1990 or
later, but C had been taking off like wildfire for 10 years before that
Well, there were a plethora of both full C and "tiny"/"small" C
compilers widely available in the very early 1980s.
Indeed I would say inexpensive C compilers were widely available and
very popular well before 1985, and a few "toy/tiny" compilers were
freely available by then too. By 1985 I was doing C development,
primarily on MS-DOS systems, using commercial compilers, for a wide
variety of projects, mostly in big national companies (in Canada, such
as CP Rail). I would say C was the first commercially successful
systems-level language available across many platforms, and that this
was evidently so by 1985.
Early Atari (6502) computers were partly programmed with a cross-
compiler, though I've no idea what it was (possibly a re-targeted PCC).
I think VisiCalc had similar origins.
The most ground-breaking C compiler might arguably have been
P.J.Plauger's Whitesmiths C compiler, around about 1978. I don't think
it was what you'd call "inexpensive" necessarily, but it was popular.
The BD Software company's C compiler for CP/M (8080/z80) was released in
1979.
The first version of Mark Williams C came out very early, possibly
before 1980. I owned a copy for MS-DOS 386 by 1985/86. This was the
most Unix-like compiler and library, by far, and quite inexpensive (else
I wouldn't have been able to afford my own personal copy).
Small-C appeared in Dr.Dobb's in May 1980 (and it spawned a plethora of
derivatives of its own). C was everywhere in personal computing
literature by 1980.
I believe Aztec C was first released in 1980.
Two books about C were published by McGraw-Hill in 1982: "The C
Primer", Les Hancock and Morris Krieger; and "The C Puzzle Book", Alan
R. Feuer. There were likely more.
Then there was Lattice C, out and about by 1982 and VERY popular and
widely used by 1984. (I was using the second version in 1985/1986 on
PCs. It's probably the buggiest compiler I've ever used for real work
projects.)
"Learning to Program in C" by Thomas Plum was published 1983.
And of course there was Tanenbaum and Jacobs' ACK, with a C parser
front-end in the early 1980s (even by 1980?).
Brad Templeton wrote a C (or maybe Tiny-C) compiler for C64/6502 around
about 1984 (though he only commercialized the "PAL" assembler I think).
In my estimation GCC really only served to cement C's early success and
popularity. It gave people certainty that a good C compiler would be
available for most any platform no matter what happened.
I would also argue that non-Unix C compilers actually drove the adoption
curve of C. Pascal tried to play catch-up, but just as with what
happened to me in university where it was one of the teaching languages,
C was just far more popular and though Pascal had a tiny head-start (in
terms of first-published books/manuals), C overtook it and had far more
staying power too (though indeed in the late 1980s there was a fair
battle going on in the pc/mac/amiga/etc world for Pascal).
--
Greg A. Woods <gwoods(a)acm.org>
Kelowna, BC +1 250 762-7675 RoboHack <woods(a)robohack.ca>
Planix, Inc. <woods(a)planix.com> Avoncote Farms <woods(a)avoncote.ca>