La page perso de Laurent Mahieux
In an announcement that has stunned the computer industry, Ken
Thompson, Dennis Ritchie and Brian Kernighan admitted that the Unix
operating system and C programming language created by them is an
elaborate prank kept alive for over 20 years.
Speaking at the recent UnixWorld Software Development Forum, Thompson
revealed the following: "In 1969, AT&T had just terminated their work
with the GE/Honeywell/AT&T Multics project. Brian and I had started
work with an early release of Pascal from Professor Nichlaus Wirth's ETH
labs in Switzerland and we were impressed with its elegant simplicity and
power.
Dennis had just finished reading 'Bored of the Rings', a National
Lampoon parody of the Tolkien's 'Lord of the Rings' trilogy. As a lark,
we decided to do parodies of the Multics environment and Pascal. Dennis
and I were responsible for the operating environment. We looked at
Multics and designed the new OS to be as complex and cryptic as possible
to maximise casual users' frustration levels, calling it Unix as a parody
of Multics, as well as other more risque allusions.
We sold the terse command language to novitiates by telling them that
it saved them typing.
Then Dennis and Brian worked on a version of Pascal, called 'A'. 'A' looked a lot like Pascal, but elevated the notion of the direct memory_us.address (which Wirth had banished) to the central concept of the language.
This was Dennis's contribution, and he in fact coined the term
"pointer" as an innocuous sounding name for a truly malevolent construct.
Brian must be credited with the idea of having absolutely no standard I/O
specification: this ensured that at least 50% of the typical commercial
program would have to be re-coded when changing hardware
platforms.
Brian was also responsible for pitching this lack of I/O as a feature:
it allowed us to describe the language as "truly portable".
When we found others were actually creating real programs with A, wc
removed compulsory type-checking on function arguments. Later,
we_us.added a notion we called "casting": this allowed the programmer to
treat an integer as though it were a 50kb user defined structure.
When we found that some programmers were simply not using pointers, we
eliminated the ability to pass structures to functions, enforcing their
use in even the simplest applications. We sold this, and many other
features, as enhancements to the efficiency of the language. In this way,
our prank evolved into B, BCPL, and finally C.
We slopped when we got a clean compile on the following syntax:
for(; P("\n"), R ; P("|")) for(e = C; e ; p("-" + (*u++/8) %2)) P("|
"+ (*u/4) %2);
At one time, we joked about selling this to the Soviets to set their
computer science progress back 20 or more years.
Unfortunately, AT&T and other US corporations actually began using Unix and C. We decided we'd better keep mum, assuming it was just a passing phase. In fact, it's taken US companies over 20 years to develop enough expertise to generate useful applications using this 1960's technological parody.
We are impressed with the tenacity of the general Unix and C
programmer. In fact, Brian, Dennis and I have never ourselves attempted
to write a commercial application in this environment. We feel really
guilty about the chaos, confusion and truly awesome programming projects
that have resulted from our silly prank so long ago."
Dennis Ritchie said: "What really tore it (just when AIDA was catching
on), was that Bjarne Stroustrup caught onto our joke. He extended it to
further parody Smalltalk. Like us, he was caught by surprise when nobody
laughed. So he_us.added multiple inheritance, virtual base classes, and
later ... templates. All to no avail.
So we now have compilers that can compile 100,000 lines per second,
but need to process header files for 25 minutes before they get to the
meat of 'Hello, World'."
Major Unix and C vendors and customers, including AT&T, Microsoft, Hewlet Packard, GTE, NCR, and DEC have refused comment at this time.
Borland International, a leading vendor of object oriented tools,
including the popular Turbo Pascal and Borland C++, stated they had
suspected this for a couple of years.
In fact, the notoriously late Quattro Pro for Windows was originally written in C++. Phillipe Kahn said: "After two and a half years programming, and massive programmer burn outs, we re-coded the whole thing in Turbo Pascal in three months. I think it's fair to say that Turbo Pascal saved our bacon.
Another Borland spokesman said that they would continue to enhance their Pascal products and halt further efforts to develop C/C++.
Professor Wirth of the ETH institute and father of the Pascal, Modula 2 and Oberon structured languages, cryptically said "P. T. Barnum was right." He had no further comments.