25 Jahre: "Delphi war ein Kind seiner Zeit"

Zum Anlass des heutigen 25-jährigen Bestehens von Delphi sprach heise-Developer-Autor Tam Hanna mit David Intersimone (aka David I).

Lesezeit: 7 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 232 Beiträge

David Intersimone (aka David I) war von 1985 bis 2016 bei Embarcadero tätig und dort unter anderem als Manager Developer Relations und als Direktor der RAD-Sparte verantwortlich. Zu guter Letzt war er dann noch Chief Developer Advocate. Heute ist er Embarcadero MVP.

Von

heise Developer: Sprechen wir über die Entstehung der ersten Version von Delphi im Jahre 1995, die nun ihr 25-jähriges Jubiläum feiert.

David I: Zuerst müssen wir uns über die Namensgebung klar werden. Wer in den USA sitzt, spricht Delphi wie mit einem "ei" am Ende aus. Alle anderen sagen am Ende "i". Das sorgte bei Reisen immer für Spaß.

Um die Entwicklung von Delphi zu verstehen, müssen wir in der Zeit weiter zurückblicken – ich denke da besonders an Turbo Pascal, auch für Windows und den Mac. Entwickler nutzten damals Klassenbibliotheken, um grafische Steuerelemente zu realisieren. Parallel dazu kam das Konzept der Applikations-Frameworks auf.

Turbo Pascal – der blaue Editorbildschirm dürfte einigen bekannt sein ...

(Bild: By Unknown - Turbo Pascal 6 (Borland), Public Domain )

Dabei handelte es sich um geradezu gigantische objektorientierte Frameworks, der heute wahrscheinlich bekannteste Vertreter sind die Microsoft Foundation Classes (MFC). Während wir diese Entwicklungen betrachteten, wurde uns schnell klar, dass die Kunden nach einem einfacheren, aber dennoch leistungsstarken Werkzeug für die Entwicklung von Windows-Applikationen suchten. Dabei wollten die Kunden allerdings nicht auf Vorteile wie optimierende Compiler oder die Nutzung von nativem Code verzichten.

Wir arbeiteten an Delphi vor dem Release etwa zwei Jahre, ein Teil der Gedanken wie objektorientierte Programmierung oder Bibliotheken waren allerdings um einiges älter. Delphi war so gesehen ein Kind seiner Zeit. Die eigentliche Innovation war, dass man eine leistungsfähige Programmierumgebung mit einem benutzerfreundlichen GUI-Designer statt einer Klassenbibliothek sowie einem optimierenden Compiler, einem Debugger und einer Datenbankzugriffs-API ausstattete. Das Produkt hieß damals übrigens Borland Database Engine (BDE).

Schon die erste Version von Delphi verwies im Startscreen auf Datenbanken.

(Bild: Embarcadero)

Die eigentliche Auslieferung von Delphi 1 erfolgte dann auf einer Entwicklerkonferenz in San Francisco. Damals fiel auf, dass Delphi das erste Produkt war, das GUI-Designer, leistungsfähigen Compiler und Datenbank-Engine in "eine Schachtel" verpackte. Visual Basic war damals zwar schon am Markt, wurde aber interpretiert ausgeführt. Ein weiterer Aspekt war, dass die Umgebungsbibliotheken und die Steuerelemente für Visual Basic in anderen Programmiersprachen geschaffen wurden. Bei Delphi war es hingegen so, dass sogar die Delphi-IDE selbst in Delphi geschrieben und entwickelt wurde. Eine der lustigsten Demonstrationen im Rahmen des Launchs war, dass Delphi sich vor den Augen von mehr als 2000 Entwicklern selbst kompilierte.

Delphi stand in diesem Bereich allerdings nicht alleine, sondern war eine komplett erweiterbare Plattform. Entwickler konnten eigene Vorlagen, eigene als Experte bezeichnete Assistenten und eigene Steuerelemente konstruieren. Delphi ermöglichte jedem Entwickler das Anpassen seiner Arbeitsumgebung, um die für seine Aufgabe optimale Entwicklungssituation herzustellen.

heise Developer: Das ist jetzt aber eine Steilvorlage für eine gemeine Frage, wo Visual Basic schon seit 1991 am Markt war. Wie wollten Sie damals mit Microsoft konkurrieren?

David I: Das mit Abstand wichtigste Feature zugunsten von Delphi war mit Sicherheit die Möglichkeit, native Applikationen zu erzeugen – Visual Basic wurde damals ja durch eine Runtime interpretiert.

InfoWorld beschrieb Delphi einst als Visual-Basic-Killer.

(Bild: Embarcadero)

Vorteil Nummer zwei gegenüber Visual Basic war der Datenbankzugriff. Visual Basic war im Allgemeinen in der Microsoft-Welt verfangen, Delphi hingegen ermöglichte den Zugriff auf Datenbanken von Drittanbietern über ein standardisiertes und mehr oder weniger bis heute zur Verfügung stehendes Datenbank-Interface. Schon 1995 gab es sowohl eine Desktop-Version als auch eine Client-Server-Version der Umgebung.

Datenbankzugriff war uns auch sonst sehr wichtig. So konnte man in Delphi viele datenbankorientierte Operationen schon im Designer sehen, während man das Programm in Visual Basic zum Test der Datenbankfunktionen im Allgemeinen starten musste. Außerdem möchte ich noch betonen, dass man die kompilierte .exe-Datei einfach auf einen anderen Rechner kopieren konnte – es war nicht notwendig, diverse Bibliotheken zu übertragen.

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.

Wer hat's erfunden?

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.

mehr anzeigen

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.

Mehr Infos

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.

mehr anzeigen

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.

heise Developer: Delphi hat immer wieder neue Eigentümer gehabt. Wie hat sich das auf die Gesamtsituation ausgewirkt?

