par Marco Cantu, David Millington et Sarina DuPont
Introduction
L'équipe de gestion des produits Embarcadero RAD Studio met régulièrement à jour la feuille de route de développement des produits Delphi, C++Builder et RAD Studio. Comme vous pouvez le voir dans notre article de blog sur la feuille de route officielleNous venons de publier une nouvelle version de la feuille de route, couvrant les fonctionnalités clés que nous avons prévues pour les 12 prochains mois. En plus des diapositives officielles de la feuille de route, nous avons voulu offrir plus de détails, d'informations et d'aperçus avec ce billet de blog supplémentaire. Il peut être utile d'ouvrir les diapositives pour s'y référer tout en lisant les informations supplémentaires que nous fournissons ici.
Prêt à démarrer avec la dernière version de RAD Studio ? Démarrer l'essai gratuit
Dans notre feuille de route, vous trouverez les principales fonctionnalités que nous avons prévues pour l'année civile 2021. Avant d'entrer dans les détails de notre feuille de route actualisée, nous souhaitons récapituler ce que nous avons livré jusqu'à présent.
Au début de cette année, nous avons publié la version 10.4 de Sydney. La version 10.4 a été très bien accueillie par nos clients et comprenait la première livraison de notre réécriture complète du moteur Delphi Code Insight, désormais basé sur l'architecture du protocole Language Server, un nouveau débogueur pour C++ Win64, qui répondait à une demande de longue date de nos clients, et de nouvelles fonctionnalités du langage Delphi telles que les enregistrements gérés personnalisés. Nous avons également élargi de manière significative le cas d'utilisation des styles VCL avec la prise en charge des moniteurs HighDPI et du style par contrôle.
La version 10.4 Sydney a été suivie de la version 10.4.1 en septembre 2020, qui était principalement axée sur la qualité et l'amélioration des fonctionnalités livrées dans la version 10.4, en particulier la prise en charge du LSP Delphi nouvellement ajouté. La version 10.4.1 comprend plus de 800 améliorations de la qualité, dont plus de 500 améliorations de la qualité pour les problèmes signalés publiquement dans le portail de qualité de Embarcadero.
Avant d'entrer dans les détails des versions 10.4.2 et 10.5, nous tenons à souligner que la version 10.4/10.4.1 a été l'une des plus populaires à ce jour, avec plus de téléchargements que les versions 10.3 et 10.2. Ce résultat est particulièrement impressionnant en pleine période de COVID-19. Nous attribuons ce succès à la fois à la version et à notre engagement accru auprès des partenaires technologiques qui continuent à collaborer avec notre équipe pour mettre à jour et développer de nouvelles fonctionnalités. Nous tenons également à vous remercier, vous, nos clients, pour l'excellent retour d'information que vous avez fourni à l'équipe produit, en termes de fonctionnalités que vous aimeriez voir ajoutées et de domaines sur lesquels vous aimeriez que nous nous concentrions pour améliorer la qualité, ainsi que pour votre participation à nos programmes bêta (ce qui est l'un des avantages de l'abonnement).
Actuellement, nous travaillons sur la version 10.4.2, prévue pour la première partie de l'année civile 2021 et détaillée dans la feuille de route et dans ce billet de blog de commentaire. Quelque temps avant la sortie de cette version, nous prévoyons d'inviter les clients RAD Studio, Delphi et C++Builder ayant un abonnement actif à la mise à jour à participer aux tests bêta de la prochaine version. La version bêta de la 10.4.2 sera une version bêta NDA, exigeant des participants qu'ils signent notre accord de non-divulgation avant de pouvoir participer à la version bêta. L'un des avantages de l'abonnement aux mises à jour est de pouvoir participer aux bêtas et de fournir un retour d'information à la gestion des produits dès le début du cycle de développement.
Pour la 10.5, nous prévoyons d'introduire une nouvelle plateforme cible pour Delphi, macOS ARM (basé sur les CPU Apple Silicon), un travail important autour du support IDE HighDPI, des extensions de la chaîne d'outils C++, et beaucoup d'autres fonctionnalités et améliorations de la qualité. Voir ci-dessous pour plus de détails.
Calendrier de la feuille de route RAD Studio
Avant d'entrer dans les détails des fonctionnalités sur lesquelles l'équipe de développement travaille aujourd'hui ou qu'elle étudie pour l'avenir, jetons un coup d'œil sur le calendrier des prochaines versions, comme le montre la diapositive principale de la feuille de route :

