Delphi ondersteunt de snelle ontwikkeling van toepassingen (RAD). Prominente functies zijn een visuele ontwerper en twee toepassingsframeworks, VCL voor Windows en FireMonkey (FMX) voor cross-platform ontwikkeling.
Delphi maakt gebruik van de op Pascal gebaseerde programmeertaal Object Pascal, ontwikkeld door Anders Hejlsberg voor Borland (nu IDERA) als opvolger van Turbo Pascal. Het ondersteunt native cross-compilatie naar vele platformen, waaronder Windows, Linux, iOS en Android.
Om de ontwikkeling voor Microsoft Windows beter te ondersteunen en te interopereren met code ontwikkeld met andere software-ontwikkeltools, ondersteunt Delphi onafhankelijke interfaces van Component Object Model (COM) met referentie getelde klasse implementaties, en ondersteuning voor vele componenten van derden. Implementaties van interfaces kunnen worden gedelegeerd naar velden of eigenschappen van klassen. Message handlers worden geïmplementeerd door een methode van een klasse te taggen met de integer constante van het te behandelen bericht.
Database connectiviteit wordt uitgebreid ondersteund door VCL database-aware en database access componenten.
Laatere versies hebben verbeterde en verbeterde runtime library routines opgenomen, sommige geleverd door de community groep FastCode.
KarakteristiekenEdit
Delphi gebruikt een sterk getypeerde programmeertaal op hoog niveau, bedoeld om gemakkelijk in gebruik te zijn en oorspronkelijk gebaseerd op de vroegere Object Pascal taal. Pascal werd oorspronkelijk ontwikkeld als een taal voor algemeen gebruik “geschikt voor het uitdrukken van de toen bekende fundamentele constructies op een beknopte en logische manier”, en “de implementatie moest efficiënt zijn en concurrerend met bestaande FORTRAN compilers”, maar zonder programmeerfaciliteiten op laag niveau of toegang tot hardware. Turbo Pascal en zijn nakomelingen, waaronder Delphi, ondersteunen toegang tot hardware en programmering op laag niveau, met de mogelijkheid om in assembleertaal en andere talen geschreven code op te nemen. De objectoriëntatie van Delphi omvat alleen klasse- en interfacegebaseerd polymorfisme. Metaclasses zijn eersteklas objecten. Objecten zijn eigenlijk verwijzingen naar de objecten (zoals in Java), die Delphi impliciet de-refereert, zodat er meestal geen noodzaak is om handmatig geheugen toe te wijzen voor pointers naar objecten of soortgelijke technieken te gebruiken die sommige andere talen nodig hebben. Er zijn speciale string-types met referentietelling, en ook null-terminated strings.
Strings kunnen aan elkaar worden geregen door gebruik te maken van de ‘+’ operator, in plaats van functies te gebruiken. Voor specifieke string types verzorgt Delphi het geheugenbeheer zonder tussenkomst van de programmeur. Sinds Borland Developer Studio 2006 zijn er functies om geheugenlekken op te sporen.
Delphi bevat een geïntegreerde IDE. De Delphi producten worden allemaal geleverd met een run-time library (RTL) en een Visual Component Library (VCL), inclusief het grootste deel van de broncode. Componenten van derden (soms met volledige broncode) en tools om de IDE te verbeteren of voor andere Delphi-gerelateerde ontwikkelingstaken zijn beschikbaar, sommige gratis. De IDE bevat een GUI voor lokalisatie en vertaling van gemaakte programma’s die kunnen worden ingezet bij een vertaler; er zijn ook hulpprogramma’s van derden met meer mogelijkheden voor dit doel. Het VCL framework handhaaft een hoog niveau van broncompatibiliteit tussen versies, wat het bijwerken van bestaande broncode naar een nieuwere Delphi versie vereenvoudigt. Bibliotheken van derden moeten meestal door de leverancier worden bijgewerkt, maar als broncode wordt meegeleverd, kan hercompilatie met de nieuwere versie voldoende zijn. De VCL was een vroege aanhanger van “dependency injection” of “inversion of control”; het gebruikt een herbruikbaar componentmodel, dat door de ontwikkelaar kan worden uitgebreid. Met class helpers kan nieuwe functionaliteit aan core RTL en VCL classes worden toegevoegd zonder de oorspronkelijke broncode van de RTL of VCL te veranderen.
De compiler is optimaliserend en single pass. Het kan optioneel compileren naar een enkele executable die geen DLL’s nodig heeft. Delphi kan ook standaard DLL’s, ActiveX DLL’s, COM automatiseringsservers en Windows services genereren.
De Delphi IDE’s sinds Delphi 2005 ondersteunen in toenemende mate refactoring functies zoals methode extractie en de mogelijkheid om UML modellen te maken vanuit de broncode of om de broncode aan te passen door middel van wijzigingen die in het model zijn aangebracht.
Delphi heeft communities op het web, waar ook de medewerkers actief aan deelnemen.
Achterwaartse compatibiliteitEdit
Hoewel elke nieuwe release van Delphi probeert zoveel mogelijk achterwaartse compatibiliteit te behouden om bestaand codehergebruik mogelijk te maken, zorgen nieuwe functies, nieuwe bibliotheken en verbeteringen er soms voor dat nieuwere releases minder dan 100% achterwaartse compatibiliteit hebben.
Sinds 2016 zijn er elke zes maanden nieuwe releases van Delphi, waarbij ongeveer elke tweede release nieuwe platforms worden toegevoegd.
FrameworksEdit
Delphi biedt twee frameworks voor de ontwikkeling van visuele toepassingen, VCL en FireMonkey (FMX):
- Visual Component Library (VCL) is het framework voor de ontwikkeling van pure Windows-toepassingen. VCL is een al lang bestaand framework, dat werd opgenomen in de eerste release van Delphi en sindsdien actief is doorontwikkeld.
- FireMonkey (later afgekort tot FMX), werd in 2011 uitgebracht als onderdeel van Delphi XE2, samen met een extra set ingebouwde compilers voor niet-Windows-platforms. FireMonkey is een cross-platform framework voor Windows, macOS, iOS, Android en Linux (x64). De GUI-onderdelen van FireMonkey zijn grotendeels gebaseerd op Direct3D en OpenGL. FireMonkey is niet compatibel met VCL; het zijn twee afzonderlijke frameworks. FireMonkey applicaties maken het echter wel mogelijk om eenvoudig niet-visuele code-units te delen met VCL applicaties, waardoor veel code gemakkelijk kan worden geporteerd of gedeeld tussen de platforms.
Interoperabiliteit
Delphi en zijn C++ tegenhanger, C++Builder, zijn interoperabel. Ze delen veel kerncomponenten, met name de IDE, de VCL en FMX frameworks, en een groot deel van de runtime library. Bovendien kunnen zij gezamenlijk in een project worden gebruikt. C++Builder 6 en later kunnen bijvoorbeeld broncode van Delphi en C++ combineren in één project, terwijl pakketten die gecompileerd zijn met C++Builder gebruikt kunnen worden vanuit Delphi. In 2007 zijn de producten gezamenlijk uitgebracht als RAD Studio, een gedeelde host voor Delphi en C++Builder, die kan worden gekocht met een van beide of beide.