Delphi ist eine universelle Programmiersprache und ein Softwareprodukt, das den Delphi-Dialekt der Programmiersprache Object Pascal verwendet und eine integrierte Entwicklungsumgebung (IDE) für die schnelle Anwendungsentwicklung von Desktop-, Mobil- , Web- und Konsolensoftware bietet . [ 3 ] Derzeit wird es von Embarcadero Technologies entwickelt und gepflegt .
Die Compiler von Delphi generieren nativen Code für Microsoft Windows , macOS , iOS , Android und Linux ( x64 ). [ 4 ] [ 5 ] [ 6 ]
Delphi umfasst einen Code-Editor, einen visuellen Designer, einen integrierten Debugger, eine Quellcodeverwaltung und Unterstützung für Drittanbieter- Plugins . Der Code-Editor bietet Code Insight ( Codevervollständigung ), Error Insight (Echtzeit-Fehlerprüfung) und Refactoring . Der visuelle Formulardesigner ermöglicht die Verwendung der Visual Component Library (VCL) für die reine Windows-Entwicklung oder des FireMonkey (FMX)-Frameworks für die plattformübergreifende Entwicklung. Datenbankunterstützung ist ein zentrales Merkmal und wird durch FireDAC (Database Access Components) bereitgestellt. Delphi ist bekannt für seine hohe Kompiliergeschwindigkeit, den nativen Code und die hohe Entwicklerproduktivität.
Delphi wurde ursprünglich von Borland als Rapid-Application-Development- Tool für Windows und als Nachfolger von Turbo Pascal entwickelt . Delphi erweiterte die bestehende Sprache um die vollständige objektorientierte Programmierung und unterstützt mittlerweile Generics, anonyme Methoden , Closures und das native Component Object Model (COM).
Delphi und sein C++ -Pendant C++Builder sind interoperabel und werden gemeinsam unter dem Namen RAD Studio vertrieben. Es gibt die Editionen Professional, Enterprise und Architect, wobei die höheren Editionen mehr Funktionen zu einem höheren Preis bieten. Zusätzlich gibt es eine kostenlose Community Edition mit den meisten Funktionen der Professional Edition, die jedoch auf Benutzer und Unternehmen mit geringem Umsatz beschränkt ist. [ 7 ]
Merkmale
Delphi unterstützt die schnelle Anwendungsentwicklung (RAD). Zu den herausragenden Merkmalen gehören ein visueller Designer und zwei Anwendungsframeworks : die Visual Component Library (VCL) für Windows und FireMonkey (FMX) für die plattformübergreifende Entwicklung.
Delphi verwendet die auf Pascal basierende Programmiersprache Object Pascal, die von Anders Hejlsberg für Borland (heute IDERA) als Nachfolger von Turbo Pascal entwickelt wurde. Sie unterstützt die 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 die Interoperabilität mit Code anderer Softwareentwicklungswerkzeuge zu gewährleisten, bietet Delphi unabhängige Schnittstellen des Component Object Model (COM) mit Referenzzählungsklassenimplementierungen sowie Unterstützung für zahlreiche Drittanbieterkomponenten. Schnittstellenimplementierungen können an Felder oder Eigenschaften von Klassen delegiert werden. Nachrichtenbehandler werden implementiert, indem eine Methode einer Klasse mit der ganzzahligen Konstante der zu verarbeitenden Nachricht gekennzeichnet wird.
Die Datenbankanbindung wird umfassend durch VCL-Datenbank-fähige Komponenten und Datenbankzugriffskomponenten unterstützt.
Spätere Versionen enthalten verbesserte und erweiterte Laufzeitbibliotheksroutinen, von denen einige von der Community-Gruppe FastCode bereitgestellt werden .
Eigenschaften
Delphi verwendet eine stark typisierte , höhere Programmiersprache , die benutzerfreundlich sein soll und ursprünglich auf der früheren Sprache Object Pascal basiert. Pascal wurde ursprünglich als universelle Sprache entwickelt, die „geeignet war, die damals bekannten grundlegenden Konstrukte prägnant und logisch auszudrücken“, und „ihre Implementierung sollte effizient und konkurrenzfähig mit bestehenden FORTRAN-Compilern sein“ [ 8 ] , jedoch ohne hardwarenahe Programmierfunktionen oder Hardwarezugriff. Turbo Pascal und seine Nachfolger, einschließlich Delphi, unterstützen Hardwarezugriff und hardwarenahe Programmierung und ermöglichen die Einbindung von Assembler- und anderen Programmiersprachen. Delphis Objektorientierung bietet ausschließlich klassen- und interfacebasierte Polymorphie [ 9 ] . Metaklassen sind Objekte erster Klasse. Objekte sind Referenzen auf Objekte (wie in Java ), die Delphi implizit dereferenziert, sodass in der Regel keine manuelle Speicherzuweisung für Objektzeiger oder ähnliche Techniken wie in manchen anderen Sprachen erforderlich sind. Es gibt spezielle referenzgezählte String-Typen sowie nullterminierte Strings.
Zeichenketten lassen sich mit dem Operator „+“ anstatt mit Funktionen verketten. Für spezielle Zeichenkettentypen übernimmt Delphi die Speicherverwaltung ohne Programmiereingriff. Seit Borland Developer Studio 2006 stehen Funktionen zum Aufspüren von Speicherlecks zur Verfügung .
Delphi beinhaltet eine integrierte Entwicklungsumgebung (IDE). Alle Delphi-Produkte werden mit einer Laufzeitbibliothek (RTL) und einer visuellen Komponentenbibliothek (VCL) ausgeliefert, die den Großteil des Quellcodes umfasst. Komponenten und Tools von Drittanbietern (teilweise mit vollständigem Quellcode ) zur Erweiterung der IDE oder für andere Delphi-bezogene Entwicklungsaufgaben sind verfügbar, einige davon kostenlos. Die IDE bietet eine grafische Benutzeroberfläche (GUI) zur Lokalisierung und Übersetzung erstellter Programme, die an einen Übersetzer übermittelt werden können. Für diesen Zweck stehen auch Drittanbieter-Tools mit erweiterten Funktionen zur Verfügung. Das VCL-Framework gewährleistet eine hohe Quellcodekompatibilität zwischen den Versionen, was die Aktualisierung bestehenden Quellcodes auf eine neuere Delphi-Version vereinfacht. Bibliotheken von Drittanbietern benötigen in der Regel Updates vom Hersteller. Ist jedoch der Quellcode vorhanden, kann eine Neukompilierung mit der neueren Version ausreichend sein. Die VCL nutzte frühzeitig Dependency Injection bzw. Inversion of Control . Sie verwendet ein wiederverwendbares Komponentenmodell, das vom Entwickler erweiterbar ist. Mithilfe von Klassenhilfsklassen lassen sich neue Funktionen in die Kernklassen der RTL und VCL einführen, ohne den ursprünglichen Quellcode der RTL oder VCL zu ändern.
Delphi unterstützt eine Vielzahl von Datenbankzugriffskomponenten von Drittanbietern, die eine native Anbindung an gängige Datenbanksysteme ermöglichen. Dazu gehören spezialisierte Bibliotheken für Oracle, SQL Server, MySQL/MariaDB, PostgreSQL, SQLite und InterBase/Firebird. Einige Komponenten, wie beispielsweise DAC , bieten universelle Datenzugriffslösungen, die mehrere Datenbanken und Cloud-Dienste wie Salesforce und FreshBooks unterstützen. Diese Bibliotheken werden regelmäßig aktualisiert, um die Kompatibilität mit den neuesten IDE-Versionen (z. B. RAD Studio 12), Betriebssystemen (z. B. macOS Sonoma, iOS 17, Android 13) und Datenbank-Engines (z. B. Oracle 23, SQL Server 2022, PostgreSQL 16) zu gewährleisten.
Der Compiler ist optimierend und arbeitet in einem einzigen Durchlauf . Optional kann er zu einer einzelnen ausführbaren Datei kompilieren , die keine DLLs benötigt. Delphi kann außerdem Standard-DLLs, ActiveX- DLLs, COM- Automatisierungsserver und Windows-Dienste generieren .
Seit Delphi 2005 unterstützen die Delphi-IDEs zunehmend Refactoring- Funktionen wie die Extraktion von Methoden und die Möglichkeit, UML- Modelle aus dem Quellcode zu erstellen oder den Quellcode durch Änderungen im Modell zu modifizieren.
Delphi unterhält Online-Communities , in denen sich auch die eigenen Mitarbeiter aktiv beteiligen. Zudem nutzt Delphi in Zusammenarbeit mit FireDAC-Komponenten diese.
Rückwärtskompatibilität
Delphi gehört zu den Sprachen, deren Abwärtskompatibilität nahezu 100 % beträgt. Obwohl jede neue Delphi-Version versucht, so viel Abwärtskompatibilität wie möglich zu erhalten, um die Wiederverwendung bestehenden Codes zu ermöglichen, führen neue Funktionen, neue Bibliotheken und Verbesserungen manchmal dazu, dass neuere Versionen nicht mehr vollständig abwärtskompatibel sind.
Seit 2016 erscheinen alle sechs Monate neue Versionen von Delphi, wobei etwa mit jeder zweiten Version neue Plattformen hinzugefügt werden. [ 10 ]
Rahmenwerke
Delphi bietet zwei Frameworks für die visuelle Anwendungsentwicklung an: VCL und FireMonkey (FMX).
- Die Visual Component Library (VCL) ist ein Framework zur Entwicklung reiner Windows-Anwendungen. VCL ist ein etabliertes Framework, das bereits in der ersten Version von Delphi enthalten war und seitdem aktiv weiterentwickelt wird.
- FireMonkey (später FMX) wurde 2011 zusammen mit Delphi XE2 und zusätzlichen Compilern für Nicht-Windows-Plattformen veröffentlicht. FireMonkey ist ein plattformübergreifendes Framework für Windows, macOS, iOS, Android und Linux (x64). Die GUI-Komponenten von FireMonkey basieren größtenteils 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 nicht-visueller Codeeinheiten mit VCL-Anwendungen, wodurch viel Code problemlos zwischen den Plattformen portiert oder geteilt werden kann.
Interoperabilität
Delphi und sein C++ -Pendant C++Builder sind interoperabel. Sie teilen viele Kernkomponenten, insbesondere die IDE, die VCL- und FMX-Frameworks sowie große Teile der Laufzeitbibliothek . Darüber hinaus können sie gemeinsam in einem Projekt verwendet werden. Beispielsweise kann C++Builder 6 und höher Quellcode aus Delphi und C++ in einem Projekt kombinieren, während mit C++Builder kompilierte Pakete in Delphi verwendet werden können. 2007 wurden die Produkte gemeinsam als RAD Studio veröffentlicht, eine gemeinsame Host-Plattform für Delphi und C++Builder, die einzeln oder zusammen mit beiden erworben werden kann. Ab Rio besteht außerdem Interoperabilität mit Python.
Beispielprogramm „Hello World“
Programm ObjectPascalExample ;type THelloWorld = class procedure Put ; end ;procedure THelloWorld.Put ; begin Writeln ( 'Hallo Welt ! ' ) ; end ;var HelloWorld : THelloWorld ; { dies ist ein impliziter Zeiger }begin HelloWorld := THelloWorld.Create ; { Der Konstruktor gibt einen Zeiger auf ein Objekt vom Typ THelloWorld zurück. } HelloWorld.Put ; HelloWorld.Free ; { Diese Zeile gibt das THelloWorld-Objekt frei , auf das HelloWorld zeigt. } end .Beachten Sie, dass die Objektkonstruktion in Delphi weiterhin verfügbar ist.
Geschichte
Einsatzmöglichkeiten in Schulen
Im Jahr 2016 wurde Delphi zur bevorzugten Programmiersprache für den Unterricht in südafrikanischen Schulen im Fach Informationstechnologie (IT) ernannt. [ 11 ]
Roadmaps
Embarcadero veröffentlichte früher „Roadmaps“, die die zukünftigen Entwicklungspläne beschrieben. Die letzte erschien im November 2020. [ 12 ] Die in der Roadmap vom November 2020 erwähnte Version 10.5 wurde in 11.0 umbenannt. Ab Delphi 11 verzichtet Embarcadero auf die Veröffentlichung formaler Roadmaps. Stattdessen werden mögliche neue Funktionen nun in Blogbeiträgen und Online-Webinaren vorgestellt. Marco Cantú (Produktmanager) spielt dabei mit seinem Blog eine wichtige Rolle .
Verwandte Software
- Borland Enterprise Studio, ein Vorgänger von RAD Studio, ist eine Softwareentwicklungssuite mit Unterstützung für mehrere Programmiersprachen. Borland Enterprise Studio für Windows unterstützt Delphi. [ 13 ]
- Borland Kylix : Ähnlich wie Delphi, jedoch für Linux, erschien 2001. Dies war der erste Versuch, Linux-Unterstützung in die Delphi-Produktfamilie zu integrieren. [ 14 ] Kylix nutzte das neue plattformübergreifende CLX-Framework (basierend auf Qt ) anstelle der VCL von Delphi. Die Entwicklung von Kylix wurde nach Version 3 eingestellt. Heute ist die Linux-Unterstützung in das Hauptprodukt von Delphi integriert und verwendet das plattformübergreifende FireMonkey-Framework.
- InterBase ist eine einbettbare SQL-Datenbank, die sich nativ in Delphi und C++Builder für Client/Server- oder Embedded-Entwicklung integrieren lässt. Zu ihren herausragenden Merkmalen zählen geringerer Verwaltungsaufwand, Datensicherheit auf Unternehmensniveau, Notfallwiederherstellung und Änderungssynchronisierung. Sie ist zudem mit allen gängigen Programmiersprachen und Plattformen über Datenbankverbindungsprotokolle wie ODBC, ADO, ADO.NET und sogar mit Java über die JDBC/ODBC-Bridge oder Java-Typ-4-Konnektoren kompatibel.
- JBuilder war seit Version JBuilder 2007 ein Werkzeug für die Java-Entwicklung auf Basis von Eclipse.
- RadPHP (später ersetzt durch HTML5 Builder) war eine IDE für PHP mit echter RAD-Funktionalität. Sie verfügte über einen Formulardesigner ähnlich dem von Delphi oder Visual Basic und einen integrierten Debugger auf Basis des Apache -Webservers. Außerdem enthielt sie eine für PHP portierte VCL -Bibliothek. Im Gegensatz zu anderen IDEs unterstützte sie Web-2.0-Funktionen wie Ajax . Delphi für PHP wurde am 20. März 2007 angekündigt, im Oktober 2010 in RadPHP umbenannt und basierte auf Qadram Q Studio. Embarcadero übernahm Qadram im Januar 2011.
- Delphi Prism (später umbenannt in Embarcadero Prism) basierte auf der Programmiersprache Oxygene (ehemals Chrome) von RemObjects. Es lief in der Microsoft Visual Studio IDE anstatt in RAD Studio. Embarcadero lizenzierte und vermarktete es als Nachfolger von Delphi.NET, nachdem dessen Entwicklung eingestellt worden war.
- Free Pascal ist ein Open-Source-Pascal - Cross-Compiler für verschiedene Plattformen , der den Großteil des Object-Pascal-Codes von Delphi unterstützt. Free Pascal bietet außerdem eigene Spracherweiterungen, mehrere Compiler-Modi (Sprachsyntax) und unterstützt über 18 Betriebssysteme und über 9 Prozessorarchitekturen. [ 15 ] Lazarus ist eine plattformübergreifende RAD-IDE, die den Free-Pascal-Compiler verwendet.
Bemerkenswerte Drittanbieterbibliotheken
- FastCode – Erweiterte Laufzeitbibliotheken und Speicherverwaltung.
- OpenWire (Bibliothek) – Komponentenbibliothek für Datenfluss, Ereignisse und Zustandssynchronisation.
- Teechart – Diagrammbibliothek.
Siehe auch
Referenzen
- ^ „Ankündigung der Verfügbarkeit von RAD Studio 13 Florence Update 1“ . 19. März 2026. Abgerufen am 19. März 2026 .
- ^ „Installationshinweise – Systemvoraussetzungen“ . Archiviert vom Original am 06.08.2020 . Abgerufen am 05.09.2020 .
- ^ William Buchanan (4. Februar 2003). Mastering Delphi Programming . Palgrave Macmillan. S. 10–. ISBN 978-1-137-17356-0Die
- ^ „Leistungsvergleich von Delphi 2010 bis XE6 (Teil 2)“ . Riversoft AVG. 12. Mai 2014. Archiviert vom Original am 26. Juli 2015. Abgerufen am 9. März 2016 .
- ^ „The Delphi Geek: Built For Speed“ . Archiviert vom Original am 23. März 2016. Abgerufen am 9. März 2016 .
- ^ „Diskussion auf Hacker News darüber, ob Delphi noch existiert“ . Hacker News. Archiviert vom Original am 2. Juli 2016. Abgerufen am 9. März 2016 .
- ^ „Delphi: App Development Product Editions“ . Embarcadero . Archiviert vom Original am 14. März 2021. Abgerufen am 13. März 2021 .Mit Download-Link für die Delphi Feature Matrix
- ^ „Erinnerungen an die Entwicklung Pascals“ (PDF) . Archiviert (PDF) vom Original am 12.05.2016 . Abgerufen am 12.01.2016 .
- ^ Lingfeng Wang; Kay CHen Tan (20. Januar 2006). Modernes Softwaredesign für die industrielle Automatisierung . John Wiley & Söhne. S. 113–. ISBN 978-0-471-77627-7Die
- ^ „Liste der Delphi-Sprachfunktionen und der Version, in der sie eingeführt/abgeschaltet wurden“ . Stack Overflow. Archiviert vom Original am 28. Februar 2016. Abgerufen am 9. März 2016 .
- ^ Redakteur (03.02.2016). „Embarcadero Delphi zur bevorzugten Programmiersprache für südafrikanische Schulen ernannt“ . Archiviert vom Original am 31.03.2022 . Abgerufen am 17.03.2022 .
- ^ „RAD Studio November 2020 Roadmap PM Commentary“ . blogs.embarcadero.com. 17. November 2020. Archiviert vom Original am 28.11.2020 . Abgerufen am 27.11.2020 .
- ^ „Borland Enterprise Studio“ . Archiviert vom Original am 05.02.2002 . Abgerufen am 05.02.2002 .
- ^ „Kylix ist da!“ . Archiviert vom Original am 04.09.2019 . Abgerufen am 05.09.2020 .
- ^ „Free Pascal Homepage“ . freepascal.org. Archiviert vom Original am 25.01.1999 . Abgerufen am 27.04.2016 .