Code Gear / Embarcadero Delphi 2009

Print

Mein Entwicklungswerzkeug: Delphi 2009.

Delphi ist zum einen der Name einer vom Unternehmen Borland entwickelten objektorientierten Programmiersprache, die ursprünglich aus der von Niklaus Wirth erstellten Programmiersprache Pascal hervorgegangen ist, und zum anderen die Bezeichnung einer ebenfalls vom Unternehmen Borland entwickelten Entwicklungsumgebung.

Im November 2006 wurden die Entwicklerteams der Entwicklungswerkzeuge, darunter auch Delphi, von Borland in eine neue Tochtergesellschaft namens CodeGear ausgegliedert. Am 7. Mai 2008 wurde die IDE-Sparte an Embarcadero Technologies verkauft. Die Programmiersprache von Borlands Entwicklungsumgebung Delphi wurde vom Hersteller lange Zeit als Object Pascal bezeichnet. Erst 2003, mit dem Erscheinen von Delphi 7, benannte der Hersteller sie in Delphi-Language um. Die Begründung lautete, dass sich bereits so viel in der Sprache verändert habe, dass man es nicht mehr mit Pascal gleichsetzen könne. So wurden zum Beispiel viele originäre Konstrukte, wie sie von Niklaus Wirth für Pascal als Programmiersprache zu Schulungszwecken erdacht worden sind (wie eine absolut strenge Typisierung), durch die aus der Praxis resultierenden Erfordernisse ergänzt.

Eine wesentliche Erweiterung gegenüber der zugrunde liegenden Sprache Pascal ist die Einbeziehung objektorientierter Sprachmerkmale. Delphi ist aber nicht die erste objektorientierte Erweiterung von Pascal. Borland hatte bereits bei Version 5.5 von Turbo Pascal ein Objektmodell eingeführt, das von den Delphi-Compilern bis Version 7.0 sowie seit Version 2006 (10.0) erneut unterstützt wird. Delphi 8 für .NET unterstützt sie nicht.

Object Pascal ist die Grundlage der visuellen Klassenbibliothek Visual Component Library (VCL), sowie der neueren Component Library for Cross Platform (CLX), auf der Kylix basiert. Beide Bibliotheken sind stark miteinander verwandt, und es ist häufig einfach, eine für die VCL geschriebene Komponente nach CLX zu portieren.

Einige der Elemente und Ideen von Object Pascal wurden in die Programmiersprache C# von Microsoft übernommen. Einer der Gründe ist, dass zahlreiche Mitentwickler von Delphi bei Borland von Microsoft abgeworben wurden und maßgeblich an der Entwicklung von C# beteiligt waren. Darunter waren unter anderem der Delphi-Projektleiter Anders Hejlsberg, welchem der Wechsel zu Microsoft mit einem Bonus in Millionenhöhe schmackhaft gemacht wurde, sowie Chuck Jazdzewski (Delphi Chief Architect), Corbin Dunn (Entwickler der Delphi-IDE), Danny Thorpe (Delphi, Borland Chief Scientist), Eddie Churchill und Ramin Halviatti.[2] Hejlsberg wurde bei Microsoft Software-Architekturchef, Miterfinder von .NET und Chefentwickler von C#.

Delphi ist keine asketische Sprache: So beruht der größte Teil der Funktionalität auf Klassenbibliotheken, andere sehr häufig benötigte Funktionen werden direkt vom Compiler umgesetzt, so z. B. die nahtlose Integration der COM-Technologie unter Microsoft Windows. Der direkte Zugriff auf das Windows-API ist möglich. Von anderen Anbietern gibt es eine Vielzahl von Komponenten und Assistenten für die unterschiedlichsten Anwendungen (siehe Weblinks).

Ab der Version 6.0.1 wurden die Bibliotheken (bis zu diesem Zeitpunkt nur die Visual Component Library für Windows) um die Cross Plattform Library CLX erweitert, die die Lauffähigkeit eines Programms unter Windows und Linux ermöglichen sollte. Gleichzeitig wurde die Linuxportierung Kylix aus der Taufe gehoben.

Bis Delphi 2005 wurden Objekte grundsätzlich auf dem Heap angelegt. Dies ermöglicht es in Delphi, jedes Objekt als Rückgabe an den Aufrufenden zu übergeben. In anderen Programmiersprachen, wie z. B. C++, können Objekte sowohl im Heap als auch im Stack angelegt werden. Objekte im Stack können nicht als Rückgabewert übergeben werden, da diese beim Verlassen der Funktion zusammen mit dem restlichen Stackframe der Funktion gelöscht werden. Somit wurde hier eine Designentscheidung getroffen, die dem Delphi-Programmierer die Entscheidung zwischen Heap/Stack abnimmt und immer die flexiblere Lösung wählt. Als Nachteil dieser Technik ergibt sich unmittelbar, dass der Programmierer seine erzeugten Objekte selbst aus dem Speicher entfernen muss. Bei Objekten im Stack ist dies nicht notwendig. Somit können sich C++-Programmierer das explizite Löschen ihrer erzeugten Objekte teilweise sparen.

Seit Delphi 2006 werden die alten Objekte aus Turbo Pascal, die zwischenzeitlich nur eingeschränkt genutzt werden konnten, wieder unterstützt, bei denen der Programmierer die Freiheit hat, die Objekte dort abzulegen, wo es zweckmäßig ist.

Add comment


Security code
Refresh