Delphi unterstützt die schnelle Anwendungsentwicklung (RAD). Herausragende Merkmale sind ein visueller Designer und zwei Anwendungs-Frameworks, VCL für Windows und FireMonkey (FMX) für die plattformübergreifende Entwicklung.
Delphi verwendet die Pascal-basierte Programmiersprache Object Pascal, die von Anders Hejlsberg für Borland (jetzt IDERA) als Nachfolger von Turbo Pascal entwickelt wurde. Es unterstützt native Cross-Kompilierung für viele Plattformen, darunter Windows, Linux, iOS und Android.
Um die Entwicklung für Microsoft Windows besser zu unterstützen und mit Code, der mit anderen Softwareentwicklungswerkzeugen entwickelt wurde, interoperabel zu sein, unterstützt Delphi unabhängige Schnittstellen des Component Object Model (COM) mit referenzierten Klassenimplementierungen und Unterstützung für viele Komponenten von Drittanbietern. Schnittstellenimplementierungen können an Felder oder Eigenschaften von Klassen delegiert werden. Nachrichten-Handler werden implementiert, indem eine Methode einer Klasse mit der Integer-Konstante der zu behandelnden Nachricht versehen wird.
Die Datenbankanbindung wird durch VCL-Datenbank- und Datenbankzugriffskomponenten umfassend unterstützt.
Spätere Versionen haben aktualisierte und erweiterte Laufzeitbibliotheksroutinen enthalten, die teilweise von der Community-Gruppe FastCode zur Verfügung gestellt wurden.
MerkmaleBearbeiten
Delphi verwendet eine stark typisierte Hochsprache, die einfach zu bedienen sein soll und ursprünglich auf der früheren Sprache Object Pascal basiert. Pascal wurde ursprünglich als Allzwecksprache entwickelt, „die geeignet war, die damals bekannten grundlegenden Konstrukte in einer prägnanten und logischen Weise auszudrücken“, und „ihre Implementierung sollte effizient und konkurrenzfähig mit bestehenden FORTRAN-Compilern sein“, aber ohne Low-Level-Programmiermöglichkeiten oder Zugang zu Hardware. Turbo Pascal und seine Nachkommen, einschließlich Delphi, unterstützen den Zugriff auf Hardware und Low-Level-Programmierung, mit der Möglichkeit, in Assembler und anderen Sprachen geschriebenen Code einzubinden. Die Objektorientierung von Delphi bietet nur klassen- und schnittstellenbasierten Polymorphismus. Metaklassen sind Objekte erster Klasse. Objekte sind eigentlich Referenzen auf die Objekte (wie in Java), die Delphi implizit de-referenziert, so dass es normalerweise nicht notwendig ist, manuell Speicher für Zeiger auf Objekte zuzuweisen oder ähnliche Techniken zu verwenden, die einige andere Sprachen benötigen. Es gibt dedizierte referenzierte Stringtypen und auch null-terminierte Strings.
Strings können mit dem ‚+‘-Operator verkettet werden, statt mit Funktionen. Bei dedizierten Stringtypen übernimmt Delphi die Speicherverwaltung ohne Eingriff des Programmierers. Seit Borland Developer Studio 2006 gibt es Funktionen zum Auffinden von Speicherlecks.
Delphi enthält eine integrierte IDE. Alle Delphi-Produkte werden mit einer Laufzeitbibliothek (RTL) und einer Visual Component Library (VCL) ausgeliefert, die den Großteil des Quellcodes enthält. Komponenten von Drittanbietern (manchmal mit vollständigem Quellcode) und Tools zur Erweiterung der IDE oder für andere Delphi-bezogene Entwicklungsaufgaben sind verfügbar, einige davon kostenlos. Die IDE enthält eine GUI für die Lokalisierung und Übersetzung von erstellten Programmen, die an einen Übersetzer übergeben werden können; es gibt auch Werkzeuge von Drittanbietern mit mehr Funktionen für diesen Zweck. Das VCL-Framework behält ein hohes Maß an Quellcode-Kompatibilität zwischen den Versionen bei, was das Aktualisieren von bestehendem Quellcode auf eine neuere Delphi-Version vereinfacht. Bibliotheken von Drittanbietern müssen in der Regel vom Hersteller aktualisiert werden, aber wenn der Quellcode mitgeliefert wird, kann eine Neukompilierung mit der neueren Version ausreichend sein. Die VCL war ein früher Anwender von Dependency Injection oder Inversion of Control; sie verwendet ein wiederverwendbares Komponentenmodell, das vom Entwickler erweitert werden kann. Mit Klassenhelfern kann neue Funktionalität in die Kern-RTL- und VCL-Klassen eingeführt werden, ohne den ursprünglichen Quellcode der RTL oder VCL zu verändern.
Der Compiler ist optimierend und single pass. Er kann optional zu einer einzigen ausführbaren Datei kompilieren, die keine DLLs benötigt. Delphi kann auch Standard-DLLs, ActiveX-DLLs, COM-Automationsserver und Windows-Dienste generieren.
Die Delphi-IDEs unterstützen seit Delphi 2005 zunehmend Refactoring-Funktionen wie Methodenextraktion und die Möglichkeit, UML-Modelle aus dem Quellcode zu erzeugen oder den Quellcode durch Änderungen im Modell zu modifizieren.
Delphi verfügt über Communities im Web, an denen sich auch die Mitarbeiter aktiv beteiligen.
Abwärtskompatibilität
Obwohl jede neue Version von Delphi versucht, so viel Abwärtskompatibilität wie möglich beizubehalten, um die Wiederverwendung von bestehendem Code zu ermöglichen, führen neue Funktionen, neue Bibliotheken und Verbesserungen manchmal dazu, dass neuere Versionen weniger als 100 % abwärtskompatibel sind.
Seit 2016 gibt es alle sechs Monate neue Versionen von Delphi, wobei etwa jede zweite Version neue Plattformen hinzufügt.
FrameworksEdit
Delphi bietet zwei Frameworks für die visuelle Anwendungsentwicklung, VCL und FireMonkey (FMX):
- Visual Component Library (VCL) ist das Framework für die Entwicklung reiner Windows-Anwendungen. VCL ist ein langjähriges Framework, das in der ersten Version von Delphi enthalten war und seitdem aktiv weiterentwickelt wird.
- FireMonkey (später abgekürzt FMX), wurde 2011 als Teil von Delphi XE2 veröffentlicht, zusammen mit einem zusätzlichen Satz von eingebauten Compilern für Nicht-Windows-Plattformen. FireMonkey ist ein plattformübergreifendes Framework für Windows, macOS, iOS, Android und Linux (x64). Die GUI-Teile von FireMonkey basieren weitgehend auf Direct3D und OpenGL. FireMonkey ist nicht mit VCL kompatibel; es handelt sich um zwei separate Frameworks. FireMonkey-Anwendungen ermöglichen jedoch die einfache gemeinsame Nutzung von nicht-visuellen Code-Einheiten mit VCL-Anwendungen, wodurch viel Code leicht zwischen den Plattformen portiert oder gemeinsam genutzt werden kann.
Interoperabilität
Delphi und sein C++-Gegenstück, C++Builder, sind interoperabel. Sie teilen sich viele Kernkomponenten, insbesondere die IDE, die VCL- und FMX-Frameworks und einen Großteil der Laufzeitbibliothek. Darüber hinaus können sie gemeinsam in einem Projekt verwendet werden. C++Builder 6 und spätere Versionen können beispielsweise Quellcode aus Delphi und C++ in einem Projekt kombinieren, während mit C++Builder kompilierte Pakete aus Delphi heraus verwendet werden können. Im Jahr 2007 wurden die Produkte gemeinsam als RAD Studio veröffentlicht, ein gemeinsamer Host für Delphi und C++Builder, der mit einem oder beiden erworben werden kann.