Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Bienvenue dans le futur du développement logiciel, encore une fois

pexels cottonbro 8875489

J’ai une bonne nouvelle pour vous, le futur du développement logiciel est arrivé ! Eh bien, pour être précis, la prochaine grande chose possible dans l’avenir du développement logiciel est là… encore une fois.

Fonctionne n’importe où, il suffit d’ajouter de la RAM

J’ai ce blocage mental à propos du nom Electron. Je ne sais pas exactement pourquoi, mais chaque fois que j’essaie de me souvenir du nom de ce framework Web omniprésent, mes petites cellules grises crient « Eclipse » et, malgré mes efforts, je ne peux pas évoquer le nom correct au moment approprié pendant le va-et-vient bavard d’un webinaire.

Je pense avoir une théorie sur la raison pour laquelle cela se produit ; mon inconscient essaie de m’empêcher de passer du côté obscur pour utiliser Electron pour créer des applications multiplateformes.

Quel est le problème avec l’utilisation d’Electron ?

Écoutez, il n’y a rien de mal à utiliser Electron en tant que tel. J’ai en fait utilisé Electron et produit une application qui était en fait un site Web encapsulé par le framework et le runtime Electron. Mais, cela dit, c’est un mangeur vorace. Il consommera chaque partie des ressources RAM et CPU de votre machine s’il est laissé à ses propres appareils. Si vous ne me croyez pas, lancez une recherche rapide sur le Web pour « problèmes électroniques ».

Les avantages d’Electron sont qu’il peut être une voie rapide vers le marché. Si vous avez une application Web, ce n’est pas une tâche énorme d’envelopper ce site Web ou cette application Web avec le framework Electron. En outre, il implémente un système de mise à jour automatique, ce qui signifie que vous pouvez publier de nouvelles versions et améliorations avec une friction assez faible.

Un développeur web n’est pas forcément un développeur d’applications

Quelques problèmes surgissent. Dans les coulisses de presque toutes les applications Electron se trouve la bête qui est Node.js – porteur de NPM, le Node Package Manager. Le NPM est un superbe référentiel d’add-ons, de composants, de modules et de Nodestuffs permettant de gagner du temps. Les développeurs Electron / Node peuvent obtenir un package pour presque tout. Si vous êtes un développeur Web qui a des connaissances en JavaScript, le NPM peut vous permettre d’intégrer des composants pour vous économiser une tonne de travail.

Utiliser NPM n’est-il pas un peu comme installer des composants Delphi ?

Eh bien, oui. Sauf avec une différence très spécifique : Delphi est compilé en code natif avec un compilateur d’optimisation. Si vous incluez 1000 packages Node – soit délibérément en raison d’une forme d’optimisme trop zélé, soit par inadvertance parce qu’un package dépend d’un autre qui dépend de cinq autres qui dépendent tous de six autres packages – alors vous aurez 1000 packages Node dans votre app même si tout ce qu’elle fait est d’afficher une page disant « hello world » en magenta clignotant.

Si vous faites la même chose dans une application Delphi, vous obtiendrez beaucoup de déchets inutiles inclus – mais le compilateur et le mécanisme de liaison de Delphi excluront une quantité massive de choses que vous avez extraites mais qui ne sont pas réellement utilisées. Il ne peut pas vous protéger totalement de vous-même et de vos éviers de cuisine, mais cela vous évitera certainement de créer une application Gigagbyte alors qu’elle ne nécessitait que quelques Mo au maximum.

Le code bas est la prochaine grande chose

Droite. Applications Low Code . Vous en avez vu certains et, oui, ils peuvent être parfaits pour créer des applications, généralement en répondant à des questions dans un assistant ou en faisant glisser et en déposant des blocs visuels prédéfinis pour dessiner le programme à l’écran comme un organigramme sous stéroïdes.

Oui, bien fait et dans des domaines de mise en œuvre étroits, ces langages de programmation à dessiner peuvent être très utiles, en particulier dans le secteur de l’éducation où ils peuvent aider les novices à visualiser le fonctionnement du flux d’un programme.

Nous avons même un assistant FireMonkey Low Code pour RAD Studio, ce n’est donc pas une idée totalement horrible.

Mais attendez une minute…

Le développement visuel est-il une nouveauté ?