Commentaire de David sur les plans 10.4.2
Delphi Code Insight
Comme Marco l'a écrit plus haut, dans la version 10.4.1, nous nous sommes fortement concentrés sur la qualité. Non seulement la version 10.4.2 comprendra de nombreux correctifs et ajustements, ainsi que des fonctionnalités de code insight moins couramment utilisées que nous n'avons pas incluses dans la version initiale, mais aussi des fonctionnalités nouvelles ou améliorées de manière significative dans la complétion de code. Par exemple, nous prévoyons d'ajouter le ctrl-clic sur 'inherited', ainsi qu'une complétion retravaillée dans les clauses 'uses', entre autres.
Aperçu du code C++
C++ poursuit également le thème du travail continu sur la qualité, en mettant l'accent sur deux domaines.
Le plus visible pour tous les utilisateurs de C++ sera la révision complète de la complétion de code C++ lors de l'utilisation des compilateurs Clang. Dans la version 10.3, lorsque nous sommes passés à C++17, nous avons dû remplacer la technologie de complétion de code utilisée par l'IDE. Depuis son introduction, nous avons amélioré la complétion de code dans chaque version, en abordant les cas d'utilisation où des modèles de code spécifiques ou des configurations de projet pouvaient causer des problèmes de complétion.
Pour la version 10.4.2, nous avons décidé d'entreprendre une révision complète de la complétion de code pour C++, afin d'offrir aux développeurs la productivité qu'ils recherchent. Les utilisateurs de C++ devraient constater que la complétion de code et la navigation fonctionnent bien et de manière fiable.
Nous nous sommes même attaqués à des cas plus difficiles, tels que la complétion dans un fichier d'en-tête (beaucoup plus difficile que dans un fichier .cpp) ! Le résultat final devrait être à la hauteur de vos attentes.
Qualité du C++ et gestion des exceptions
L'autre point important en matière de qualité pour C++ dans la version 10.4.2 concerne la gestion des exceptions.
La gestion des exceptions est un domaine complexe, qui nécessite une interaction étroite entre le compilateur et le RTL pour fonctionner correctement. Il existe des conventions communes pour les exceptions, comme le fait de ne jamais permettre à une exception de franchir la frontière d'un module (par exemple, être lancée dans une DLL mais rattrapée dans un EXE), mais elles ne sont pas toujours respectées, parfois pour de bonnes raisons. En C++, nous devons gérer les exceptions C++, les exceptions OS et SEH, sans oublier la gestion des exceptions de Delphi.
Dans la version 10.4.2, nous avons remanié le système de gestion des exceptions. À l'approche de la sortie de la version, vous trouverez sur le blog un article détaillant les scénarios que nous prenons en charge. En interne, nous constatons actuellement de grandes améliorations !
L'IDE
En plus de l'accent mis sur la complétion de code pour les deux langues, l'IDE a d'autres travaux prévus pour la version 10.4.2.
En 10.3, nous avons introduit les deux thèmes actuels, un style clair et un style foncé (en fait, le style foncé, bien que très différent, a été introduit pour la première fois en 10.2.3. C'était l'une de nos fonctionnalités les plus populaires). Le style clair est principalement bleu pâle. Cette version ajoute un troisième style, dont les couleurs principales sont le gris traditionnel et non le bleu. Il s'agit d'un style rétro pour ceux qui aiment l'apparence de l'IDE autour de l'ère 2010-XE7, un rappel à l'apparence classique. Nous pensons également qu'il peut être utile pour ceux qui ont besoin d'aménagements spéciaux pour leur vue.
Nous prévoyons également d'autres travaux de qualité concernant les dispositions de bureau, les dispositions multi-moniteurs, la conception de formulaires et d'autres domaines similaires. Il s'agit notamment de vous permettre de concevoir votre formulaire dans le concepteur de formulaire en même temps que le code de ce formulaire est ouvert. D'après les commentaires, c'était la raison la plus fréquente pour laquelle vous utilisiez l'ancien concepteur masqué, que nous avons supprimé dans la version 10.4.1, et nous sommes heureux de vous permettre de coder et de concevoir dans une unité de formulaire à l'aide du concepteur moderne.
Enfin, nous voulons améliorer la Outil de migration des paramètresNous avons ajouté des configurations prédéfinies, afin de faciliter le transfert des paramètres RAD Studio d'une version à l'autre (comme de 10.3 à 10.4) et de mieux préserver votre configuration lorsque vous passez à une version de mise à jour (comme de 10.4.1 à 10.4.2). Nous prévoyons d'ajouter des configurations prédéfinies spécifiques pour chaque scénario et d'inclure des fichiers de configuration en plus des paramètres de registre envisagés aujourd'hui.
Commentaire de Marco sur les plans 10.4.2
En termes de systèmes d'exploitation ciblesEn ce qui concerne la version 10.4.2, nous nous concentrons actuellement sur l'amélioration des plates-formes existantes prises en charge par la version 10.4.x, et nous travaillons sur deux domaines principaux.
La première s'inscrit dans le cadre de notre focalisation continue sur Windows en tant que cible principale. Sur le système d'exploitation Microsoft, nous suivons de près l'orientation actuelle de Microsoft d'unifier l'API WinRT et l'API Win traditionnelle, via le projet Réunion. Projet Réunion (https://github.com/microsoft/ProjectReunion) comprend différentes technologies, les premières étant WinUI 3, WebView2 et MSIX.
Le contrôle WebView2 est un nouveau composant de plateforme Windows intégrant Edge Chromium. Nous avons pris en charge cette fonctionnalité dans la version 10.4 avec le composant VCL TEdgeBrowser.
La deuxième pierre à l'édifice sera la prise en charge du format d'emballage MSIX que nous prévoyons pour la version 10.4.2. MSIX est le successeur d'APPX, une cible que nous proposons actuellement dans le cadre de l'intégration du pont RAD Studio IDE Desktop, et est destiné au Microsoft Store et au déploiement en entreprise.
L'ajout de deux nouveaux contrôles destinés à aider nos clients à moderniser et à améliorer l'interface utilisateur de leurs applications est un autre aspect de notre soutien amélioré à la plate-forme Windows, et en particulier aux applications VCL. Nous travaillons sur de nouveaux contrôles Windows natifs VCL, afin que vous puissiez offrir une interface utilisateur plus moderne à vos clients :
- L'un d'eux est une vue de liste virtuelle hautement optimisée, qui vous permettra d'afficher un grand nombre d'éléments avec une combinaison flexible de texte et de graphiques. Le contrôle sera vaguement basé sur l'approche du contrôle DBCtrlGrid existant, mais sans nécessiter de source de données. Il prendra en charge l'utilisation de Live Bindings.
- L'autre nouveau composant VCL que nous ajoutons est un contrôle de saisie numérique, similaire au contrôle de plateforme WinUI NumberBox. Ce contrôle permet une saisie numérique plus facile et plus fluide, en tenant compte des différents formats (entiers, nombres à virgule flottante, valeurs monétaires) et en incluant également l'évaluation d'expressions simples.
La deuxième partie de nos améliorations porte sur les plateformes cibles actuellement prises en charge. Nous prévoyons d'assurer une compatibilité totale avec les nouvelles versions des systèmes d'exploitation publiées par Apple et Google après la sortie de RAD Studio 10.4.1. Bien que vous puissiez cibler ces plateformes aujourd'hui, il y a quelques problèmes ouverts que nous voulons résoudre correctement (plutôt que par des solutions de contournement). L'objectif est d'avoir un support complet pour :
- iOS 14 et iPadOS 14 (Delphi et C++)
- macOS 11.0 Big Sur (Intel) (Delphi)
- Android 11 (Delphi)
En termes de qualitéAvec la version 10.4.2, nous poursuivrons nos efforts en matière de stabilité, de performances et de qualité (comme nous l'avons fait avec la version 10.4.1). Nous prévoyons de traiter les problèmes signalés par les clients et les demandes d'assistance dans de nombreux domaines du produit. Tools et les bibliothèques sur lesquelles nous allons particulièrement nous concentrer, en plus de celles énumérées par David plus tôt, incluent :
- Le compilateur Delphi (pour toutes les plateformes) pour améliorer sa robustesse et sa rétrocompatibilité, mais un accent particulier et profond sur la performance du compilateur (et de l'éditeur de liens) pour réduire le temps de compilation pour les grands projets et également accélérer le moteur LSP (qui utilise le compilateur pour analyser le code source).
- La bibliothèque SOAP Client et l'outil d'importation WSDL qui génère le code client utilisé pour l'interface avec les serveurs SOAP.
- La bibliothèque de programmation parallèle (PPL), qui offre une grande abstraction des capacités de threading des différentes plates-formes et des CPU multi-cœurs, en termes de tâches, de futurs et de boucles for parallèles.
- Les solutions de services web multi-tiers font partie de RAD Studio, avec des améliorations à la fois pour RAD Server et pour l'ancien moteur DataSnap, ainsi que des améliorations générales pour les bibliothèques client HTTP et REST. Nous allons également continuer à nous concentrer sur le support d'Azure et d'AWS.
- Les styles VCL et les styles HighDPI vont faire l'objet d'une attention particulière, de même que VCL en général.
- Pour la bibliothèque FireMonkey, nous continuons à améliorer les composants TMemo (dans les versions plateforme et stylisée), le pilote de la bibliothèque GPU Metal introduit dans la version 10.4, et nous retravaillons la gestion des capteurs sur Android, afin d'offrir un meilleur support pour une variété d'appareils Android.
RAD Studio 10,5
Pour référence, voici à nouveau la diapositive principale de la feuille de route :

Commentaire de David sur les plans 10.5
Expérience de l'utilisateur
Nous avons prévu pour la version 10.5 un certain nombre de nouvelles fonctionnalités, très attendues par de nombreux clients.
Tout d'abord, nous prévoyons une prise en charge complète de la haute résolution dans l'IDE. Le VCL supporte la haute résolution depuis quelques versions maintenant, et l'IDE RAD Studio, qui utilise principalement le VCL, supportera également la haute résolution. Cela garantit un rendu net sur tous les écrans modernes à haute résolution, y compris lorsque vous déplacez des fenêtres sur des écrans de résolutions et d'échelles différentes.
Le concepteur de formulaires VCL est l'un des principaux outils que vous utilisez lors de la création de votre application. L'intérêt du concepteur est de construire rapidement une interface utilisateur proche de ce qu'elle sera lors de l'exécution de l'application, contrairement aux outils d'interface utilisateur qui ne décrivent l'interface qu'en texte et ne fournissent pas de retour d'information immédiat ni de boucle d'itération. Dans la version 10.5, nous prévoyons d'étendre cet élément de ressemblance avec l'apparence de votre application lorsqu'elle sera exécutée en ajoutant la prise en charge des styles VCL au concepteur, de sorte que lorsque l'un de vos contrôles est stylisé, vous le verrez également stylisé dans le concepteur.
Le concepteur de formulaires FMX est également un outil essentiel lorsque vous créez une application multiplateforme. Nous prévoyons d'intégrer certains des outils de conception dont dispose le concepteur VCL, tels que les guides d'alignement, afin de garantir que le concepteur dispose des fonctions de productivité dont vous avez besoin.
Nous prévoyons également de nous concentrer sur l'intégration du contrôle de source de l'IDE, afin de faciliter la collaboration au sein de votre équipe. De plus, nous prévoyons d'améliorer la présentation de l'IDE lors de sa première utilisation, afin d'aider les nouveaux utilisateurs de Delphi et C++Builder à démarrer.
Enfin, de nombreux clients utilisent Delphi ou C++Builder sur un serveur de compilation dédié. En plus du contrôle de source, des tests et d'autres pratiques similaires, c'est une bonne pratique d'avoir des builds officiels sur une machine spécifique ou une VM. Actuellement, pour installer RAD sur un serveur de build, vous devez installer l'IDE complet - mais cela ne devrait pas être nécessaire, car le build ne nécessite que les outils en ligne de commande. Nous prévoyons un scénario d'installation spécifique pour les serveurs de construction.
C++Builder
Dans la version 10.4.0, nous avons introduit un nouveau débogueur pour C++ Win64. Cela répondait à une demande fréquente des clients, en particulier parce que nous avons inclus des "formateurs", un moyen d'évaluer facilement le contenu des conteneurs STL ou de n'importe quelle structure de données, y compris la vôtre. Il s'agissait d'un tout nouveau débogueur, et non d'une nouvelle version de celui que nous utilisions précédemment. Dans la version 10.5, nous prévoyons un remplacement similaire pour un autre outil essentiel, l'éditeur de liens. Comme le débogueur, il sera pour Win64.
Vous remarquerez que nous mettons l'accent sur Windows 64 bits. De nombreux clients utilisent Clang pour cibler Win64, et nous voulons nous assurer que notre outil est égal ou supérieur à l'outil auquel vous êtes habitué avec le compilateur classique. En outre, de nombreuses personnes commencent à s'intéresser exclusivement au 64 bits, les applications 32 bits étant mises à jour et les nouvelles applications étant exclusivement 64 bits.
Visual Assist est une extension de productivité étonnante pour Visual C++, offrant la complétion de code, des refactorisations, et plus encore. Nous avons recherché différentes façons de l'intégrer dans C++Builder, et nous prévoyons de le faire dans la version 10.5.
Enfin, nous prévoyons également d'améliorer l'interopérabilité Delphi/C++. La possibilité d'utiliser deux langages est un important gain de productivité et l'une des principales raisons d'utiliser C++Builder ou RAD Studio, et ce travail vise à peaufiner cette intégration. Il devrait permettre une intégration plus fluide des fonctionnalités RTL.
Débogueur Delphi
Dans la version 10.4, nous avons introduit un tout nouveau débogueur pour C++ Win64 (voir ci-dessus) basé sur LLDB. Ultimate Nous souhaitons utiliser le même débogueur sur toutes les plates-formes - aujourd'hui, nous utilisons un mélange de différents débogueurs. L'élément clé est l'ajout d'un frontal de langage Delphi à LLDB, qui vous permet d'évaluer la syntaxe Delphi dans, par exemple, la boîte de dialogue Évaluer/Modifier. Nous prévoyons d'introduire la première plate-forme utilisant LLDB avec ce nouveau frontal dans la version 10.5.
Commentaire de Marco sur les 10,5 plans
Plates-formes
En ce qui concerne la plate-forme Windows, comme nous l'avons déjà mentionné, nous prévoyons d'offrir un support pour les différentes technologies qui font partie de Microsoft Project Reunion. En particulier, dans la version RAD Studio 10.5, nous sommes impatients d'intégrer la prise en charge de l'interface utilisateur moderne de Windows via la bibliothèque WinUI 3. Selon la feuille de route de Microsoft pour cette bibliothèque, il devrait être possible d'utiliser les composants de cette bibliothèque dans une application native basée sur l'API classique, en mélangeant des formulaires et des contrôles de différents types. Les détails réels dépendront de ce que la bibliothèque offrira en termes d'intégration avec les applications natives, mais notre plan actuel est d'intégrer cette bibliothèque dans la VCL avec de nouveaux contrôles spécifiques.
En parlant de plateformes, nous voulons ajouter une nouvelle cible pour les applications Delphi : un nouveau compilateur pour la version ARM du système d'exploitation macOS avec du matériel Apple alimenté par des CPU Apple Silicon. Bien que vous puissiez exécuter des applications Intel, l'objectif est d'avoir une application ARM native pour la nouvelle génération de Macs.
Il s'agira d'une extension significative de Delphi, comprenant un nouveau compilateur, des mises à jour de la bibliothèque d'exécution et des diverses bibliothèques de haut niveau. Nous prévoyons également d'étendre la syntaxe du langage Delphi à toutes les plateformes et d'améliorer les performances du code de traitement mathématique généré par le compilateur sous Windows, afin de rendre les applications plus rapides dans le traitement numérique.
Nous continuerons également à travailler sur la qualité globale du produit et prévoyons de sélectionner quelques sous-systèmes sur lesquels nous nous concentrerons, une décision que nous prendrons en évaluant les commentaires des clients sur la version actuelle et les mises à jour à venir.
Résumé
Nous avons de grands projets pour les prochaines versions de Delphi, C++Builder et RAD Studio ! Des changements passionnants à la complétion de code pour les deux langages, à un IDE à haut DPI, des améliorations de la productivité lors du codage et de la conception, l'interface Windows et de nouveaux composants VCL, le débogage Delphi, le support Apple Silicon (M1) pour Delphi, un travail de qualité pour les compilateurs, Delphi et C++ RTL, SOAP, multi-tier et plus encore, un nouveau linker pour C++ - les prochaines versions contiennent des travaux vraiment passionnants. Nous sommes impatients de vous les présenter !
Remarque : Ces plans et cette feuille de route représentent nos intentions à cette date, mais nos plans de développement et nos priorités sont susceptibles de changer. En conséquence, nous ne pouvons offrir aucun engagement ou autre forme d'assurance que nous publierons finalement tout ou partie des produits décrits dans le calendrier ou dans l'ordre décrit, ou même que nous les publierons tous. Ces indications générales sur les calendriers de développement ou les "feuilles de route des produits" ne doivent pas être interprétées comme une forme d'engagement, et les droits de nos clients en matière de mises à niveau, de mises à jour, d'améliorations et d'autres versions de maintenance seront définis uniquement dans l'accord de licence de logiciel applicable.

