Home Computer Programmiersprachen Site Map counter

Richtige Programmierer meiden "C"

Einleitung

Es gibt im Web einen relativ bekannten Aufsatz: "echte Programmierer meiden Pascal", von dem ich auch eine kommentierte Version publiziert habe. Seit der Entstehung dieses Aufsatzes (1982) sind 20 Jahre vergangen und wenn er nicht schon damals als Karikatur gemeint war, so ist er es mit Sicherheit heute. Bei meinem Softwaretechnikstudium habe ich allerdings festgestellt, das viele Studenten genau die Einstellung haben, die in diesem Aufsatz vermittelt wird. Nun wird es Zeit für eine kleine Richtigstellung. Zum besseren Verständnis sollten sie das Original lesen, da ich mich darauf beziehe.

"Echte Programmierer mögen kein Müsli"

In dem Aufsatz hält der Autor ein Loblied auf FORTRAN, und zwar auf das nach dem 66 er Standard ohne irgendwelche strukturierte Programmierung. Er verachtet alles was seit ALGOL (1960) in die Computersprachen Einzug gehalten hat: Strukturierte Programmierung, Abstrakte Datentypen, Objektorientierung. An Betriebssystemen benutzt der "echte Programmierer" OS 370, selbst UNIX ist nicht kryptisch genug. Und natürlich arbeitet der echte Programmierer in der NASA, Filmstudios und dem DoD.

Aufwachen: Die Welt ändert sich

Schön wäre es wenn die Welt so einfach wäre, lange war sie es auch: Solange es nur Großrechner gab, mit immer weiter gepflegten Programmen, hatten neue Programmiersprachen und Betriebssysteme keine echte Chance. Doch die Computerwelt von heute ist nicht die von 1982. Die meisten Berufanfänger arbeiten eben heute nicht mehr für Großrechner mit diesen traumhaft langen Nutzungszeiten von Architekturen: Einmal gelerntes Wissen ist in 10 Jahren noch anwendbar: COBOL wird immer noch für Betriebswirtschaftliche Anwendungen eingesetzt und ist auch für den Jahrtausendbug verantwortlich.

Die meisten Programmierer arbeiten heute als Anwendungsprogrammierer für PC Systeme und das heißt heute Windows. Damit in ein Feld das sich laufend wandelt. Nur mal zur Erinnerung: Als der Aufsatz entstand programmierte jeder PC Anwendungen in Assembler (Der PC war gerade 1 Jahr alt), dann kam Pascal, C Visual BASIC, C++ und heute Java. Sechs Programmiersprachen in knapp 20 Jahren und die nächste ist mit C# am Horizont schon sichtbar. (Von den Skriptsprachen, die man heute auch können muss, mal nicht zu reden).

Heute sind Programme komplex und im Extremfall auch verteilt: Ein Teil läuft auf einem Client, der andere auf einem Server. Das ist nicht die Welt der Einzelkämpfer sondern der Teams. Neue Technologien, wie es sie von Microsoft im Kommunikations- und Datenbankbereich alle paar Jahre gibt (CORBA, COM, DCOM, COM+ und ADO nur mal als Stichwort was sich beim Themenkreis Internet,, Datenbanken und Vernetzte Applikationen in den letzten 4-5 Jahren getan hat), machen es unmöglich sich auf seinen Meriten auszuruhen.

Es ist heute nicht Aufgabe die letzte Nanosekunde herauszukitzeln und kryptischen aber schnellen Code zu schreiben, sondern leicht leserlichen, deutlich strukturierten und kommentierten Code, der wieder verwendet werden kann. Idealerweise nach dem Prinzip der Block Box mit definierten Schnittstellen nach außen.

Was passiert wenn man solche "echten Programmierer" auf die Welt loslässt, kann man in zwei Worte fassen: UNIX und C. UNIX ist eine Zusammenfassung von 1000 Programmen mit kryptischen Kommandozeilenparametern ohne Dialoge, ohne echte Hilfe. Sollte jemand damit zurechtkommen so gibt es als zweiten Fallstrick, das es nicht ein UNIX gibt sondern ein halbes Dutzend Standards und einige Hundert Implementierungen die sich um die Standards nicht kümmern. Und damit man nichts automatisieren kann gibt es zusätzlich noch verschiedene Versionen der Shell.

