Meine Programmierlaufbahn begann mit einem Schneider CPC 464 und dem eingebauten Locomotive BASIC 1.0. Ich hangelte mich am (durchaus ansprechenden) Handbuch entlang durch die Untiefen der Sprache. In ganz jungen Jahren und Mitte der 80er fand man das irgendwie alles cool und hat wenig hinterfragt, aber die Tatsache, dass man Zeilennummern verwenden musste und es als einziges Strukturierungsmittel GOTO und GOSUB gab, fand ich damals schon nicht gut. Auch wenn ich noch nicht ahnte, wieviel besser man es machen kann.
Mit den Zwischenstationen Logo, Z80-Assembler, Turbo Pascal, BBC BASIC, ARM-Assembler, C, Modula-2, HP-PA-RISC-Assembler und LISP lernte ich dann Ada kennen. Damals noch in der Variante Ada 83, also erst mal objektbasiert und nicht objektorientiert. Es war wie eine Erleuchtung. Endlich eine Sprache, die einfach alles konnte. Und in schöner Syntax verpackt. Die nicht nur auf ein paar guten Ideen basierte, wo man dann so eine Restsprache drumrum gestrickt hat. Wo schon bei liebevollen Details im Typsystem klar wird: da haben schlaue Köpfe lange gehirnt. Dazu das wunderbare “Language Reference Manual”, wo eben die definitiven Antworten drin stehen. Und das “Rationale”, wo man nachlesen konnte, warum was wie umgesetzt wurde. Und Ada 95 verstärkte diesen großartigen Eindruck noch.
Nun bin ich gestern auf einen Artikel namens “A Random Walk Through Ada” von David Given gestoßen, der mich wieder an viel erinnert hat, was ich an Ada so alles großartig fand und finde. Leider habe ich die Weiterentwicklungen Ada 2005 und Ada 2012 nicht mehr im Detail verfolgt, weil sich die IT-Industrie ja entschieden hatte, irgendwelche anderen Sprachen zu favorisieren.
Der Artikel ist absolut lesenswert und erklärt schön, was an Ada so liebenswert ist. Eine Warnung allerdings: man wird sich dann zukünftig bei der Beschäftigung mit den diversen neuen Sprachen, die jedes Jahr aufpoppen, immer fragen, warum deren Erfinder die vielen guten Ideen der Vergangenheit schlicht ignorieren. Das scheint mir generell so eine Art Krankheit der IT zu sein: das ständige Bedürfnis, das Rad neu zu erfinden. Ohne dabei ein besseres Rad zu erschaffen, sondern nur ein anderes.
Nur eine minimale Unschärfe des Artikels will ich kritisieren: zwar ist die Container-Bibliothek, die es seit Ada 2005 in den Standard geschafft hat (und die es unter dem schönen Namen “Charles” auch für Ada 95 gibt), nach der STL von C++ modelliert worden, aber der Autor von Charles, Matthew Heaney, ist keineswegs auch der Autor der C++-STL – die haben wir vielmehr den Herren Stepanov und Lee zu verdanken. Stepanov selbst begann seine Experimente mit generischen Containerbibliotheken allerdings mit Ada (damals noch Ada 83), vielleicht daher die Verwechslung.