Mon ami "Delphi" et la Saint-Valentin : quand on aime, on ne compte pas !!
yanolezard
Bonjour à toutes et à tous,
Demain, c’est la Fête de la Saint-Valentin, alors Bonne Fête à toutes et à tous, à toutes les "Free-Workeuses" et à tous les "Free-Workers" et j’en profite aussi pour vous informer qu’en cette année bissextile (eh oui, il y a 29 jours dans ce mois de Février), un autre heureux évènement va se produire le 14 Février 2024 :
Les 29 ans de l'ami "Delphi" et qui, pour l’instant, relève bien des "Delphis".
Qui est donc ce mystérieux « Delphi » ?
Le langage de programmation « Delphi » est beaucoup moins utilisé que son concurrent le plus commun, le C++, mais apparaît néanmoins habituellement parmi les classements de popularité de langages informatiques.
Par exemple, l'index "TIOBE" mentionne "Delphi" parmi les 20 langages les plus souvent sujets de recherches, sans interruption depuis l'année 2000.
"Delphi" est utilisé pour la réalisation de logiciels spécifiques d'entreprise, mais aussi pour des produits informatiques standard. On le trouve en majorité dans l'industrie (question de coût de licences et de longévité)
"Delphi" est à la fois un langage de programmation, sous Windows, orienté objet et un environnement de développement intégré (EDI) pour ce langage, créé en 1995 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 (Rapid Application Development) 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 pour Windows.
En 2001, Borland édita une version Linux de Delphi appelée "Kylix", qui ne connut pas le succès attendu par l'éditeur.
Depuis 2011, la société "Embarcadero" a introduit le framework "Firemonkey" en complément de la "Visual Component Library (VCL)" (toujours orientée Windows) qui a permis progressivement de compiler les mêmes programmes sur d'autres plateformes.
Selon ses versions, "Delphi" permet de générer des exécutables natifs pour Windows (x86, x86_64), macOS (x86, x86_64, Apple Silicon), iOS (ARM 32 et 64 bits), Android (ARM 32 et 64 bits) et Linux (x86_64) depuis des programmes écrits en "Object Pascal" sous Windows.
Les plateformes cibles obsolètes sont retirées progressivement mais les licences permettent d'utiliser des versions précédentes de "Delphi" selon les besoins et ainsi de cibler des systèmes d'exploitation plus disponibles.
Une extension de l'IDE commercialisée avec un ensemble de composants par la société TMS Software permet de générer des sites web (HTML, CSS, Javascript) ou des applications web intégrées depuis des projets "Delphi" dédiés. Dans ce cas, le transpiler "Pas2JS" est utilisé en remplacement des compilateurs habituels.
Racontes-moi, le Pascal Objet !
Notre ami "Delphi" embarque une version orientée objet du langage "Pascal" : le "Pascal Objet", renommé "Langage de programmation Delphi" au fil des modifications apportées par le feu éditeur Borland.
Le « Pascal Objet » de « Delphi » possède plusieurs avantages :
Typage fort,
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 le "Pascal Objet" introduise une multitude de concepts intéressants et novateurs (de nombreux ont été repris avec C#), il souffre de faiblesses connues :
Absence de certaines fonctionnalités de "POO (Programmation Orientée Objet)" telles que l'héritage multiple de classes.
Certaines fonctionnalités comme la surcharge 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 langage de base "Pascal" rebute de nombreux programmeurs plus habitués à des styles de programmation Java ou C.
Enfin, il n'est ni standardisé ni géré par un comité indépendant : propriété de la maison "Embarcadero", l'éditeur est le seul à pouvoir décider de l'avenir et de l'ajout de nouvelles fonctionnalités au langage.
Les émules de "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.
Borland ayant abandonné le développement de "Kylix", 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 très compatibles avec "Delphi".
Avec 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".
Pourquoi toutes ces bibliothèques "Delphi" ?
Bibliothèque de composants "VCL (Visual Component Library)"
"Delphi" bénéficie d'une bibliothèque de composants visuels et non visuels, la "Visual Component Library (VCL)", dont le concept est similaire aux "MFC" de "Microsoft Visual Studio".
La "VCL" permet de dessiner rapidement une application graphique, en masquant les appels aux complexes "API Windows".
Depuis "Delphi 1.0", la "VCL" est améliorée par son éditeur à 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.
Bibliothèque de composants « FMX (Fire Monkey eXtended) »
"Firemonkey" (c’est un framework) a été introduit dans "Delphi" en 2011 avec la version XE2. C'est une alternative à la "VCL" pour faire du développement multiplateforme.
Entièrement graphique il permet de gérer de la 2D, de la 3D, des animations, des filtres et des effets graphiques sur tous les composants d'une interface graphique.
Il intègre également les bibliothèques "Box2D" et "Box3D" permettant d'ajouter un moteur physique à tout composant visuel d'une fiche, qu'il s'agisse de champs de saisie ou d'images.
Là où la "VCL" donne accès à toutes les fonctionnalités présentes sous Windows, "Firemonkey eXtended (FMX)" permet d'accéder aux "API" des plateformes cibles sur lesquelles on compile.
Et plein d’autres bibliothèques, "Delphi", selon son niveau de licence, intègre également:
Des outils, projets et composants clients / serveur, de base de données, simplifiant le dialogue avec des capteurs IoT, permettant de créer des API REST et y accéder,
Des sites Internet: FireDAC, EMS (RAD Server), Datasnap, Webbroker, technologies bluetooth (BT, BT LE, beacon), composants http natifs de chaque plateforme, App Tethering, IntraWeb, technologie ThingConnect (composants IoT), etc.
Histoire de savoir ... qui est "Delphi" ?
14 Février 1995 : "Delphi 1" est édité par "Borland" avec sa première version 16 bits de Windows (Windows 3, 3.1, 3.11).
S’en suit "Delphi 2" : la cible était les Windows 32 bits (Windows 95, NT)
2001 : première édition de "Kylix", l'environnement "Delphi pour Linux".
2002 : "Kylix 3", le succès tant attendu n'étant pas au rendez-vous de ce "Delphi pour Linux" : ce sera sa dernière version.
2008 : pour des questions de moyens, le compilateur "Delphi .NET" est abandonné au profit de "Delphi Prism" (de l’éditeur "RemObjects").
Août 2009 : "Delphi 2010" : pour Windows 7 et le fameux « Ribbon » utilisée par Microsoft à partir de Microsoft Office 2007.
2010 : "Delphi XE" : intégration de l'outil de contrôle de source SVN et du logiciel de Profilage de code "AQTime" au sein de l'IDE.
2011 : "Delphi XE2" : compilation multiplateformes pour "Mac OS X", "iOS" et "Windows x64".
2012 : "Delphi XE3" : nouvelle mouture pour IOS et Android.
2013 : "Delphi XE4" : création d'applications pour IOS native.
2013 : "Delphi XE5" : création d'applications sous Android native
2015 : "Delphi 10 Seattle" : la société "Embarcadero" est racheté en octobre 2015 par la société "Idera" (spécialité : les bases de données).
2017 : "Delphi 10.2 Tokyo" : compilateur pour Linux à "Delphi".
2018 : En Juillet, la version "Starter" de "Delphi" est abandonnée au profit d'une "Community Edition" aux fonctionnalités équivalentes de la version "Professional".
Même si elle autorise une utilisation commerciale (avec des restrictions au niveau de la licence), "Delphi Community Edition" est plus destinée aux hobbyists, étudiants, petites associations et entreprises en création.
18 juillet 2019 : "Delphi 10.3.2 Rio" : compilation macOS 64 bits aux possibilités de travail multiplateforme et création de logiciel pour iOS 32/64, Android 32, macOS 32/64, Windows 32/64 et Linux 64 avec "Delphi" et ses compilateurs natifs.
2019 : "Delphi 10.3.3 Rio" sort le 21 novembre 2019 : ajout du compilateur "ARM".
19/07/2021 : "Embarcadero" annonce la sortie de la nouvelle version "Delphi Community Edition"
09/09/2021: "Delphi 11 Alexandria". : support de Windows 11 (beta) opérationnel, applications natives pour macOS ARM 64 bits (Mac Silicon)
09/09/2022 : simulateur iOS sur Mac ARM,
Avril 2023 : "Delphi Community Edition" : mise à jour des SDK Android & iOS (soumettre les applications mobiles aux magasins d'applications).
Quelques exemples de projets et de solutions informatiques réalisés en « Delphi » :
"Delphi" lui-même et les autres outils Borland comme C++Builder ;
AIMP, un lecteur multimédia ;
Altium Designer, un logiciel de conception assistée par ordinateur pour systèmes électroniques;
InnoSetup, un logiciel de création d'installateurs pour Windows ;
FL Studio (anciennement Fruity Loops), un séquenceur / éditeur audio ;
Total Commander, un gestionnaire de fichiers avancé ;
ConTEXT, un éditeur de texte orienté développement ;
Dev-C++, un environnement de développement intégré sous Windows ;
Ad-Aware, un programme qui supprime les logiciels espions ;
Soldat, un jeu vidéo d'action gratuit sous Windows ;
DreamMail, un client de messagerie ;
Toad, outil d'administration & développement de bases de données (Quest Software ;
Game Maker, un logiciel de création de jeux vidéo ;
Kaspersky Anti-Virus ;
L'interface sous Windows de Skype, un logiciel de téléphonie par IP ;
SIPInside, un softphone sous licence GPL ;
Pleiades, un logiciel de simulation thermique dynamique du bâtiment ;
Geoplan, un logiciel de géométrie dynamique éducatif ;
Tanagra, un logiciel de statistique ;
Resource Hacker, un éditeur de ressources Windows.
Alors pour toutes celles et ceux qui ont connu, connaissent, utilisent ou veulent découvrir "Sa Majesté Delphi", souhaitons leur une Bonne et Joyeuse Saint-Valentin, en même temps que je souhaite un très joyeux Anniversaire à l'ami "Delphi" et des défis, il en relèvera encore pendant longtemps.
Merci.
Bien à vous toutes et tous,
Yanolezard
-
Enki
Nombre de posts : 67Nombre de likes : 32Inscrit : 25 juillet 2023Je pense que si tu as du travail c'est surtout parce que à la fin de 'l' entretien " ni le client ni toi ne savent plus vraiment pourquoi vous êtes en entretien mais que c'etait-cool-bon-enfant-trop-mignon-et-pourquoi-pas. C'est une méthode, et une méthode plutôt buldozer au vu de ta production sur ce site. Pour être clair ton mode d'expression est bien sûr parfaitement orienté commercial et relation humaine mais est tout autant antinomique avec les concepts d'ingénieurie et efficience, à fortiori ceux, épurés, sobres et économiques, de "avant-c'était-mieux" que tu sembles affectionner.
-
yanolezard
Nombre de posts : 298Nombre de likes : 288Inscrit : 5 décembre 2016Bonjour "Enki",
Je ne comprends pas bien votre commentaire. Si vous pouviez être plus explicite ...
Bien cordialement,
Yanolezard.