David I: Unterm Strich war die tatsächliche Auswirkung eher gering. Gut, ich kann heute nicht mehr auf borland.com gehen, wenn ich Informationen zu Delphi suche, sonst blieb aber im Großen und Ganzen alles, wie es schon immer war. Ein Teil des Personals – sowohl die Entwickler als auch die Projektmanager – ist seit gefühlten Ewigkeiten mit von der Partie. Idera, der gegenwärtige Besitzer, erlaubt uns erstmals, neue Techniken durch Zukauf zum Produkt-Stack hinzuzufügen: Das betrifft beispielsweise die Integration in CI-Systeme.

heise Developer: Warum ist Delphi im akademischen Bereich immer noch so stark verbreitet?

David I: Ursache Nummer eins ist mit Sicherheit, dass Pascal dank Niklaus Wirth per se schon im akademischen Bereich angesiedelt war und es deshalb schnell Akzeptanz als Lehrsprache fand. Die Syntax war zudem vergleichsweise einfach, weshalb ACM Pascal als Basis für ihre Beispiel-Codebibliothek verwendete. In diesem Bereich verdrängten wir übrigens Algol.

Junge Entwickler lernen heute schon früh programmieren, weil Software in so gut wie allen Lebensbereichen eine wichtige Rolle spielt. Dabei kommen oft grafische Programmierumgebungen wie Scratch zum Einsatz, die Bildgeschichten realisieren. Irgendwann möchte man dann in die reale Welt umsteigen und beispielsweise mit Datenbanken interagieren.

Delphi ist in diesem Bereich geradezu ideal, weil das Produkt alles aus einer Hand anbietet. Zu guter Letzt gibt es auch die Trägheit des schon Vorhandenen. In der Türkei, in Südafrika und in vielen osteuropäischen Ländern wird Delphi schließlich seit Jahr und Tag als Lehrsprache verwendet.

An dieser Stelle möchte ich allerdings nicht vom Lernen anderer Programmiersprachen abraten: Ich habe in der C++-Community ebenfalls jede Menge Freunde. Es gibt sogar Speaker, die der Meinung sind, dass man erst nach dem Erlernen von drei bis fünf Programmiersprachen wirklich reif für den praktischen Einsatz sei. Zudem ist nicht jede Sprache für jede Domäne gleich gut geeignet. Im Data-Science-Bereich hat man es beispielsweise mit Python zu tun, auch deshalb weil es eine immense Menge von Bibliotheken dafür gibt.

Ein Beispiel ist die Programmiersprache Ruby, die ich vom syntaktischen Aufbau hier für sehr interessant halte. Ihre Verbreitung verdankte sie dem Framework Rails, das sie für Webentwickler interessant machte. Weniger bekannt ist, dass Ruby in Japan zum Beispiel für Simulationen der Atmosphäre verwendet wird.

Meiner Meinung nach ist die Stärke von Delphi, dass man hier mit vergleichsweise wenig Aufwand das komplette Bild des Zielsystems sieht. Möchte man eine kleine Datenbank realisieren, wirft man einige Komponenten in ein Formular und schreibt etwas oder etwas mehr Code. Möchte man eine Cloud-Funktion anbieten, geht das analog.

heise Developer: Damit kommen wir zur letzten Frage. Ich nutzte Delphi einst als Diskussionsbeispiel, um Entwicklern die Risiken des Untergangs eines Cross-Plattform-Anbieters zu illustrieren. Warum bietet man nicht, analog zu beispielsweise Qt, eine "Schleudersitz-Klausel" an?

David I: Eine genaue Meinung dazu kann ich schon aus meiner Position heraus nicht abgeben. Ich möchte allerdings anmerken, dass ich in meiner gesamten Karriere noch keine Kaufentscheidung erlebte, die von der Verfügbarkeit einer derartigen Schleudersitz-Klausel abhängig war. Natürlich wundern sich Leute immer darüber, wie lange eine bestimmte Technologie noch lebt. Ich bin allerdings der Meinung, dass erfolgreiche Produkte sehr, sehr lange leben. Im Fall von Delphi könnten Sie beispielsweise Ihre Delphi-2-Lizenz nach wie vor wie gewohnt verwenden – sie werden nicht deaktiviert.

Mehr Infos

Embarcadero feiert das 25-jährige Jubiläum mit einer kleinen Zeitreise durch 25 Jahre lebendige IT-Geschichte.

mehr anzeigen

Ob und inwiefern man einen Kunden gegen das "Ende der Zeit" absichern kann, ist mit Sicherheit eine Frage für das Verkaufsteam. Als Softwareentwickler frage ich mich allerdings, was Entwickler machen, wenn man ihnen den Delphi-Sourcecode vor die Füße werfen würde. Im Fall einer Bibliothek hat man da noch eine gewisse Chance, mit dem Code zu interagieren – bei einer so komplexen integrierten Entwicklungsumgebung wie Delphi ist es meiner Meinung nach allerdings fast schon sinnlos. In der Praxis dürfte es darauf hinauslaufen, dass sich Normalentwickler eine "lokale" Version von Delphi kompilieren und diese weiter nutzen – das können sie allerdings genauso gut mit dem Build tun, den wir für ihn schon auf unseren Servern erzeugt haben.

Das Interview führte Tam Hanna, langjähriger Delphi-Nutzer und Autor von heise Developer per Telefon.

Ihre Erinnerungen?

Sie wollen gratulieren? Sie haben gute und schlechte Erfahrungen mit Delphi gemacht? Sie erinnern sich an Meilensteine der Delphi-Entwicklung? Wir freuen uns über Kommentare, Erinnerungen etc. im Forum zu diesem Interview

mehr anzeigen

(ane)