25 Jahre: "Delphi war ein Kind seiner Zeit"
Seite 2: Sprachliche Voraussetzungen
heise Developer: An dieser Stelle muss ich aber noch etwas Historisches fragen – warum haben Sie Pascal und nicht Modula oder Oberon verwendet?
David I: In den 1980ern und 1990ern wurden sowohl Pascal als auch C beziehungsweise später dann C++ als "klassische und produktive" Programmiersprachen unterrichtet. Basic, das schon 1964 erdacht war, fand in Schulen nur wenig Verbreitung. Witzigerweise ist es falsch, dass man Borland immer als "Feind" von C beziehungsweise C++ ansieht. Wir hatten, und haben immer noch, Toolchains auch für C und C++. Diese sind im Allgemeinen vom Funktionsumfang her sogar mit der von Delphi vergleichbar und folgen denselben Designparadigmen.
Auch wenn die Programmiersprache Pascal in der Vorstellung der Entwickler untrennbar mit Borland verbunden ist, täuscht dieser erste Eindruck. Die Sprache wurde nämlich von Niklaus Wirth entwickelt. Nachdem er seine Arbeiten an Pascal eingestellt hatte, entwickelte er eine ganze Gruppe von mit Pascal nicht wirklich kompatiblen Nachfolgern, die aber nie an den Erfolg des Erstlings anknüpfen konnten. Lange Zeit gab es Pascal-Compiler übrigens nicht nur von Borland, sondern auch von diversen anderen Unternehmen.
Anfangs zogen wir bei Borland die Entwicklung von Wirth mit. Wir hatten beispielsweise ein Produkt namens Turbo Modula, das für verschiedene Betriebssysteme und – bitte mich nicht zu erschlagen, wenn das nicht stimmt – sogar einen Atari 5200 verfügbar war. Modula konnte allerdings sowohl in der Ausbildung als auch im praktischen Bereich nicht mehr an die Erfolge seines großen Vorbilds anknüpfen. Oberon erreichte dann sogar noch weniger Verbreitung.
Neue Funktionen tauchen oft erst in Delphi auf, um einige Zeit später im C++Builder verfügbar zu werden. Ein gutes Beispiel dafür ist die Linux-Unterstützung. Delphi macht sich unter Linux mittlerweile wirklich gut, während der C++Builder keinen Compiler für Linux mitbringt.
Auf diese Art und Weise entstand – auch durch das damals fast komplett kostenlose, wenn auch lizenzbrechende Verteilen von Turbo Pascal im akademischen Bereich – eine geradezu riesige Infrastruktur aus Dokumentation, Unterrichtsmaterialien und sonstigen Dokumenten. Wir entschieden uns deshalb bewusst dafür, Object Pascal in Turbo Pascal 5.5 einzuführen und die vorhandene Infrastruktur zu nutzen. Kurz gesagt, es gab keine ökonomisch vernünftige Alternative dazu, Delphi auf Pascal aufzubauen.
heise Developer: Was waren denn nun die besonderen Meilensteine in der bisherigen Geschichte von Delphi?
David I: Es ist extrem schwer, eine 25 Jahre dauernde Geschichte der Innovation in wenigen Sätzen zusammenzufassen. Allerdings halte ich das Erscheinen von Delphi 1.0 mit Sicherheit für eine der beeindruckendsten Leistungen. Was mich allerdings auch beeindruckt hat, war die schnelle Bereitstellung von Delphi 2 mit Unterstützung für Windows 95. Ursprünglich sollte es ja Windows 94 geben, aber diverse Probleme im Hause Microsoft haben uns die nun legendäre Seriennummer verschafft. Wir arbeiteten da also parallel mit Microsoft. Ich war am Microsoft-Campus und saß im Rahmen der Windows-95-Vorstellung in einem Zelt. Dort demonstrierte ich ein Pre-Release von Delphi 2.0.
In manchen Fällen gingen wir sogar über das hinaus, was Microsoft in seinen hauseigenen Werkzeugen implementierte. Wir hatten in Delphi 3 beispielsweise Interfaces eingefügt, die auf COM basierten und über Reference Counting verfügten. Microsoft hat das selbst erst in COM+ implementiert.
Es wäre unfair, wenn ich an diese Stelle nicht auf das Delphi-Ökosystem verweise. Im Laufe der letzten Jahrzehnte haben sich Unmengen von Unternehmen etabliert, die Erweiterungen für Delphi anbieten.
heise Developer: In der Tat. Einige Zeit lang durfte ich in Delphi an Simulationen programmieren ...
David I: Das ist ein wunderbares Beispiel dafür, wo man Delphi überall findet. Das Produkt ist wirklich nicht auf das Erzeugen von Desktop-Applikationen beschränkt ...
heise Developer: Wer in den späten 1990ern in eine Spielothek ging, konnte die einzigartigen Programmsymbole der Delphi-Messageboxes auf diversen Slot-Maschinen sehen.
David I: Da muss ich noch etwas hinzufügen, auf das ich sehr stolz bin: Die Spielautomatenhersteller könnten ihren alten Delphi-Code wahrscheinlich mit minimalen Änderungen in einer aktuellen Version von Delphi weiterverwenden. In vielen Fällen kann ich ein mit Delphi 1.0 geschriebenes Programm ohne Probleme in der aktuellsten Version Delphi 10.3 laden. Ich klicke auf den Ausführen-Knopf, und wenn die Bibliotheken mitspielen, läuft das Programm. Im Fall von Visual Basic gab es da zwei "Welten" – Visual Basic vor und inklusive Version 6 und Visual Basic für das .NET Framework.
Doch damit nicht genug – Delphi lässt sich auch in andere Runtimes einpacken. Cybele Software bietet beispielsweise ein System namens Thinfinity an, das Delphi-Apps per Browser steuerbar macht. Und wer heute im Internet of Things oder mit Bluetooth experimentieren möchte, kann beispielsweise auf vorgefertigte Komponenten zurückgreifen.
heise Developer: Wenn ich nun eine Zeitmaschine anbieten könnte, um ins Jahr 1995 zurückzureisen, würden Sie irgendwelche Änderungen vornehmen?
David I: Ich war ja seit 1985 dabei. Wenn ich nun zurückblicke – ich würde eigentlich nichts ändern wollen. Schon aus dem Grund, weil ich mit Delphi heute alles tun kann, was ich als Softwareentwickler tun will – sei es am Desktop, am Server oder im Web. Microservices, verteilte Dienste, in Containern laufende Programme – alles kein Problem.
Wenn ich zurückblicke, hätte ich vielleicht die Entwicklung von Delphi schon etwas früher gestartet. Aber andererseits kann man das auch nicht sagen, weil das Produkt ja ein Kind seiner Zeit ist. Die Erfahrungen, die wir im Rahmen der Entwicklung und Verwaltung von Turbo Pascal und den dazugehörigen Ökosystemen machten, waren unbedingt erforderlich, um uns Delphi zu ermöglichen. Die Entwicklung von Turbo Pascal für den Mac erwies sich beispielsweise als die wahre Schulstunde, die die Entstehung von Object Pascal stark beeinflusste.
Aber wenn ich mir das Timing von Windows ansehe, haben wir es eigentlich ganz gut getroffen. Windows wurde ja erst ab der Version 3 wirklich interessant – und da war Delphi fast schon da.