Ergänzt wird das durch Editoren gegen die "Notepad" wie ein Polstersofa neben einer nassen Holzbank wirkt: Mit Kommandos wie:wq oder /S/2. So etwas lieben "echte" Programmierer. Wenn ich die Arroganz lese die aus Leserbriefen von Linux Anwendern in der ct klingt, dann muss man sich auch nicht wundern, warum Linux noch immer keine Konkurrenz zu Windows ist. Es ist ja nicht unmöglich - Apple hat es mit Max OS-X vorgemacht, das auf FreeBSD basiert, und das den Anwender bei dem Komfort abholt die jene von MacOS (das in dieser Beziehung noch Windows schlägt) gewohnt sind. Nein, Linux Entwickler wollen eigentlich nicht, das Normaluser wie Du und ich ihr Betriebssystem benutzen. Sonst wären sie nicht mehr eine exklusive Minderheit die über Windows User lästern kann. Sonst würden Millionen von Anwendern über die Mängel von Linux schimpfen, die dieses ach so miesen Windows als Benutzerstandard gewohnt sind.

Zu C ist zu sagen das es wohl die einzige moderne Programmiersprache ist, die nicht mehr kann als ihre Vorläufer sondern weniger. Seit FORTRAN ging die Entwicklung dahin, Programme leichter lesbar zu machen, dem Programmierer mehr Hilfsmittel in die Hand zu geben abstrakt ein Problem anzugehen. C tritt diese Grundsätze mit den Füßen. C ist eine relativ gute Mischung von Assembler mit einer Hochsprache. Von der Hochsprache hat sie die allgemeinen Strukturen für strukturierte Programmierung übernommen, von Assembler die elementaren Datentypen und Operatoren. C hat keine echten Syntaxchecks weil das die meisten Operationen unmöglich machen würde die C Programmierer so lieben. In keiner anderen Sprache sind solche unleserlichen Programme möglich:

#include <stdio.h>

main(t,_,a)-

char *a;-

