CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Delphi (langage) - Wikipédia

Delphi (langage)

Un article de Wikipédia, l'encyclopédie libre.

Vous avez de nouveaux messages (diff ?).
image:Langage_progr.png
Cet article fait partie de la série
Langages de programmation
Langages à objets
C++ - C#
Delphi - Eiffel - Java
Groovy - Python - Ruby
Simula - Smalltalk
Visual Basic - WinDev
Langages impératifs
APL - ASP - Assembleur
BASIC - C - Cobol
Forth - Fortran - Logo
Pascal - Limbo - Perl - PHP
Langages fonctionnels
Haskell - ML/OCaml
Lisp/Common Lisp
Scheme
XSLT
Langages déclaratifs
Clips - Prolog
Langages concurrents
Ada 95 - Erlang
Langage de balisage
HTML - SGML - XML
S-expressions
Voir aussi
Conception - Codage
Tests - Optimisations

Delphi est un environnement de développement intégré propriétaire fonctionnant sous Windows créé en 1995 et édité par Borland. A l'époque, créer des programmes graphiques sous Windows se fait en grande majorité soit en utilisant la chaîne de compilation Visual C++, ou bien avec le RAD Visual Basic. Le premier outil étant excessivement complexe et le second plutôt peu structuré, Delphi apparaissait alors comme une alternative viable pour beaucoup de développeurs qui souhaitaient créer des programmes standard pour Windows.

En 2001, Borland éditera une version Linux de Delphi appelé Kylix, qui ne connaîtra 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.

Actuellement, Delphi reste l'un des rares outils avec lequel il est possible de produire des programmes Win32 ou .NET à partir du même langage et de la même bibliothèque de composants.

Sommaire

[modifier] Le Pascal Objet

