Zu Delphi

Delphi ist ein Entwicklungssystem, das historisch aus der Erstellung reiner Windows Anwendungen kam, seit langem aber auch die Entwicklung mobiler Apps und Anwendungen für die Apple und Linux Welt ermöglicht. Die Programmiersprache von Delphi ist Object Pascal, das sich natürlich wie alle Sprachen weiterentwickelt und anderen modernen Sprachen ebenbürtig ist. 

Die EMIL Plattform ist 100% in Delphi geschrieben. 

Diskussionen um Programmiersprachen werden leider oft unsachlich, ebenso wie die Debatte um Automarken oder der Disput, ob Apple oder Android Smartphones die besseren sind. Was bedeutet denn überhaupt besser

ITC nimmt bei dieser Frage grundsätzlich die Perspektive der potenziellen Anwender ein. Nach unserer Erfahrung zählen für Anwender diese Eigenschaften einer Anwendung:

  • Zuverlässigkeit
  • Intuitive Bedienung
  • Integration in die Arbeitsumgebung
  • Guter Service
  • Schnittstellen
  • Performance

All dies bieten wir  durch die Wahl des passenden Entwicklungswerkzeugs. Es gibt zudem nur vereinzelte Anwender, die mal aus Interesse danach fragen, welche Sprache oder Technik hinter einem System steckt. Denn anders als bei Autos und Mobilgeräten ist prangt diese auch nicht als prestigeträchtiges Logo auf dem System sondern ist im Idealfall völlig unsichtbar.

Natürlich spielt die Programmiersprache eine Rolle. Erst leistungsfähige Programmiersprachen ermöglichen den konsequenten Einsatz moderner, objektorientierter Konzepte und Sprachkonstrukte. Das aber unterstützen heute eigentlich alle modernen Sprachen, Object-Pascal (Delphi) steht da in Nichts nach, hat vielen Sprachen sogar einiges voraus. 

Erheblich wichtiger als marginale Unterschiede zwischen modernen Programmiersprachen sind aber tragfähige Konzepte und die Entwickler-Skills. Ein guter Tischler kann auch mit schlechtem Werkzeug brauchbare Möbel bauen. Umgekehrt aber kann selbst das beste Werkzeug der Welt einen schlechten Tischler nicht dazu befähigen, etwas Gutes herzustellen. Genau das selbe gilt auch in der Softwareentwicklung.

Wir beobachten oft, dass selbsternannte Experten mit sehr unqualifizierten Beiträgen bei Anwendern für große Verunsicherung sorgen, ohne jemals überhaupt eine richtige Anwendung entwickelt zu haben, zumindest keine, die sich an hunderten von Arbeitsplätzen in völlig heterogenen Umgebungen im 7/24 Betrieb bewähren muss. Nach unserer Erfahrung sind darunter nicht wenige Experten, die mangels eigener Skills das von ihnen eingesetzte Werkzeug in den Himmel loben und im Umkehrschluss alles andere abwerten, oft, ohne es überhaupt zu kennen. Dies geschieht regelmäßig mit Delphi, wo solche Experten aus Unkenntis behaupten, es wäre auf dem Stand aus den 90ern stehen geblieben und keine blasse Ahnung davon haben, wie leistungsfähig und modern die aktuelle Version 10.4 ist, die wir 2021 einsetzen. Diesen sei zur Verdeutlichung einmal dieses kleine Stück Delphi-Code aus der EMIL Plattform ans Herz gelegt:

Visits.Sort(TComparer<TVisit>.Construct(
    function(const Left, Right: TVisit): Integer
    begin
        if (Left.TimeStamp > Right.TimeStamp) then
            result := -1
        else if (Left.TimeStamp < Right.TimeStamp) then
             result := 1
        else
            result := 0;
    end));

ITC hat in über 20 Jahren in der Industrie und im Medizinbereich eine Vielzahl unprofessioneller Bastel-Anwendungen durch professionelle Entwicklungen abgelöst, da den Bastellösungen jedwedes tragfähige Konzept fehlte. Besonders im Bereich der Datenbanken standen und stehen uns immer wieder die Haare zu Berge. Man sieht selbst renommierte Hersteller die meinen, dass alleine der Einsatz eines professionellen Datenbanksystems wie Oracle ausreicht, im Design der Datenbank aber nicht einmal elementarste Datenbank-Konzepte wie Fremdschlüssel-Constraints eingesetzt werden. 

Das Buzz-Word Web-Anwendung kennen wir auch aus den Mündern solcher Experten, die nur diese Technologie kennen und meinen, dass zum einen alles damit realisierbar ist und einfache Pflegbarkeit und eine leichte Zusammenführbarkeit von Daten nur damit erreichbar sei, während Aspekte wie DS-GVO Anforderungen, Integration und Schnittstellen sowie Einrichtungs-Richtlinien bei potenziellen Anwendern einfach unter den Tisch gekehrt werden. 

Wir entwickeln sowohl komplexe Web-Anwendungen, native mobile Apps und natürlich PC Anwendungen mit verschiedenen Sprachen und Frameworks und kennen daher Java, PHP, Javascript, C++, C#, Delphi und die Palette der SQL Dialekte von Oracle über SQL-Server bis MariaDB und einige Web-Frameworks sehr gut. Natürlich nutzen wir nicht immer Delphi und nicht immer Firebird, sondern das beste Tool für die Aufgabe. 

Das Team aus Delphi und Firebird-Datenbank hat sich in über 20 Jahren jedoch als das Ideal für mittelgroße dreischichtige Anwendungen im Windows dominierten Desktop-Umfeld herausgestellt. Unsere Kunden und deren Zufriedenheit geben uns recht. Und viele Funktionen unserer Systeme lassen sich in anderen Sprachen nicht so elegant, performant und passend umsetzen. Die Tatsache, dass es mehr JAVA als Delphi Entwickler gibt, macht JAVA nicht professioneller und auch nicht besser. Um auf unseren Tischler zurück zu kommen: Ein guter Tischler kann mit jedem Werkzeug arbeiten, ebenso kann ein guter Softwareentwickler mit allen modernen Sprachen entwickeln bzw. diese rasch erlernen. Die grundlegenden Konzepte sind schließlich nahezu identisch. Hinzu kommt, dass sehr viel Funktionalität einer Anwendung über Betriebssystemfunktionen oder über Schnittstellen realisiert wird, die mit der Programmiersprache selbst nichts zu tun haben.

However: Wenn wir heute ganz von vorne beginnen würden, würden wir möglicherweise nicht wieder Delphi wählen, da die Wartung unserer Lizenzen sehr teuer ist und es heute tolle Alternativen gibt. Wahrscheinlich wäre Kotlin die Sprache der Wahl und wir würden vielleicht eine dokumentorientierte Datenbank verwenden. Es ergibt aber absolut keinen Sinn, vorhandene und über viele Jahre erprobte Konzepte und Bibliotheken aus vielen hunderttausend Zeilen Code ohne Not und nur der Sprache wegen neu zu entwickeln. Denn technisch ist Delphi 10 (bald 11) absolut auf der Höhe der Zeit.