Je suis assez vieux pour avoir été un programmeur informatique qui a appris à programmer dans les années 1970 et 1980. J’ai écrit ma première demande d’argent, une bannière de texte publicitaire, en 1979. C’était du texte parce que toutétait du texte. Pas de souris, pas de pointeurs, pas de fenêtres, pas de répertoires/dossiers – pas de MS-DOS ou Windows. J’ai continué à écrire COBOL pour gagner ma vie, puis, plus tard, des programmes C, tout a fait à la dure avec Vi, Edit ou EdLin (oui, je sais vraiment comment quitter VIM). Pendant les trois premiers mois en tant que développeur COBOL, nous, les programmeurs juniors, avons dû écrire nos programmes sur des feuilles de codage COBOL – littéralement des morceaux de papier écrits avec un stylo. Nous portions des blouses blanches parce que l’informatique était une science et que les scientifiques travaillaient dans des laboratoires. Ensuite, nous avons obtenu des « terminaux » afin que nous puissions taper le code nous-mêmes. Plus de blouses de labo bien que nous devions soudain porter des costumes trois pièces puisque nous étions maintenant une « entreprise » et que les gens d’affaires portaient des costumes.


C’est ainsi que cela s’est passé, avec peu de variations, pour les 12 prochaines années environ. Sérieusement, le seul « développement visuel » était un organigramme dessiné à la main.

Microsoft à la rescousse

Puis Visual Basic est arrivé. C’était génial, mais aussi lent qu’une limace lors d’un festival de la bière et compilé dans une couche de pseudo-code plutôt que la super-vitesse de l’assemblage natif ou des programmes C. Cette nature interprétative a également généré un problème appelé « DLL hell » où les runtimes qui rendaient possibles de petits programmes Visual Basic auraient plusieurs versions incompatibles les unes avec les autres et entraînaient des points d’entrée de fonction manquants qui étaient diaboliquement difficiles à résoudre. En outre, VB s’est beaucoup appuyé sur les contrôles VBX et OCX qui ont ajouté des fonctionnalités, souvent pour faire des choses assez ordinaires mais nécessaires manquantes du runtime – mais elles aussi pouvaient être différentes de celles attendues par votre application, souvent d’une manière qui était fatale à votre mauvais programme.

Cela ne ressemble-t-il pas beaucoup à la situation avec Electron? Cela ressemble aussi un peu aux premiers jours de Dot Net : « cette application nécessite Dot Net Runtime XYZ, téléchargez-la maintenant » – ce qui signifie un téléchargement de 500 Mo ; vous pouvez démarrer le téléchargement en toute sécurité et aller déjeuner pendant qu’il fait cela.

Internet n’est qu’un bébé

Votre programme VB pourrait être vraiment minuscule. Mais cette petite application exploitait en fait une énorme installation monstre de l’environnement d’exécution Visual Basic et de nombreux artefacts d’installation VBX/OCX. C’était à l’époque où les modems étaient considérés comme rapides s’ils allaient à 56K sur une ligne téléphonique standard. Si vous n’avez pas eu de chance, votre modem n’était qu’un boîtier de vitesse 1200/1200 ou 2400. Cinq mégaoctets était un téléchargement lent, fastidieux et frustrant, surtout si votre mère décrochait le téléphone pour appeler tante Gertrude à mi-chemin.

This was the advert! (Source: Marco Cantu’s Website)

Une publicité dans un magazine a changé ma vie

Puis, un jour en 1995, je regardais par hasard un magazine informatique (qui était en fait imprimé sur du vrai papier, ee c’était l’époque) et j’ai vu une publicité pour ce nouveau système appelé Delphi qui vous permettrait de créer vos programmes en faisant glisser et en déposant des éléments visuels sur des « formulaires » – un peu comme vous pourriez le faire dans Visual Basic – sauf qu’il était basé sur un compilateur et un éditeur de liens d’une rapidité aveuglante qui pouvait produire du code natif sans avoir besoin de runtimes en plein essor et était, en effet, immunisé contre l’enfer des DLL qui m’avait tourmenté – et des milliers d’autres – travaillant avec Visual Basic.

J’ai commandé une copie de Delphi 1 le jour de sa sortie. J’ai encore le reçu.

Bonjour tout le monde à la manière low code – dans les années 1990

Ainsi, avec ce nouveau Delphi, vous avez dû prendre un certain temps pour apprendre le Pascal. Je pensais que ce serait un peu une colline à gravir mais il s’est avéré que ce n’était pas très différent du BASIC ou du C. En fait, il avait la facilité d’utilisation du BASIC avec tous les professionnels, proche de la puissance métallique du C tout en évitant bon nombre des fonctions ésotériques hallucinantes des deux.

Pour créer un programme qui affichait une fenêtre de base avec un bouton qui disait « bonjour tout le monde » lorsque vous cliquiez dessus, il fallait une ligne de code écrit. Visual Basic était similaire, jusqu’ici tout va bien.

