Mit der Delphi Starter Edition einen Flughafen steuern

Seit einigen Wochen gibt es wieder eine kostenfreie Edition von Delphi, die “Starter-Edition”. Embarcadero ist damit (endlich) wieder dem Wunsch der Community gefolgt, eine Lizenz für Schüler, Studenten, Hobby-Entwickler und junge Unternehmen anzubieten.

Delphi Starter Edition Splash Screen

Angesichts der Tatsache, dass diese Edition kostenfrei ist, stellt sich selbstverständlich die Frage, wie sich diese von den kostenpflichtigen Editionen unterscheidet – in welchen Bereichen sie also abgespeckt sein mag. Eine formale Übersicht über alle in der Starter-Edition enthaltenen Möglichkeiten findet sich in der RADStudio Berlin Feature-Matrix.

Obwohl diese Entscheidung von Embarcadero für eine kostenfreie Edition in weiten Teilen der Community überaus positiv aufgenommen wird, gibt es doch auch leidenschaftliche Diskussionen darüber, wie schlimm das Fehlen einiger Features nun tatsächlich ist. Dass man ein Feature vielleicht vermisst, mag in der Natur der Sache liegen – aber teilweise wird die Starter-Edition gar als “unbrauchbar” oder “wertlos” gebrandmarkt, was ich offen gestanden nicht nachvollziehen kann und für ungerechtfertigte, in Einzelfällen sogar unqualifizierte, Kritik halte.

Im Folgenden werde ich Euch den Beweis antreten, dass man mit der Starter-Edition sogar einen Flughafen steuern kann.

Das enthält die Starter-Edition

Beginnen wir mit einem ersten Blick darauf, was in der Starter-Edition alles enthalten ist. Wir belassen es bewusst bei der Auflistung der Features, da deren tiefergehende Erläuterung jeden Umfang dieses Artikels sprengen würde.

Die Basis von Delphi, die VCL, RTL und auch das FMX-Framework sind in der Starter-Edition enthalten. Ich werde jetzt nicht im Einzelnen alle Komponenten durchgehen, aber ein erster Blick zeigt, dass alle relevanten Komponenten dabei sind:

Die von mir gewählte Ansicht ist zugegebenermaßen nicht die schönste, aber ein schneller Weg, mal alle Komponenten gleichzeitig auf den Schirm zu bringen. Sei’s drum – wichtig ist das, was wir sehen: Buttons, Edits, Labels, Status- und ProgressBar, Dialoge, List- und TreeViews, PageControls, ToolBars und vieles mehr – alle alten Bekannten sind dabei. Sogar umfangreiche Komponenten wieder neue SplitView oder das Notification-Center sind enthalten. Darüber hinaus sind mir – ohne Anspruch auf Vollständigkeit – als erstes die folgenden wichtigen Bibliotheken ins Auge gesprungen:

  • Bibliothek für Reguläre Ausdrücke (DocWiki)
  • Bibliothek für JSON (DocWiki)
  • Bibliothek für XML (DocWiki)
  • Bibliothek für Threading (Parallel Programming Library) (DocWiki)
  • Bibliothek für Bluetooth-Verbindungen (u.a. Beacons) (DocWiki)
  • Bibliothek für Sensoren (Bewegung, Beschleunigung, Geo-Position) (DocWiki)
  • Bibliothek für Socket-Verbindungen
  • Bibliothek für die nativen HTTP-Clients (DocWiki)
  • Bibliothek für Zip-Files (DocWiki)
  • Bibliothek für RTTI (DocWiki)
  • DB-Komponenten (DataSource, DBGrid, etc. mit ClientDataSet)
  • LiveBindings (DocWiki)
  • INDY10
  • VCL-Styles

Diese Liste ist, wie gesagt, nur ein erster Eindruck und auch noch nicht mal vollständig, macht aber jetzt schon deutlich, dass ein pauschales Urteil wie “unbrauchbar” keinerlei belastbare Grundlage hat.

Nicht unerwähnt bleiben soll der Compiler. Der Starter-Edition liegt der bewährte Win32-Kompiler vor, der auch in den größeren Editionen von Delphi enthalten ist. Andere Plattformen als Windows (32bit) werden damit von der Starter-Edition nicht unterstützt.

Unbegrenzte Möglichkeiten durch Installation von Komponenten

Darüber hinaus – und das ist ein ganz wesentlicher Aspekt – räumt die Lizenz ausdrücklich die Möglichkeit ein, die IDE mit Komponenten zu erweitern. Diese können wahlweise über GetIt bezogen werden, selbst geschrieben werden oder aus externen Quellen stammen. Testweise habe ich mal die aktuelle Demo-Version der DevExpress VCL-Komponenten installiert.

