Neulich habe ich eine alte Leidenschaft wieder aufflammen lassen. Die Gründe, das zu erläutern, würden diesen Blogpost hier sprengen. Abgesehen davon habe ich sie bereits in diesem Blogpost in extenso erklärt. Die alte Leidenschaft ist das Programmieren in Pascal – übrigens nachträglich noch alles Gute an Niklaus Wirth zum 85. Geburtstag. Er hat Pascal erfunden und einen nicht unwesentlichen Anteil dazu beigetragen, dass ich Spass am Programmieren entwickelt habe.
Nun, man muss keine Professur in Informatik haben, um zu erkennen, dass die Bedeutung von Pascal in den letzten Jahren abgenommen hat. Wenn man sich heute entscheidet, die Karriere eines Code monkeys einzuschlagen, dann tut man gut daran, andere Sprachen zu lernen. Die Empfehlungen hier sind Java, Python, Javascript, C#, PHP und Perl. Und aus unerfindlichen Gründen C++, immer noch! Spannend fände ich auch Apples Programmiersprache Swift. Siehe dazu hier: Es gibt dümmere Freizeitbeschäftigungen
Doch ganz obsolet ist Pascal nicht. Erstens, weil Programmiersprachen langsam sterben. Es braucht Leute, die alte Sprachen beherrschen, um alte Systeme am Leben zu erhalten. In der Schweiz muss es Hunderte von Informatikern geben, die dank Kenntnissen in Cobol oder ähnlichen Sprachen gefragte Leute sind. Cobol stammt aus den 1950er-Jahren und ist bei Bankensystemen noch immer in Betrieb. Hierzulande, aber auch in den USA, wie der Tagi vor zwei Jahren geschrieben hat:
Bill Hinshaw verbringt seinen Ruhestand etwas anders als der Durchschnittsrentner. Der 75-jährige Grossvater von insgesamt 32 Enkeln und Urenkeln ist zwar auch bei seiner Familie. Das Arbeiten aber kann er nicht lassen. Er hilft amerikanischen Unternehmen dabei, ihre Computersysteme am Laufen zu halten.
Auch Pascal ist nicht ganz tot. Cio.com (was womöglich für Chief Information Officer steht) hat die 9 legacy programming skills still in demand eruiert: DB2, C, Cobol, Assembly, Delphi und Object Pascal, Fortran, REXX und eben Pascal. Erstaunlicherweise auch Perl. Ich wusste nicht, dass auch Perl die Gunst der Stunde verloren hat. Was aber offenbar der Fall ist.
Pascal hat noch immer seinen Reiz
Zweitens, weil Pascal immer noch seinen Reiz hat. Nun kann es sein, dass ich ein alter Sack bin und in der Vergangenheit lebe. Trotzdem vermute ich, dass es nach wie vor mehr Spass macht, die Programmierung mit Pascal zu lernen als sich zum Beispiel mit JavaScript herumzuschlagen. Oder mit PHP. Ich vermute, dass mich, wenn ich mit einer dieser beiden Sprachen angefangen hätte, schon bald der Spass verlassen hätte.
Darum halte ich Pascal noch ein bisschen die Stange – und würde die Sprache eher empfehlen als zum Beispiel den ultimativen Programmier-Dinosaurier Basic. Obwohl der von Microsoft nach wie vor künstlich am Leben erhalten wird. Mit Visual Studio kann man noch immer in Basic programmieren. Übrigens gibt es Microsofts Programmierumgebung auch kostenlos – siehe Gratis für Windows programmieren. Sie existiert nicht nur für Windows, sondern auch für Linux und Mac, hier.
Doch wie schreibt man Pascal mit modernen Entwickler-Werkzeugen? Embarcadero (an diesen Namen habe ich mich noch immer nicht gewöhnt, zum meiner Zeit hiess der Hersteller Borland) bietet kostenlos die Community Edition von Delphi an. Das ist ein Fortschritt, denn vor einigen Jahren habe ich mich darüber beklagt, dass man selbst für die Einsteigerversion 1300 Franken hinlegen musste. Der Download hat auch bestens geklappt, doch die Installation ist mittendrin hängen geblieben.
Es watschelt wie Delphi und quakt wie Delphi
Darum ist meine Empfehlung die Lazarus IDE. Diese Entwicklungsumgebung gibt es kostenlos für Windows, Mac und Linux. Sie sieht genauso aus, wie Delphi, fühlt sich so an und funktioniert absolut identisch – nur das Kompilieren und Ausführen der Programme ist gefühlt langsamer.
Ich habe die Software nun nicht ausgiebig getestet, weil das den Rahmen eines Blogposts hier bei weitem sprengen würde. Aber mein kleines Projekt – ein Programm, das aus statischen HTML-Dateien eine CSV-Datei macht, die dann in WordPress importiert werden kann – hat tadellos funktioniert.
Meine Erfahrung war so: Ich habe Lazarus heruntergeladen, installiert und gestartet. Erster Gedanke: «Aha, das kenne ich.» Zweiter Gedanke: «Aber ich habe nach zehn Jahren keine Ahnung mehr, was ich hier tun soll.» Dann, nachdem ich etwas herumgespielt und die Nase in einige alte Projekte gesteckt hatte, kam vieles zurück.
Wie ging das mit den Objekten, den Zeigern und den zur Laufzeit erzeugten Komponenten?
Natürlich, um meine fortgeschritteneren Projekte wieder zu verstehen, müsste ich noch einmal einiges investieren. Wie ging das mit den Objekten, den Zeigern und der Erzeugung von Komponenten zur Laufzeit schon wieder? Da bräuchte es noch ein paar Tage Einarbeitungszeit. Doch die grundlegenden Dinge verlernt man so schnell nicht. Da unterscheidet sich das Programmieren offensichtlich nicht vom Velofahren.
Ich habe auch probiert, ob sich ein altes Delphi-Projekt in Lazarus öffnen lässt. Die Projektdateien (.dpr) erscheinen zwar nicht im Öffnen-Dialog; Lazarus-Projekte haben die Endung .lpr. Aber gleichwohl kann man sie öffnen und sie werden anstandslos geladen. Das Ausführen eines komplexen Projekts funktioniert nicht. Doch wie im Beitrag Clickomania goes open source beschrieben (siehe auch Kommentare), ist das selbst in der «richtigen» Delphi-Umgebung der Fall, weil der schon etwas in die Jahre geratene Code so oder so aufdatiert werden muss. Ausserdem habe ich seinerzeit einige Zusatzkomponenten verwendet, die ich auftreiben und einbinden müsste.
Die offizielle Antwort zur Frage, ob man seinen Delphi-Code weiterverwenden kann, lautet übrigens wie folgt:
Some of it yes. If the code is standard Delphi pascal and it uses the standard components found in Delphi then the answer is yes. If it uses some specific database, OCX, or DCU then the answer would be no. These items are specific to Windows and would only work on and within Windows. However, if you are only looking to create a Windows product using Free Pascal and Lazarus then the answer would be yes. This hasn’t been added to the LCL yet but it should be possible in the future.
Das heisst: Delphi-Projekte lassen sich nach Lazarus transferieren. Und falls ich jemals Lust verspüren sollte, meine alten Projekte auf den neuesten Stand zu bringen, dann ergäbe sich hier eine schöne Möglichkeit.
Absurd und grossartig
Fazit: Ein riesiges Merci an Cliff Baeseman, Shane Miller und Michael A. Hess, die hinter diesem Projekt stehen. Leute wie ich sind ihnen zu grossem Dank verpflichtet, weil sie meinen Code und meine Programmierfähigkeiten wiederaufleben lassen. Das ist grossartig, gerade weil es auch hochgradig absurd ist. Denn welcher Mensch, der bei Verstand ist, würde seine Zeit und Fähigkeiten in so ein Projekt investieren? Das tun nur Nerds, und dafür lieben wir sie.
Beitragsbild: Er kann es auch immer noch (Skitterphoto/Pixabay, Pixabay-Lizenz).