{return!0<t?t<3?main(-79,-13,a+main(-87,1-_,-

main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a-

)&&t == 2?_<13?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_,-

t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\-

,/+#n+,/#;#q#n+,/+k#;*+,/'r:'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\-

+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\-

l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\-

n'wk nw' iwk{KK{nl]!/w{%'l##w#' i;:{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \-

;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\-

#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")-

:t<-50?_==*a?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\-

+1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \-

i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m.vpbks,fxntdCeghiry"),a+1);}-

Download Programm / (EXE für Windows)

Selbst Autoren die C befürworten (weil es so viele Freiheiten gibt) verweisen auf die Kehrseite: Das es sehr gefährlich ist und viel Programmierunsinn der auch einfach ein Schreibfehler sein kann (z.B. if (a=b) anstatt if (a==b)) nicht erkannt wird und zu fehlerhaften Programmen führt. Sie vertreten allerdings die Meinung das ein Profi damit effektiver arbeitet. Nun dem ist nicht so: Auch ein Profi macht mal Fehler. Während aber moderne Programmiersprachen helfen Fehler zu entdecken lässt ihn C damit im Regen stehen. Das schlimme an C: Es nimmt einem den Programmierspaß, weil man ständig nachdenken muss : "Ist dass was Du willst wirklich das was Du schreibst?". Es ist als wollte man einen kleinen Spaziergang machen und bemerkt plötzlich das man durch ein Minenfeld läuft. Damit man mit C überhaupt größeres entwickeln kann gibt es in den meisten Firmen strenge Programmierrichtlinien wie was zu implementieren ist, wie Variablen benannt werden müssen und welche Makros man benutzen darf... Im Prinzip führt man damit die Kontrolle wieder ein die eigentlich ein guter Compiler machen sollte, die nun aber der Anwender selbst erledigen muss - Ein Rückschritt in die Computersteinzeit!

Trotzdem gibt es immer noch Fehler. Einige Schlagzeilen aus dem Jahre 2003: Man will FreeBSD sicher machen indem man alle Buffer-Overflows findet und eliminiert. Im August 2003 führte ein Buffer-Overflow im Windows RPC Dienst zu einem Angriff durch den Wurm LoveSun / W32Blaster. 6 Monate lang ruhte die Windows Neuentwicklung und bei Microsoft suchte man systematisch nach Buffer Overflows. Dabei wurde das gesamte System neu übersetzt und es entstand das 260 MB große Service Pack 2. Buffer Overflows gibt es nur in C: Bei Strings wird über das Stringende hinaus geschrieben und so Code überschrieben. Kennt ein Angreifer die Struktur der Routine so kann er über einen String den er an eine Anfrage anhängt eigenen Code in ein System einschleusen. Das ist keine Sicherheitslücke, das ist eine Bombe im Betriebssystem und eine Programmiersprache die so etwas erlaubt ist eine Gefahr (Wurde C vielleicht durch den CIA entwickelt???)

Warum hat sich trotzdem C so durchgesetzt? Nun wenn ich mich mit denen unterhalte die C lieben dann stelle ich fest das alle es so toll finden das man so kurz und kryptisch darin schreiben kann - Das Programm als Gesamtkunstwerk, welches nicht nur läuft sondern auch von niemand gelesen kann - wie toll muss dann der Programmierer sein. Oder wie dämlich, denn spätestens nach dem nächsten Projekt versteht er selbst den Code nicht mehr. Gute Programme sind nicht nur leistungsfähig, sie sind auch leicht verständlich, denn das ist erheblich schwieriger als nur ein gutes Programm zu schrieben

Es gab schon immer solche Programmierer und die waren auch beteiligt als es darum ging die Programmiersprachen für die grafischen Oberflächen zu bestimmen. Wer in der Industrie nicht vorwärts kam wurde Dozent und lehrte natürlich auch seine Studenten in C, UNIX und vi. Natürlich verbreitete sich C auch durch UNIX, das verschenkt wurde und dessen Schnittstelle in C ist, ebenso wie die mit C programmierten neueren grafischen Oberflächen. Damit sind andere Programmiersprachen aber erst mal benachteiligt. BASIC oder Pascal müssen ihre Daten für API Funktionen umwandeln und Ergebnisse wieder zurück umzuwandeln.

Dabei gibt es in C einige wirklich sicherheitskritische Fehler:

Buffer-Overflow Attacken - Das Einschleusen von Programmcode über eine http:// Anfrage - sind nur in C und eingeschränkt in C++ möglich. Basis dafür ist das die Verwaltung von Zeichenketten in C ganz dem Programmierer obliegt. Und wenn dieser nicht nachdenkt was passiert wenn man ihm einen http:// String von 1 KByte Länge gibt und er nur mit 100 Zeichen rechnet, weil eine URL kleiner ist dann überschreibt der String eben Rücksprungadressen mit eigenem Code der beim Rücksprung ausgeführt wird. Der Trojaner ist im System und mit Vollmachten der Anwendung aktiv. Eine fehlende Call by Reference Schnittstelle die mühsam mit Pointern emuliert werden muss. Wen diese mal ins Nirwana zeigen gibt es die schönsten Dinge, wobei ein Blue-Screen noch etwas harmloses ist.

Als es den objektorientierten Ansatz gab, wurde C um diese erweitert - noch komplexer und unlogischer - und in C++ umbenannt. (Sprich: C ums ein schlimmer). Entschärft wurde es nur wenig, oder wie der C++ Erfinder Bjarne Stroustrup ausdrückte "In C kann man sich leicht ins Bein schießen. In C++ ist es schon schwerer, aber wenn, dann ist das ganze Bein weg !". C++ hat nicht die wirklichen Mängel von C beseitigt sondern nur ein paar abgemildert. Anders wäre es wohl sonst nicht möglich gewesen C Programmierer von der neuen Sprache zu überzeugen. C Programmierer meinen nämlich auch im Gegensatz zu echten Programmierern das sie nichts neues lernen müssen, was völlig neu ist. Lieber passen C Programmierer neue Sprachen der C Syntax an: C++ und Java als Beispiele lassen grüßen. C++ setzte die C Tradition in zwei Dingen fort: Erstens ist es enorm komplex und widersprüchlich. Als zweites scheint es keinen echten festen Standard zu geben sondern eine "Empfehlung" - Ein Programm das bei Borland C++ anstandslos läuft und nichts von Borlands Erweiterungen benutzt, erzeugt trotzdem bei Microsofts Compiler Errors.

Nein, wirklich gute Programmierer programmieren nicht in C oder C++. Auch die Arbeitsplätze die 1982 für echte Programmierer genannt worden: Filmstudios, NASA, DoD setzten inzwischen andere Sprachen ein. Die Disney Filmstudios machen Animationen in Smalltalk. Das DoD und die NASA arbeiten mit ADA. Beides Sprachen die im Aufsatz von 1982 abgelehnt wurden. Die erste ist wirklich objektorientiert und die zweite sauber strukturiert. Auffällig ist das gerade im Bereich Raumfahrt-Luftfahrt-Millitär, wo Software einfach immer funktionieren muss und man nur begrenzte Testmöglichkeiten hat, C und C++ nicht angewandt werden darf!

Die Ausbreitung des C Krebsgeschwürs

Niemand, nicht einmal Kerningham und Ritchie behauptet, das C leicht zu erlernen ist. Neben den Stolperfallen in der laxen Syntax machen es einem auch die normalen Sprachmittel nicht leicht: Makros die einfache Textersetzungen sind, eine Unzahl von Operatoren, Klammern um Blöcke zu kennzeichnen und natürlich auch das man penibel auf Groß- und Kleinschreibung achten muss.

Konsequenterweise sollte man erwarten das C Programmierer daraus etwas gelernt haben und dann wenn sie daran gehen eine neue Sprache zu schaffen diese Mängel abschaffen. Es gibt auch solche wie Python. Doch häufiger ist das umgekehrte: Man nimmt für neue Sprachen die C Syntax und passt n ur das an was notwendig ist. Die Folge: Eine Unzahl von Programmiersprachen, Scriptsprachen oder Shellsprachen auf C Syntaxbasis. Von der C Shell über PHP, Perl, Java, C++ ,C#...

Warum es so viele sind? Nun wie man schon bei UNIX (das weltgrößte Puzzle) sieht: Nichts ist für schlechte Programmierer so schlimm wie Standards. D.h. wenn man eine Lösung hat dann benutzt man diese nicht oder erweitert sie, sondern man schafft eine neue, ähnliche aber total inkompatible. Dieses Vorgehen von schlechten Programmierern hat und ein Dutzend UNIX Shells, ein halbes Dutzend von Scriptsprachen um dynamische Inhalte im Web zu realisieren und dazu noch einige Programmiersprachen beschert. Und es ist damit nicht Schluss: Microsoft will z.B. mit C# eine Konkurrenz zu Java schaffen. Die Folge: Als Programmierer sind heute Kenntnisse von einem halben Dutzend Programmiersprachen nötig. Dabei könnte man alles auch in Objekt Pascal machen, aber das wäre ja einfach, leicht zu erlernen, nicht kryptisch und damit eine Gefahr für den eigenen Arbeitsplatz, da man dann weniger Programmierer benötigt.

Ehlicherweise muss man natürlich sagen, dass vieles sicherer geworden ist. In C# oder Java gibt keine Buffer Overflows mehr, bei C# auch keine Zuweisungen in if Konstrukten. Allerdings unterscheidet Java oder C# sich von einem modernen Pascal wie Delphi 8 nur in der Syntax, nicht mehr in den Möglichkeiten, so dass es mehr eine Geschmacksfrage ist ob man in C# oder Delphi programmiert. Selbst für C gibt es Compilerswitches oder zumindest Warnings, die verhindern, dass Code compiliert wird, der problematisch sein kann. Allerdings ist dies kein Sprachbestandteil und bei Deaktivierung dieser Parameter wird nach wie vor jedes C Programm compiliert, dass in einer Routine seine eigene Rücksprungadresse verändert.

Was zeichnet den wirklichen Programmierer aus?

Er ist auf dem laufenden Stand der Technik, er beherrscht neue Technologien und setzt diese um und lernt auch neue Programmiersprachen. C/C++ Programmierer ruhen sich auf ihrem Visual C aus und ihrer MFC, die nicht einmal komponentenbasiert ist wie es Delphi seit 6 Jahren schon ist. (Programmieren auf Basis der MFC ist nicht einmal sauber in C++ sondern angereichert mit C-Pointern und Makros, gerade den wenigen Dingen deren Gefahrenpotential Stroustrup mit C++ mildern wollte). Wenn schlechte C Programmierer sehen, dass man mit C etwas nicht machen kann wie die Sicherheitsmechanismen von Java, dann lernen sie nicht diese sondern versuchen die Syntax C anzupassen und nennen es C#. (Ob Java so erfolgreich gewesen wäre wenn es nicht die C Syntax übernommen hätte? Smalltalk als objektorientierte Sprache gab es schließlich schon 15 Jahren vor Java, trotzdem konnte sie sich nie durchsetzen weil bei ihrer Syntax Umdenken angesagt ist.)

Echte Programmierer haben keine Angst vor nicht mehr so weit verbreitenden Sprachen wie Smalltalk - Reines objektorientiertes Konzept oder LISP - Standardsprache bei der künstlichen Intelligenz. Allerdings haben sie im heuten wirtschaftlichen Umfeld mehr und mehr Probleme Arbeitgeber zu finden, die auch diese Sprachen einsetzen. Echte Programmierer arbeiten bevorzugt im exklusiven Umfeld: Dort wo man die Mängel von C/C++ erkannt hat und diese Sprachen nicht eingesetzt werden dürfen. Sie programmieren Steuerungselektronik für Airbusse, Software für Raumsonden, Verwaltungsprogramme für die unzähligen Filmszenen des ZDF Jahrhundertbusses oder Trickeffekte für Hollywood. C / C++ Programmierer müssen ihr Leben als Anwendungsentwickler für Windoof oder für Mikrocontroller fristen. Bei ersterem fallen ihre Unzulänglichkeiten nicht mal auf, da sie die Schuld im Zweifelsfall auf das in C/C++ entstandene Betriebssystem schieben können...

Echte Programmierer schreiben sauberen, leicht lesbaren und wartbaren Code der nach dem Prinzip der "Blackbox" wieder verwendbar ist. Gute Programmierer sind auch gut im Team. Wirkliche Programmierer erkennen die echten Anforderungen an das Programm: Das es das tut was verlangt wird in der zur Verfügung stehenden Zeit und zu dem gewünschten Preis. Sie stecken nicht ihre Arbeit darin 20 ns in einer Schleife einzusparen oder 2 KByte Programmcode, wenn das Gesamtsystem meistens auf den Benutzer wartet und 5 MByte groß ist. Deswegen freuen sich wirkliche Programmierer auch über Arbeitserleichterungen die ihre Produktivität steigern.

Schlechte Programmierer arbeiten dagegen gern mit C und C++, am besten auf UNIX und bezeichnen Leute die mit anderen Sprachen doppelt so schnell arbeiten, gerne als "Warmduscher". Ihrer geringe Produktivität, ihre unlesbaren Programme, die als Bananensoftware beim Kunden reifen, nützen auch echten Programmierern. Denn diese Leute machen sich damit unersetzlich (niemand außer ihnen versteht ihren Quelltext und manchmal auch sie selbst nicht mehr) und sorgen dafür das man bei Neuanstellungen echte Programmierer nimmt, auch wenn diese mehr Gehalt verlangen. Der gesamte Informatikboom - der enorme Bedarf an Fachkräften korreliert sehr gut mit der Zunahme von C/C++ bei der Programmierung - na wenn das kein Zufall ist.

Es gibt wirklich gute Programmierer in vielen Sprachen, nicht nur einer: In Object Pascal, Java, LISP und ADA. Aber: Echte Programmierer meiden C/C++. Nicht weil sie nicht darin programmieren könnten, sondern weil diese Sprachen ihre Produktivität hemmen, sie zwingen sich mit unwesentlichen Details auseinanderzusetzen, weil man bei der Sprachdefinition geschlafen hat.

Echte Programmierer sind auch anders als die im Aufsatz von 1982 beschriebenen nicht dogmatisch: Sie wählen die Sprache aus die am besten zu der Anwendung passt die sie erstellen sollen. Sie heben sich vor allem von C/C++ Programmieren dadurch ab das Sie auch Sprachen jenseits des Mainstreams beherrschen.

Echte Programmierer orientieren sich nach den Wünschen der Anwender. Zugegeben kein echter Programmierer liebt Kunden oder die Leute vom Vertrieb und Marketing. Diese Leute haben meist gar keine Vorstellung davon was sie eigentlich wollen, und neigen dazu wenn das Produkt zu 95 % fertig ist mit Änderungen zu kommen, die man am Anfang zuerst hätte machen sollen. Aber ein Programm entsteht für einen Kunden und es sollte die Aufgabe sein dessen Wünsche zu erfüllen und nicht sich in einem Gesamtkunstwerk das aber praktisch unbrauchbar ist zu verewigen. (Zitat eines C-Programmierers als ihn der Projektleiter darauf hinwies das die Bedienung seines Moduls umständlich war "Was ich nicht abkann sind Kunden die nicht wissen wie man ein Programm bedient.". Ein echter Programmierer arbeitet daher zielorientiert und ist daher effektiv - Was sich nach eigenen Erfahrungen auch gut auf dem Konto auswirkt...

Was macht ein echter Programmierer wenn er nicht das Glück hat in einer Firma unterzukommen die das C/C++ Problem erkannt hat? Nun ein echter Programmierer kann in jeder Sprache wie in Pascal oder ADA programmieren. Er verzichtet einfach auf alles was er für unsicher hält. Gute echte Programmierer haben die C Standardbibliothek durch eigene Routinen ersetzt, die sicher sind und eine eigene String Verwaltung geschrieben die nicht zu Blue Screens führt.

Gut das wir verglichen haben...

Zum Schluss noch ein Beispiel aus der Praxis. Der Autor war zusammen mit einem C++ Programmierer an einem Projekt beteiligt. Dieser arbeitete mit Visual Studio 6, er mit Delphi 5. Obgleich er nur 2 Monate am Projekt beteiligt war und der andere 4 (und dabei, weil er nicht fertig wurde noch zweimal den Arbeitsvertrag verlängern musste) schaffte er 4 Programme zu entwickeln während der C++ Programmierer nur 2 schaffte. Dieser hatte unzählige Probleme mit vagabundierenden Pointern und kleine Änderungswünsche des Projektleiters führten dazu das überhaupt nichts mehr ging. Dabei war er nicht schlechter qualifiziert, er arbeitete eben mit C++. Die Folge: Als das Projekt nach 6 Monaten in die zweite Phase ging, war der C++ Programmierer draußen. Die erste Aufgabe war es die in C++ entstandenen Programme durch neue in Delphi zu ersetzen - innerhalb von 4 Wochen und nicht 4 Monaten. Denn echte Programmierer sind effektiv. Das Projekt ist nun vollständig in Delphi realisiert worden.

Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensläufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen.

Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht.

Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.

Mehr über das Buch auf dieser eigenen Seite.

Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.


© des Textes: Bernd Leitenberger. Jede Veröffentlichung dieses Textes im Ganzen oder in Auszügen darf nur mit Zustimmung des Urhebers erfolgen.
Sitemap Kontakt Neues Hier werben Bücher vom Autor Buchempfehlungen Top 99