Spätestens jetzt wird deutlich, dass die Möglichkeiten nahezu unbegrenzt sind. Ebenso gibt es weiterhin die Möglichkeit, ActiveX-Controls oder Typ-Bibliotheken zu importieren. So zum Beispiel kann man den fehlenden Webbrowser nachrüsten.

Für VCL, RTL und FMX gibt es Demo-Projekte und Code-Beispiele, die sich standardmäßig im Ordner “C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples” wiederfinden, sofern sie installiert wurden. Es handelt sich dabei um das vollständige Repository an Beispielen des RADStudio, nicht alle Demos können mit der Starter-Edition kompiliert werden. Die Beispiele lassen sich auch nachträglich installieren. Hierzu im Menü “Tools” den Eintrag “Plattformen verwalten” wählen und dort dann unter “Weitere Optionen” den Haken bei “Samples” setzen.

Die Starter-Edition im Praxistest am Flughafen

Als ersichtlich wurde, welche ungeahnten Möglichkeiten die Starter-Edition bietet, war klar, dass dies in der Praxis getestet werden musste. Eines der in meinen Augen spektakulärsten Projekte hier im Miniatur Wunderland Hamburg ist die sog. “Fahrzeugsteuerung”, die Software unter Anderem auch zur Steuerung des Flughafens Knuffingen mit allen seinen 90 Autos, 45 Flugzeugen, Fluggastbrücken sowie dem Start-Katapult eingesetzt wird. Für den Betrieb ist dann noch ein zweites Projekt, unsere “Lichtsteuerung”, erforderlich, welche neben den rund 40.000 (!) LEDs auf dem Rollfeld, in den Fahrzeugen, Flugzeugen und in den Gebäuden auch das Deckenlicht unter ihrer Kontrolle hat und so für imposante Tag- und Nachtstimmungen sorgt.

Wer sich vorab ein Bild davon verschaffen möchte, wovon hier überhaupt die Rede ist, dem sei folgendes 5-minütiges Video empfohlen, welches den Flughafen – und damit auch die eben erwähnten Delphi-Projekte – im Betrieb zeigt:



Also los geht’s – Ausgangspunkt ist eine frische Delphi-Installation. Über die in die Delphi-IDE integrierte SVN-Unterstützung checke ich den Quellcode der beiden o.g. Projekte aus. Die für den Programmstart relevanten Datendateien mit den Anlagen- und Startparametern mopse ich mir von einem der Flughafen-Server.

Wie bei jedem anderen Delphi auch muss einmalig der Bibliothekspfad angepasst werden, damit erst die IDE und später dann der Compiler alle beteiligten Quellcodes finden können.
Nun muss ich noch ein Komponenten-Package installieren, es enthält unsere Implementationen von Protokollen “CANopen”, “RS485” und “DMX/ArtNET”, mit denen u.a. das Start-Katapult bzw. die Flugzeuge, Autos und Fluggastbrücken bzw. die Beleuchtung gesteuert werden.

Kurz-Information zu "CANopen"
CAN bzw. CANopen ist ein offener Industrie-Standard, welcher nicht nur in der Automobil-Branche verbreitet ist, sondern Teil vieler großer industrieller Automatisierungs-Lösungen ist. Darüber hinaus wird CAN auch zur Vernetzung der Steuereinheiten (jeweils echter) Schiffe, Züge und Flugzeuge eingesetzt.
 
Kurz-Information zu "DMX"
DMX ist ein Standard-Protokoll für die Bühnen- und Veranstaltungstechnik, mit dem im Wesentlichen Scheinwerfer und "Effektgeräte" gesteuert werden. Bei praktisch allen großen Bühnenshows von Konzerten ist DMX in der einen oder anderen Form beteiligt.
 
Diese Protokolle mit der Starter-Edition von Delphi implementieren zu können, spannt nochmals einen großen Bogen neuer Möglichkeiten auf.

An dieser Stelle macht sich Überraschung breit: Die Frage “Huch – war’s das etwa schon?” steht im Raum und kann mit einem satten “ja!” beantwortet werden. Sowohl die Fahrzeug- als auch die Lichtsteuerung lassen sich ohne weitere Änderungen mit der Starter-Edition von Delphi übersetzen und starten. Also schnell den Laptop gepackt und ab eine Etage nach oben zum Flughafen, denn solche Tests macht man lieber außerhalb der regulären Öffnungszeiten. ;-)

Beide Projekte starten sauber hoch und fangen an, mit der Anlage zu interagieren. Meine Kollegen haben da natürlich mehr Routine, aber ich persönlich finde es insgeheim immer noch jedes Mal aufs Neue faszinierend, wenn, ausgelöst durch ein Delphi-Programm, so eine Anlage zum Leben erwacht, Flugzeuge und Autos sich plötzlich bewegen und die Befeuerung der Startbahn sich einschaltet.

