Delphi (langage)

Delphi (langage)

CodeGear Delphi

Page d'aide sur l'homonymie Pour les articles homonymes, voir Delphi.

Delphi désigne à la fois un environnement de développement intégré et un langage de programmation orienté objet.

L'EDI Delphi est un EDI propriétaire fonctionnant sous Windows créé en 1995 et édité par Borland. À l'époque, créer des programmes graphiques sous Windows se faisait en grande majorité en utilisant soit la chaîne de compilation Visual C++, soit le RAD Visual Basic. Le premier outil étant excessivement complexe et le second assez peu structuré, Delphi apparut alors comme une alternative viable pour beaucoup de développeurs qui souhaitaient créer des programmes standard pour Windows.

En 2001, Borland édita une version Linux de Delphi appelé Kylix, qui ne connut pas le succès attendu par l'éditeur.

Comme il s'agit d'un outil RAD (Rapid Application Development), Delphi est très simple à prendre en main et il est tout à fait aisé de créer toutes sortes d'applications.

Sommaire

Le Object Pascal

Delphi implémente une version orientée objet (POO) du langage Pascal, le Object Pascal, renommé Langage de programmation Delphi au fil des modifications apportées par Borland. Le Object Pascal de Delphi possède plusieurs avantages qui améliorent la productivité du développeur par rapport au C++ : typage fort, déclarations de variables dans une section précise, contrôle strict du compilateur pour éviter les erreurs de mémoire, de débordement, gestion intégrée des chaînes de caractères et des tableaux dynamiques, etc. La compilation ne se fait qu'en une seule passe et il n'y a pas de séparation entre l'implémentation et l'interface comme en C ou en C++ : la génération d'un projet Delphi est donc très rapide, ce qui a accru à sa sortie la popularité de l'outil vite réputé pour ses temps de compilation record.

