(Humor) Die Entstehungsgeschichte von C



  • C und UNIX nur ein schlechter Scherz?

    In einem in der Computerindustrie Aufsehen erregenden Vortrag haben Ken Thompson, Dennis Ritchie und Brian Kernighan zugegeben, daß das von ihnen entwickelte UNIX-OS und die Programmiersprache C von ihnen ursprünglich als Aprilscherz gedacht war, der sich aber seit über 20 Jahren am Leben erhält. In einer Ansprache auf dem kürzlich stattfindenden UnixWorld Software Development Forum äußerte sich Thompson wie folgt:

    "1969 hatte AT&T gerade die Arbeit an dem GE/Honeywell/AT&T Multics Projekt beendet. Brian und ich hatten gerade begonnen, mit einer frühen Form von Pascal zu arbeiten, das von Professor Nichlaus Wirths Lehrgebiet an der ETHZ in der Schweiz entworfen wurde. Wir waren von der eleganten Einfachheit und Mächtigkeit der Sprache sehr beeindruckt. Dennis hatte gerade das Buch "Der Herr der Augenringe" zu Ende gelesen, eine urkomische Parodie auf Tolkiens großartige Trilogie "Der Herr der Ringe". Zum Spaß begannen wir, eine Parodie auf die Multics-Umgebung und Pascal zu erstellen. Dennis und ich waren für die Umgebung verantwortlich.

    Wir schauten auf Multics, und entwarfen das neue System so komplex und kryptisch wie möglich, um die Frustration gewöhnlicher Benutzer so hoch wie möglich zu machen, und nannten es UNIX als Parodie auf Multics, ebenso wie einige andere Anspielungen innerhalb des Systems. Dann begannen Dennis und Brian an einer wirklich verzerrten Version von Pascal zu arbeiten, genannt 'A'. Als wir merkten, daß andere tatsächlich vorhatten, Programme mit 'A' zu entwerfen, fügten wir rasch zusätzliche kryptische Eigenschaften hinzu, und entwickelten daraufhin B, BCPL und schließlich C. Wir hörten auf, als es uns gelang, den Ausdruck

    for(;P("\n"),R--;P("|"))for(e=C;e--;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
    

    fehlerfrei zu compilieren.

    Zu denken, daß moderne Programmierer versuchen würden, eine Sprache zu benutzen, die derartige Ausdrücke zuläßt, lag weit außerhalb unseres Verständnisses. Wir dachten daran, das ganze an die Sowjets zu verkaufen, um den Fortschritt ihrer Computerwissenschaft um 20 Jahre zurück zu werfen.

    Man stelle sich unsere Überraschung vor, als AT&T und andere US-Firmen begannen, es mit UNIX und C zu versuchen! Es kostete sie 20 Jahre, um genug Erfahrung zu sammeln, um wenigstens halbwegs nützliche Applikationen mit dieser Parodie der 60er-Jahre zu erstellen., aber wir waren erstaunt von der Zähigkeit des gewöhnlichen UNIX- und C-Programmierers. Auf jeden Fall haben Brian, Dennis und ich in den letzten Jahren ausschließlich auf dem Apple Macintosh in Pascal programmiert und wir fühlen uns wirklich schuldig an dem Chaos, dev Konfusion und der wirklich schlechten Programmierarbeit, die wir mit unserem unsinnigen Scherz vor langer Zeit angerichtet haben."

    Die wichtigen UNIX- und C-Verkäufer und -Nutzer, einschließlich AT&T, Microsoft, Hewlett-Packard, GTE, NCR und DEC, haben zum jetzigen Zeitpunkt jede Stellungnahme abgelehnt. Borland International, ein führender Hersteller von Pascal- und C-Tools, einschließlich dem populären Turbo-Pascal, Turbo-C und Turbo-C++, äußerten, daß sie dies bereits seit einiger Zeit vermutet hätten und in Zukunft ihre Pascal-Produkte weiter verbessern wollten, bei gleichzeitiger Einstellung jeglicher Entwicklung für C. Ein IBM-Sprecher brach in unkontrolliertes Lachen aus und mußte eine hastig zusammengerufene News-Konferenz über das Schicksal der RS-6000 aufschieben - lediglich mit der Aussage "VM wird nun wirklich bald zur Verfügung stehen". In einer kryptischen Aussage bemerkte Professor Wirth vom Institut der ETHZ, Vater der strukturierten Sprachen Pascal, Modula2 und Oberon, lediglich, daß P.T. Barnum richtig lag.

    In einer ähnlichen Meldung, die vor kurzem hereinkam, sagten üblicherweise zuverlässige Quellen, daß ein ähnliches Geständnis bald von William Gates gemacht werden wird, betreffend das MS-DOS- und Windows-Betriebssystem. Und IBM-Sprecher haben zu leugnen begonnen, daß auch die virtuelle Maschine (VM) ein interner Streich ist, der nach außen gedrungen ist.

    Quellen:
    Aus: COMPUTERWORLD, April 1st, in freier Übersetzung

    Der englische Originaltext ist unter "c hoax" im Web zu finden.



  • Nach knapp zehn Jahren mußte das einfach wieder aus der Versenkung geholt werden 😃



  • Ja, ist vielleicht alt, aber dennoch wirklich gut. 😃



  • Marc++us schrieb:

    Wir hörten auf, als es uns gelang, den Ausdruck

    for(;P("\n"),R--;P("|"))for(e=C;e--;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
    

    fehlerfrei zu compilieren.

    Die C++0x-Version davon lautet übrigens

    int main () { ([&](){}.*((int(decltype([&](){})::*)())0))(); }
    

    😃



  • Hi audacia,

    was gibt dein Programm aus? Hab kein C++0x Compiler zur Hand.



  • @Marc++us,

    Das hast Du doch schon ewig auf Deiner Seite 🙄
    Obwohl die Zeit des Postings laesst Vermutungen aufkommen...



  • couter schrieb:

    Hi audacia,

    was gibt dein Programm aus? Hab kein C++0x Compiler zur Hand.

    Siehst du da irgendwo eine Ausgabe oder überhaupt eine #include-Anweisung?
    Edit: Ah, SHIT! Der ist von 2009. Fail.



  • a, ist vielleicht alt, aber dennoch wirklich gut. 😃


Anmelden zum Antworten