Delphi est un langage de programmation à usage général et un produit logiciel qui utilise le dialecte Delphi du langage de programmation Object Pascal et fournit un environnement de développement intégré (IDE) pour le développement rapide d'applications de logiciels de bureau, mobiles , Web et console , actuellement développé et maintenu par Embarcadero Technologies .
Les compilateurs de Delphi génèrent du code natif pour Microsoft Windows , macOS , iOS , Android et Linux ( x64 ).
Delphi comprend un éditeur de code, un concepteur visuel, un débogueur intégré, un système de gestion de versions et la prise en charge des plugins tiers . L'éditeur de code propose Code Insight ( complétion de code ), Error Insight (vérification des erreurs en temps réel) et la refactorisation . Le concepteur visuel de formulaires offre la possibilité d'utiliser la bibliothèque de composants visuels (VCL) pour le développement Windows pur ou le framework FireMonkey (FMX) pour le développement multiplateforme. La gestion des bases de données est une fonctionnalité essentielle, assurée par Borland comme outil de développement rapide d'applications pour Windows, succédant à Turbo Pascal . Delphi a ajouté la programmation orientée objet complète au langage existant, et ce dernier a évolué pour prendre en charge les génériques, les méthodes anonymes , les fermetures et le modèle COM ( Component Object Model ) natif.
Delphi et son équivalent C++ , C++Builder , sont interopérables et commercialisés conjointement sous le nom de RAD Studio. Il existe trois éditions : Professional, Enterprise et Architect. Les éditions supérieures offrent davantage de fonctionnalités, mais sont plus chères. Une édition Community gratuite est également disponible. Elle propose la plupart des fonctionnalités de l’édition Professional, mais est réservée aux utilisateurs et aux entreprises à faibles revenus.
Caractéristiques
Delphi prend en charge le développement rapide d'applications (RAD). Ses principales caractéristiques sont un concepteur visuel et deux frameworks d'application : la bibliothèque de composants visuels (VCL) pour Windows et FireMonkey (FMX) pour le développement multiplateforme.
Delphi utilise Object Pascal , un langage de programmation basé sur Pascal et créé par Anders Hejlsberg pour Borland (aujourd'hui IDERA), comme successeur de Turbo Pascal. Il prend en charge la compilation croisée native pour de nombreuses plateformes, notamment Windows, Linux, iOS et Android.
Pour une meilleure prise en charge du développement pour Microsoft Windows et une interopérabilité optimale avec le code développé à l'aide d'autres outils de développement logiciel, Delphi propose des interfaces COM ( Component Object Model ) indépendantes avec des implémentations de classes à comptage de références , ainsi que la compatibilité avec de nombreux composants tiers. L'implémentation des interfaces peut être déléguée à des champs ou des propriétés de classes. Les gestionnaires de messages sont implémentés en associant à une méthode de classe la constante entière du message à traiter.
La connectivité aux bases de données est largement prise en charge grâce aux composants VCL compatibles avec les bases de données et permettant l'accès aux bases de données.
Les versions ultérieures ont inclus des routines de bibliothèque d'exécution mises à jour et améliorées, dont certaines fournies par le groupe communautaire FastCode .
Caractéristiques
Delphi uses a strongly typedhigh-level programming language, intended to be easy to use and originally based on the earlier Object Pascal language. Pascal was originally developed as a general-purpose language "suitable for expressing the fundamental constructs known at the time in a concise and logical way", and "its implementation was to be efficient and competitive with existing FORTRAN compilers" but without low-level programming facilities or access to hardware. Turbo Pascal and its descendants, including Delphi, support access to hardware and low-level programming, with the facility to incorporate code written in assembly language and other languages. Delphi's object-orientation features only class- and interface-based polymorphism. Metaclasses are first class objects. Objects are references to the objects (as in Java), which Delphi implicitly de-references, so there is usually no need to manually allocate memory for pointers to objects or use similar techniques that some other languages need. There are dedicated reference-counted string types, and also null-terminated strings.
Strings can be concatenated by using the '+' operator, rather than using functions. For dedicated string types, Delphi handles memory management without programmer intervention. Since Borland Developer Studio 2006, there are functions to locate memory leaks.
Delphi includes an integrated IDE. The Delphi products all ship with a run-time library (RTL) and a Visual Component Library (VCL), including most of its source code. Third-party components (sometimes with full source code) and tools to enhance the IDE or for other Delphi related development tasks are available, some free of charge. The IDE includes a GUI for localization and translation of created programs that may be deployed to a translator; there are also third-party tools with more features for this purpose. The VCL framework maintains a high level of source compatibility between versions, which simplifies updating existing source code to a newer Delphi version. Third-party libraries typically need updates from the vendor but, if source code is supplied, recompilation with the newer version may be sufficient. The VCL was an early adopter of dependency injection or inversion of control; it uses a reusable component model, extensible by the developer. With class helpers, new functionality can be introduced to core RTL and VCL classes without changing the original source code of the RTL or VCL.
Delphi prend en charge un large éventail de composants d'accès aux bases de données tiers, offrant une connectivité native aux principaux systèmes de bases de données. Parmi ceux-ci figurent des bibliothèques spécialisées pour Oracle, SQL Server, MySQL/MariaDB, PostgreSQL, SQLite et InterBase/Firebird. Certains composants, comme DAC , proposent des solutions d'accès aux données universelles compatibles avec de multiples bases de données et services cloud tels que Salesforce et FreshBooks. Ces bibliothèques sont régulièrement mises à jour afin de garantir leur compatibilité avec les dernières versions des environnements de développement intégrés (par exemple, RAD Studio 12), des systèmes d'exploitation (par exemple, macOS Sonoma, iOS 17, Android 13) et des moteurs de bases de données (par exemple, Oracle 23, SQL Server 2022, PostgreSQL 16).
Le compilateur est optimisé et effectue une compilation en une seule passe . Il peut, en option, compiler en un seul exécutable ne nécessitant pas de DLL . Delphi peut également générer des DLL standard, des DLL ActiveX , des serveurs d'automatisation COM et des services Windows .
Depuis Delphi 2005, les environnements de développement intégrés (IDE) Delphi prennent de plus en plus en charge les fonctionnalités de refactorisation telles que l'extraction de méthodes et la possibilité de créer des modèles UML à partir du code source ou de modifier le code source par le biais de modifications apportées au modèle.
Delphi dispose de communautés en ligne où ses employés participent activement. Delphi utilise également des composants FireDAC en collaboration avec cette société.
Compatibilité ascendante
Delphi fait partie des langages dont la rétrocompatibilité est proche de 100 %. Bien que chaque nouvelle version de Delphi s'efforce de maintenir une rétrocompatibilité maximale afin de permettre la réutilisation du code existant, les nouvelles fonctionnalités, les nouvelles bibliothèques et les améliorations peuvent parfois rendre les versions plus récentes moins rétrocompatibles.
Depuis 2016, de nouvelles versions de Delphi sont publiées tous les six mois, et de nouvelles plateformes sont ajoutées environ toutes les deux versions.
Cadres
Delphi propose deux frameworks pour le développement d'applications visuelles : VCL et FireMonkey (FMX) :
- La bibliothèque de composants visuels (VCL) est le framework permettant de développer des applications Windows pures. Framework ancien, la VCL était incluse dans la première version de Delphi et a fait l'objet d'un développement actif depuis.
- FireMonkey (abrégé par la suite FMX) a été lancé en 2011, intégré à Delphi XE2, avec un ensemble de compilateurs intégrés pour les plateformes autres que Windows. FireMonkey est un framework multiplateforme compatible avec Windows, macOS, iOS, Android et Linux (x64). Son interface graphique repose principalement sur Direct3D et OpenGL. FireMonkey n'est pas compatible avec VCL ; il s'agit de deux frameworks distincts. Les applications FireMonkey permettent toutefois de partager facilement des blocs de code non visuels avec les applications VCL, ce qui facilite grandement le portage et le partage de code entre les plateformes.
Interopérabilité
Delphi et son équivalent C++ , C++Builder , sont interopérables. Ils partagent de nombreux composants essentiels, notamment l'EDI, les frameworks VCL et FMX, ainsi qu'une grande partie de la bibliothèque d'exécution . De plus, ils peuvent être utilisés conjointement dans un même projet. Par exemple, C++Builder 6 et versions ultérieures permettent de combiner du code source Delphi et C++ dans un seul projet, tandis que les packages compilés avec C++Builder peuvent être utilisés depuis Delphi. En 2007, les deux produits ont été commercialisés conjointement sous le nom de RAD Studio, un environnement partagé pour Delphi et C++Builder, disponible à l'achat avec l'un ou l'autre, voire les deux. Depuis la version Rio, l'interopérabilité avec Python est également assurée.