Ensuite, j’ai compilé l’application Delphi et j’ai réalisé, lors de son exécution, qu’elle se lancerait de n’importe où sur l’ordinateur – ou sur l’ordinateur de n’importe qui d’autre – sans avoir à l’installer au préalable.

À l’époque, nous n’avions pas de clés USB. La disquette régnait toujours sur le monde comme l’outil de choix pour prendre un programme que vous avez écrit sur un ordinateur et l’installer sur un autre. Je pouvais copier l’application sur la disquette, puis la transférer sur l’ordinateur d’un collègue et l’exécuter à partir de la disquette et tout cela sans rien installer du tout sur sa machine. Ce n’était pas seulement du low code – c’était aussi une installation zéro.

Vous ne pouviez pas faire cela avec un programme Visual Basic à moins que l’autre ordinateur n’ait installé le runtime Visual Basic.

Le code low, aucune méthode d’installation fonctionne encore aujourd’hui pour Delphi

Le vent avance de quelques décennies. Aujourd’hui, j’ai une application client-serveur assez populaire, assez complète pour le marché cible et chargée de fonctionnalités. Il se connecte à une base de données MySQL et « parle » à un service Windows personnalisé (en Delphi, par moi) pour le regroupement des données et la gestion des licences.

L’application, complète avec des ressources graphiques multi-résolutions compilées, un accès MySQL natif direct compilé, un cryptage, un PDF et une génération d’aperçu de rapport – débordant de fonctionnalités, se compile à une taille d’application finie de 10 Mo. DIX mégaoctets.

La partie serveur ne fait que 917ko. Oui, moins d’un mégaoctet .

Vous pouvez tout exécuter à partir d’une clé USB car elle ne nécessite toujours aucune installation du côté client.

Votre application moderne est un monstre gonflé

Comparez mon application Delphi de dix mégaoctets à certains des nouveaux chouchous du monde low code, en particulier Electron, et vous verrez que Delphi, l’enfant low code original, a encore beaucoup d’astuces. C’est le même ensemble d’astuces qu’il a toujours eu dans son répertoire : un développement simple et rapide basé sur des composants, un compilateur incroyablement rapide, une compilation jusqu’au code de niveau natif qui produit des applications solides qui s’exécutent et continuent de fonctionner pendant que le système d’exploitation et le matériel évolue.

Delphi est-il démodé ?

Eh bien, RAD Studio Delphi ne reste pas figé dans les beaux jours du boom technologique des années 90 ; outre la modernité évidente de l’IDE, RAD Studio ajoute désormais l’ assistant FireMonkey FMX Low Code pour vous donner une longueur d’avance sur le travail d’âne, le débogueur REST pour vous tenir au courant du monde moderne de la consommation de services en ligne, de plus en plus de déploiement cibles telles que iOS, Android et Linux et le Web aussi. Le marché des composants tiers est toujours fort avec quelque chose de disponible pour presque tout ce que vous pourriez souhaiter. Mais, mieux encore, le compilateur et l’éditeur de liens s’assurent que, contrairement à la pauvre liste de paquets de Node d’Electron, vous n’extraitez que du code réel qui peut être exécuté, pas n’importe quoi et tout simplement parce qu’il n’est référencé que par un fichier d’inclusion.


L’avenir du développement logiciel

L’avenir du développement logiciel semble inclure des fonctionnalités « d’IA intelligentes » d’une précision déconcertante, telles que celles actuellement en version bêta pour le projet Copilot . Copilot consiste à essayer de deviner le code que vous essayez de créer, puis à l’écrire pour vous en fonction de ce sur quoi l’apprentissage automatique a été formé, principalement à partir de référentiels publics.

Il est déjà tombé dans l’eau chaude en étant un peu trop doué pour régurgiter le code de quelqu’un d’autre mot pour mot et pour suggérer un texte de licence qui s’est avéré être une licence parfaitement bonne mais pour le mauvais contexte dans lequel le développeur de l’application travaillait.

Vais-je un jour être remplacé par un programmeur d’IA possédant des compétences de codage en machine learning ? Peut-être. Bien que j’aie déjà entendu cela, au fil des décennies, j’ai travaillé dans l’industrie. La réalité est que je suis beaucoup plus susceptible d’être remplacé par une délocalisation vers un pays où le coût de la vie est suffisamment bas pour que la disparité dans ce pour quoi ils sont prêts à travailler soit trop grande pour que je puisse rivaliser.

S’ils utilisent Electron cependant… Je prédis que le client reviendra… éventuellement…


RAD Studio Delphi est le moyen le plus rapide et le plus efficace de créer des applications avec un minimum d’effort. Prenez vos idées et transformez-les en réalité en téléchargeant un essai dès aujourd’hui.

Quitter la version mobile