Bien que Object Pascal introduise une multitude de concepts intéressants et novateurs (de nombreux ont été repris avec C#), il souffre de faiblesses connues. Par exemple, il ne permet pas certaines fonctionnalités de POO tel que l'héritage multiple de classes ou l'utilisation d'interfaces non liées à COM. Certaines fonctionnalités comme la surchage d'opérateurs et la généricité n'ont été introduits que tard (respectivement avec Delphi 2005 et Delphi 2009). De plus, sa parenté avec le Pascal rebute de nombreux programmeurs plus habitués à des styles de programmation proches de Java ou C. Enfin, il n'est ni standardisé ni géré par un comité indépendant : propriété de Borland, l'éditeur est le seul à pouvoir décider de l'avenir et de l'ajout de nouvelles fonctionnalités du langage.

L'interface de développement

L'environnement de développement s'appuie sur un éditeur d'interface graphique associé à un éditeur de code source. Il doit son succès à sa facilité d'utilisation pour développer des applications graphiques et/ou liées aux bases de données. On l'a souvent comparé à Visual Basic de Microsoft pour cette facilité de développement. On peut même dire que par un amusant mouvement de balancier et de personne, le VB influença Delphi qui à son tour influença par la suite le VB (Anders Hejlsberg lors de son passage chez Microsoft).

L'environnement de développement auto-génère du code pour faciliter le travail du programmeur. Il maintient une correspondance automatique entre la vue de conception (la fenêtre que le programmeur bâtit en déposant des composants graphiques) et l'éditeur de code (la vue affichant le code source qui créera ces composants à l'exécution). Les données spécifiques aux composants sont stockés dans des fichiers d'extension .DFM alors que le code source Object Pascal est sauvegardé dans des fichiers d'extension .PAS. Alors que d'autres langages (comme C# avec Winforms) génèrent les instructions nécessaire à la création des composants de l'interface et l'injectent dans une section du code source du programme; Delphi sépare les données statiques de description des objets d'interface, à la manière de XAML, et se base sur des routines de la VCL pour relire et présenter l'interface lors de l'exécution.

L'interface de développement permet l'ajout de composants tiers (graphiques ou non) via un système de composants. La modularité est obtenue à la conception mais peut aussi être exploitée à l'exécution via un système de chargement dynamique de paquets d'exécution, Borland ayant étendu le concept de bibliothèques partagées et le format Windows DLL en introduisant un modèle propriétaire permettant d'enregistrer dynamiquement et d'exporter des classes entre modules. Le même système sera repris par Microsoft sous Visual Basic avec le format VBX, puis ensuite à l'échelle du système avec les composants COM et ActiveX.

Historique

Éditée par Borland, la première version (Delphi 1) était destinée aux versions 16 bits de Windows (Windows 3, 3.1, etc.). Dès la deuxième version, la cible était les Windows 32 bits (Windows 95, NT, etc.). Le logiciel ne change pas radicalement entre chaque version, la différence se fait plus sur des ajouts de composants utilisables dans les programmes et la prise en compte de nouvelles technologies.

Une grande partie de l'équipe initiale ayant conçue Delphi, dont Anders Hejlsberg (le créateur de Turbo Pascal, et du Pascal), fut débauchée par Microsoft à la fin des années 90. Anders Hejlsberg travailla d'abord sur la librairie de classes du langage J++, puis fut affecté au projet .NET et devint l'inventeur du C#. Le départ de nombreux membres coïncida avec une baisse générale de la qualité du produit ainsi qu'un manque d'investissement marketting de la part de Borland, menant à un déclin progressif de Delphi. Néanmoins, au début des années 2000, Borland restait un des seuls éditeurs permettant (sur le papier) de développer à partir d'un même ensemble d'outils des applications natives, des applications .NET ainsi que des applications fonctionnant sous Linux grâce à Kylix .

En 2002 est publié Kylix 3, la dernière version de l'environnement Delphi pour Linux.

En 2008, pour des questions de moyens, le compilateur Delphi .NET est abandonné au profit de Delphi Prism, une solution proposée par un éditeur tiers, RemObjects.

La version actuelle est la version 2010 (sortie en août 2009). Elle consolide le support d'Unicode dans la VCL, propose le support de Windows 7, intègre de nombreuses corrections de bogues et améliore la productivité dans l'environnement de développement.

Exemple de code généré

Le code suivant montre ce que Delphi génère lors de la création d'une application vide. La fenêtre à l'écran est représentée par une classe (TForm1) qui sera instancié à l'exécution et dont l'instance sera assignée à la variable Form1. Les autres composants sont aussi définis sous forme de classes dont le code source est stocké dans les fichiers décrits dans la clause uses de l'unité :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.

Cependant, c'est à peu près tout ce que Delphi génère (mis à part le code des éléments placés par le biais de l'EDI). Si un programmeur averti veut générer des classes de manière efficace pour mieux concevoir et structurer ses données, Borland propose d'autres outils basés sur UML : ModelMaker de ModelMakerTools qui lui, permet de générer tout le code d'interface d'une classe ainsi que d'appliquer facilement des design patterns, ou bien Together, produit Borland résultant du rachat de TogetherSoft.

Autres branches issues ou en rapport avec Delphi

Kylix est un produit très proche de Delphi (même principe, même interface) qui fonctionne sous Linux et qui permet de créer des programmes pour ce système. Le même code source peut-être compilé sous Linux et Windows (respectivement avec Kylix et Delphi) grâce à l'utilisation de la bibliothèque objet CLX qui s'appuie sur la bibliothèque graphique Qt en suivant les mêmes principe que la bibliothèque VCL. Aujourd'hui Borland a abandonné le développement de Kylix mais la bibliothèque CLX reste présente au sein des nouvelles versions de Delphi.

Lazarus est un projet libre d'EDI pour Free Pascal. Copiant au widget près et aux fonctions près l'outil Delphi (et s'utilisant comme celui-ci), le logiciel, associé à Free Pascal, permet de concevoir des projets 99% compatibles avec Delphi. À l'aide de quelques directives de compilation, un même code orienté traitement (n'utilisant pas directement des fonctions d'interface graphique) peut être compilé sous Delphi, Kylix et Free-Pascal. L'inconvénient de ce logiciel est lié à son caractère récent : une légère instabilité (largement compensée par sa fonction de sauvegarde automatique) et un manque de widgets. Le TFrame, composant le plus utilisé et amélioration majeure de Delphi, fonctionne désormais correctement. Enfin, la documentation officielle n'est pas aussi complète qu'avec le Delphi de Borland mais de très nombreux sites existent palliant ce défaut.

Bibliothèque de composants VCL

Article détaillé : Visual Component Library.

Delphi bénéficie d'une excellente bibliothèque de composants visuels et non visuels, la Visual Component Library (VCL), dont le concept est similaire aux MFC de Visual Studio. La VCL permet entre autres de dessiner rapidement une application graphique, en masquant les appels aux complexes API Windows. Depuis Delphi 1, la VCL est améliorée par Borland à chaque nouvelle version de Delphi en veillant à une compatibilité (quasi) totale dans l'interface de la bibliothèque, ce qui permet de migrer des projets en limitant la réécriture du code.

C++ Builder exploite la même bibliothèque de composants et comporte un "traducteur" Object Pascal vers C++, tout du moins un C++ contenant des extensions propres à Borland compréhensible par le frère C++ de Delphi. Ainsi, tout code Delphi peut être exploité avec C++ Builder.

Le recul de Delphi

Jusqu'à la sortie du Framework .NET par Microsoft, de nombreux développeurs utilisaient Delphi du fait de la robustesse de son langage et de l'excellent niveau d'abstraction introduit par sa bibliothèque de composants. Avec l'arrivée de .NET et C#, Microsoft a fait un pas de géant en produisant un outil reprenant tous les concepts qui avaient fait la popularité de Delphi : langage adapté au RAD, conception de composants par glisser-déposer, framework cohérent...

De nombreux développeurs ont alors abandonné Delphi qui n'évoluait plus vraiment (puisque Borland recentrait alors son activité vers des outils de gestion du cycle de vie des applications) pour Visual Studio et C# (ou VB.NET). En effet, puisque Microsoft proposait un équivalent moins cher via des langages et des jeux de composants standardisés en s'y investissant considérablement plus que Borland, il n'y avait plus vraiment de raison d'utiliser Delphi.

De nombreux (mauvais) choix marketing et un manque évident de moyens attribué au projet Delphi par Borland amorça un déclin de l'outil, qui conserve toutefois une réelle communauté unie d'utilisateurs. Par exemple, la décision très tardive de créer un compilateur natif 64 bits et une VCL supportant Unicode fut vécue par beaucoup comme une très mauvaise décision et fut une autre raison pour amorcer une migration vers d'autres langages comme C++ ou C#.

La vente de la branche IDE de Borland, décidée en février 2006, est censé être un moyen d'obtenir un nouveau cadre de travail et surtout le support d'une nouvelle société complètement dévouée au développement d'outils de programmation comme le furent Delphi ou C++ Builder. Le déclin n'est pas fatal et sera peut être enrayé par la sortie de nouveaux produits innovants comme le fut Delphi il y a plus de 10 ans.

Ceci étant, Delphi reste une solution efficace pour développer diverses applications. De plus, Microsoft a trop souvent changé de technologie en cours de route pour rassurer certaines entreprises ou développeurs qui savent que Delphi garde sa pérennité depuis 1991. Néanmoins, Delphi souffre de petits ou gros manquements dans certains domaines. Mais c'est le lot de tous les langages de programmation. Par ailleurs, la communauté Delphi reste très active et soudée comme le montre l'activité toujours importante des sites internet consacrés au langage.

La naissance de CodeGear et le rachat par Embarcadero Technologies

En février 2006, Borland a annoncé son intention de se séparer du développement de ses EDI pour se consacrer à la Gestion du Cycle de Vie des applications. Finalement, ne trouvant pas de repreneurs valides, elle créa CodeGear, une entité dédiée aux EDI, à laquelle participe toute l'équipe de développement de Delphi, C++ Builder, et JBuilder. Au départ, CodeGear appartient à Borland mais possède ses moyens propres destinés à la création d'outils pour développeurs ("Where developers matter").

Après 2 ans de recherche, la société Embarcadero Technologies rachète CodeGear pour un montant de 23 millions de dollars. Dans un souci d'homogénéité, les bases de données issues d'Embarcadero sont regroupées sous la dénomination DataBaseGear. CodeGear continue à opérer en tant qu'entreprise privée sous la direction de l'actuelle CEO d'Embarcadero.

Borland, ou ce qu'il en restait, est finalement racheté par Micro Focus International en 2009 pour 75 millions de dollars.

Version 2009

La plus grosse innovation de cette version est la capacité de Delphi à gérer l'Unicode, que ce soit :

  • au niveau de la VCL : les chaînes de caractères gèrent par défaut des caractères Unicode et non ANSI. La RTL a été adaptée pour utiliser les API Win32 Unicode et gérer l'encodage des caractères dans les fonctions de manipulation des flux. Les utilisateurs des programmes générés par Delphi 2009 peuvent donc entrer des chaînes de caractères Unicode dans les composants visuels ou accèder à des fichiers comportant des caractères non ANSI dans leur noms.
  • au niveau de l'éditeur et du parseur lui-même : les développeurs peuvent utiliser des caractères Unicode dans les identificateurs de types ou dans leur code source.

Cette avancée majeure permet une internationalisation plus facile des programmes Delphi à destination des pays de l'Europe de l'Est, de l'Asie et de l'Orient.

La deuxième grosse nouveauté de cette version est le support de la généricité. Cela permet de réduire de façon significative les lignes de codes à saisir par le développeur.

La dernière grosse nouveauté de cette version est le support des méthodes anonymes, permettant, entre autres, de faire du refactoring plus abouti.

De nouveaux composants visuels ont été introduits dont le plus notable est une implémentation de l'interface utilisateur Ribbon utilisée par Microsoft à partir de Microsoft Office 2007 et Windows 7.

Le futur de Delphi

Sous l'impulsion d'Embarcadero, de nombreuses améliorations et nouveautés sont attendues pour les futures version de Delphi. Plutôt que d'être entreprises l'une après l'autre dans un cycle de développement linéaires, celles-ci ont été associées à des projets développés simultanément :

  • Delphi X : Ce projet doit aboutir à la création d'un compilateur Pascal Object multiplateforme pour MacOS et Linux; mais aussi pour les appareils mobiles. Il est même question de pouvoir compiler pour les téléphones portables et l'iPhone.
  • Weaver : Ce projet inclue l'intégration des nouvelles API de Windows 7 et le support d'appareils tactiles et de reconnaissance des mouvements.
  • Commodore : Ce projet se concentre sur la compilation native 64 bit.

Ces projets représentent les orientations générales de CodeGear et ne seront pas forcément inclus dans les prochaines versions (voire jamais), mais elle montre bien la volonté d'Embarcadero et de Codegear de donner à Delphi un avantage concurrentiel par rapport aux autres éditeurs.

Exemples de projets connus réalisés en Delphi

  • Delphi lui-même et les autres outils Borland comme C++ Builder,
  • Skype, un logiciel de téléphonie par IP,
  • FL Studio (anciennement Fruity Loops), un séquenceur / éditeur audio,
  • Total Commander, un gestionnaire de fichier avancé,
  • ConTEXT, un éditeur de texte orienté développement,
  • Dev-C++, un environnement de développement intégré sous Windows,
  • Perl IDE, un environnement de développement intégré pour PERL sous Windows,
  • Ad-Aware, un programme qui supprime les logiciels espions,
  • Soldat, un jeu vidéo d'action gratuit sous Windows,
  • Sensomusic Usine, un logiciel temps réel pour la scène musicale,
  • BudgetExpress, un logiciel de finances personnelles.

Voir aussi

Sur les autres projets Wikimedia :

Articles connexes

Liens externes

  • Portail de la programmation informatique Portail de la programmation informatique
Ce document provient de « CodeGear Delphi ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Delphi (langage) de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Delphi (Informatique) — CodeGear Delphi Pour les articles homonymes, voir Delphi. Delphi désigne à la fois un environnement de développement intégré et un langage de programmation orienté objet. L EDI Delphi est un EDI propriétaire fonctionnant sous Windows créé en 1995 …   Wikipédia en Français

  • Delphi (informatique) — CodeGear Delphi Pour les articles homonymes, voir Delphi. Delphi désigne à la fois un environnement de développement intégré et un langage de programmation orienté objet. L EDI Delphi est un EDI propriétaire fonctionnant sous Windows créé en 1995 …   Wikipédia en Français

  • Langage De Transformation XML — Un langage de transformation XML est un langage de programmation créé spécifiquement pour créer toute forme de document en sortie à partir d un document XML en entrée. Il y a deux cas spécifiques de transformation : XML vers XML : le… …   Wikipédia en Français

  • Langage de transformation xml — Un langage de transformation XML est un langage de programmation créé spécifiquement pour créer toute forme de document en sortie à partir d un document XML en entrée. Il y a deux cas spécifiques de transformation : XML vers XML : le… …   Wikipédia en Français

  • Langage De Description De Format De Document — Un langage de description de format de document est un langage permettant de définir un jeu de règles et contraintes qui seront utilisées pour savoir si une instance de document est valide par rapport à ce même jeu de règles et contraintes.… …   Wikipédia en Français

  • Langage de description — de format de document Un langage de description de format de document est un langage permettant de définir un jeu de règles et contraintes qui seront utilisées pour savoir si une instance de document est valide par rapport à ce même jeu de règles …   Wikipédia en Français

  • Langage Pascal — Pascal (langage) Pour les articles homonymes, voir Pascal. Pascal …   Wikipédia en Français

  • Langage de programmation Pascal — Pascal (langage) Pour les articles homonymes, voir Pascal. Pascal …   Wikipédia en Français

  • Langage C++ — C++ Apparu en 1985 (dernière révision en 2003) Auteur Bjarne Stroustrup …   Wikipédia en Français

  • Langage C plus plus — C++ Apparu en 1985 (dernière révision en 2003) Auteur Bjarne Stroustrup …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”