Delphi implémente une version orientée objet (POO) du langage Pascal, le Pascal Objet (Object Pascal), au fil des modifications apportées par Borland renommé Langage de programmation Delphi. Le Pascal Objet 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 Pascal Objet introduise une multitude de concepts intéressants et novateurs (de nombreux ont été repris avec C#), il souffre aussi de faiblesses connues. Il ne permet pas certaines fonctionnalités de POO tel que l'héritage multiple de classes (qui peut toutefois être contournée par l'utilisation des interfaces), la surchage d'opérateurs n'a été introduite que tard (Delphi 2005), et il est impossible de reproduire le très utile système de "template" que l'on retrouve en C++. 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.

[modifier] Une bibliothèque de composants : la VCL

Delphi bénéfie d'une excellente bibliothèque de composants visuels et non visuels, la 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éecriture du code.

C++ Builder exploite la même bibliothèque de composants et comporte un "traducteur" Pascal Objet 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.

Bien que Delphi contienne déja à l'origine un nombre de composants (visuels et non visuels) incroyable, il est possible d'en importer de nouveaux. Là encore le choix est énorme, pour chaque type d'application, on retrouve une multitude de packs composants. Il s'agit là de toute la puissance de Delphi les composants sont bien plus nombreux que ceux de Microsoft sur sa plateforme Visual Studio, le développement devient plus rapide.

La bibliothèque recensant le plus grand nombre de composants est la JEDI Visual Component Library (JVCL), elle contient plus de 500 composants visuels et non visuels gratuits.

Bibliothèques de composants Delphi

[modifier] 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 a son tour influença par la suite le VB (Anders Hejlsberg lors de son passage chez Microsoft).

Delphi (le programme) 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 Pascal Objet est sauvegardé dans des fichiers d'extension .PAS.

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.

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.

Edité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.

C'est le créateur de Turbo Pascal (et non pas du Pascal), Anders Hejlsberg qui était un des chefs du projet Delphi chez Borland et qui, passé chez Microsoft, devint l'inventeur du C#.

Pour la version 6 et la version 2005, il existe une version en téléchargement gratuit qui permet d'écrire des programmes sous licence GPL (Et seulement sous cette licence). Elle a pour nom Edition Personnelle. (Pour la version 2005, il faut se rendre sur le site www.developpez.com pour le téléchargement :

La version actuelle est la version 2006 (sortie en fin 2005). Elle regroupe au sein d'un même EDI la possibilité de générer du code Win32 ou du code Delphi .NET ou encore C#. Le langage Delphi pour .NET a été adapté à la plateforme .NET de Microsoft et le langage Delphi pour Win32 bénéficie de quelques améliorations. Delphi 7 est destiné au développement pour l'environnement Win32 de Microsoft et Delphi 8 à l'environnement .NET de Microsoft. Il s'agit de 2 compilateurs distincts.

La VCL a également été adaptée, sous Delphi 8 et Delphi 2005, pour faciliter la migration des application Delphi Win32 vers .NET. Par exemple, toutes les références à des pointeurs ont été remplacées par des références vers des objets.

[modifier] 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ême principe que la bibliothèque VCL. Aujourd'hui Borland à 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 (lazarus.freepascal.org) 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. A 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, notamment le composant TFrame. L'utilisation de GTK comme bibliothèque graphique apporte un inconvénient très irritant concernant les boîtes de dialogue d'ouverture et de sauvegarde de fichiers: ces boîtes de dialogue ne sont pas disposées comme celles de QT et de Windows, et se révèlent 'imbuvables' à l'utilisation.

[modifier] Delphi 2006

Borland Developer Studio 2006 apporte comme pour chaque nouvelle version son lot de nouveautés. D'importants changements ont été apportés à l'EDI, au niveau de l'édition du code et du design des fiches. L'éditeur de code est doté d'une "gouttière" où sont affichés les numéros de ligne. Ceux-ci sont accompagnés, et c'est une nouveauté, de la barre de modification du code, qui permet en un coup d'œil de visualiser quelle partie du code a été modifiée depuis le dernier enregistrement. Au chargement d'un fichier, la barre n'indique rien. Les parties de code modifiées seront ensuite indiquées en jaune, et les parties modifiées mais déjà sauvegardées lors du dernier enregistrement sont indiquées en vert. Pour en savoir plus sur Delphi 2006 :

[modifier] 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érénité 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.

[modifier] Le futur de Delphi

La Roadmap de Delphi énonce un certain nombre de thèmes clés basés sur les retours de ses utilisateurs. Dans les prochaines versions de Delphi, Borland répondra aux besoins de ses clients dans les domaines suivants : Borland dévoile l'avenir de Delphi : La RoadMap 2005 à 2007 par David Intersimone. Lire aussi : L'Interview de Bruno De Combiens (Borland France) sur Delphi 2006.

Un bémol est tout de même à signaler puisque Borland a annoncé en Février 2006 son intention de se séparer du développement de ses EDI pour se consacrer à la Gestion du Cycle de Vie des applications. Delphi sera donc mis en vente et son évolution dépendrait donc de l'acheteur. La bonne nouvelle c'est que Borland s'orienterait vers la création d'une nouvelle entité dédiée aux EDI, à laquelle participerait bien sûr toute l'équipe de développement actuelle. Cette nouvelle structure serait bien sûr étroitement liée à Borland qui, selon leurs dires, ne souhaite pas séparer l'IDE de leurs outils en amont. On peut donc supposer que la roadmap de Delphi telle qu'annoncée par Borland a toutes les chances d'être réellement suivie.

En Août 2006, la division RAD en cours de vente par Borland annonce la création de la nouvelle ligne de produits Turbo, signant comme un retour aux sources (puisque c'est grandement à partir de Turbo Pascal que fut bati le succès de Borland). Originellement distribués en outils séparés (Delphi, C++ Builder, C# Builder), puis fusionnés en une suite logicielle nommée BDS (pour Borland Developper Studio, dont beaucoup critiquaient la lourdeur), les composants originels redeviennent, avec la gamme Turbo, utilisables séparément suivant de nouvelles conditions.

[modifier] Liens externes

  • Delphi sur la communauté CodeS-SourceS : Une communauté Delphi hyperactive qui propose des codes sources librement téléchargeables, un forum actif, et des tutoriels.
  • John COLIBRI : des articles de programmation (ASP.NET, ADO.NET, bases de données...) avec les codes sources, des tutoriels, des transparents pour les formations delphi.
  • DelphiLAB : Codes sources, composants, tutoriaux et autres liens ainsi qu'un forum francophone pour les développeurs Delphi.
  • Phidels : Des phideliens très actifs et un forum très accueillant, codes sources, exemples, cours pour débuter, composants.
  • Torry : Le site regroupant le plus de composants pour Delphi.
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com