In meinen Augen ist das ein unglaublich eindrucksvoller Beweis, was mit der Starter-Edition von Delphi alles machbar ist – wenn man ihr nur eine Chance gibt und sich ernsthaft damit befasst. Ein Urteil, dass die Starter-Edition “unbrauchbar” sei, kann ich angesichts dieses Resultats offen gestanden nicht im Ansatz nachvollziehen.

Natürlich benutzen wir hier im Miniatur Wunderland nicht die Starter-Edition von Delphi. Das hängt im Wesentlichen mit deren Lizenz zusammen, die den gewerblichen Einsatz untersagt, sobald der mit der Software erzielte Umsatz 1.000 US$ übersteigt oder das Entwickler-Team aus mehr als fünf Personen besteht.

Besonderheiten der IDE der Starter-Edition

Von mir unerwartet mit ihrem Vorhandensein in der kostenfreien Edition aber höchst willkommen sind die Methoden-Toxizitäts-Metriken, welchen dem Entwickler einen neutralen Blick auf den Quellcode liefern. (Dokumentation hierzu im DocWiki)
Zum Thema “Metriken” habe ich kürzlich einen Blog-Eintrag verfasst und beleuchte dort Möglichkeiten und Grenzen von Metriken: Blog-Eintrag “Statische Code-Analyse”.

Zwei kleine Wermutstropfen gibt’s dann doch im Rahmen der IDE. Die Funktion “Ctrl-Klick” auf einen Bezeichner im Quellcode führt in den größeren Editionen von Delphi direkt zu der Deklaration des Bezeichners. Das funktioniert in der Starter-Edition so nicht, hier muss man den Bezeichner nun mit der rechten Maustaste anklicken und dann im Kontextmenü den Menüeintrag “Deklaration suchen” wählen. Geht auch, muss man nur wissen.
Der Debugger seinerseits bietet zur Laufzeit keine implizite Auswertung von Ausdrücken an (“mouse-over”), hier muss man die gewünschte Variable in die Liste der überwachten Ausdrücke setzen oder STRG-F7 drücken, um ihren jeweiligen Wert zu erhalten. Selbstverständlich lässt sich der Wert im Speicher auch ändern, wie man dies von den großen Delphi-Editionen gewohnt ist. Nicht umsonst sprach ich bewusst von “kleinen” Wermutstropfen.

Und wo wir schon bei Wermut und ggf. auch Schwermut sind, anbei eine Liste an Dingen, die der kostenfreien Starter-Edition tatsächlich fehlen – frei nach dem Motto “irgendwas is’ ja immer“:

  • Keine Kommandozeilen-Compiler
    Das könnte bedeuten, dass einige Komponenten manuell installiert werden müssen, sofern deren Installer die Kommandozeilen-Compiler voraussetzen.
  • Keine Quellcodes der RTL, VCL oder FMX
  • Kein TChart, kein FastReport, kein TWebBrowser
    (Letzterer kann einfach importiert werden, die anderen müssten bei Bedarf besorgt werden)
  • Keine DB-Komponenten wie DBXpress oder FireDAC
    (alternative Komponenten wie z.B. UniDAC lassen sich installieren)
  • Kein DataSnap (u.a. aufgrund fehlender TSQLConnection)
  • Keine integrierte Code-Formatierung
    (ließe sich z.B. über GExperts nachrüsten)
  • Kein Box2D (Physik-Engine)

Was da an Komponenten fehlt, ist eben der notwendigen Abgrenzung zu den kostenpflichtigen Editionen geschuldet. Da sich aber bei Bedarf alles Nachrüsten lässt, halte ich diese Einschränkungen für vertretbar und insbesondere auch für verkraftbar.

In Summe ist die Starter-Edition von Delphi ein modernes sowie gleichermaßen flexibles wie mächtiges Werkzeug, welches sich gewiss nicht zu verstecken braucht.

Weitere Informationen über die Starter-Edition:
https://www.embarcadero.com/de/products/delphi/product-editions
und
https://www.embarcadero.com/de/products/delphi/starter/promotional-download
 
Abschließend möchte ich Gerrit Braun vom Miniatur Wunderland Hamburg meinen Dank aussprechen, der mir die Möglichkeit eingeräumt hat, diesen Artikel zu schreiben.

1
Daniel Wolf

About the Author:

Daniel Wolf ist als Software-Architekt im Miniatur Wunderland Hamburg tätig, war zuvor viele Jahre als technischer Berater tätig und spricht regelmäßig auf Konferenzen. Er betreibt das Forum "Delphi-PRAXiS". » Mehr Details zur Person
  Verwandte Blog-Einträge