Microsoft a annoncé l’arrivée d’un nouveau membre dans la famille des outils de projection de langage dont fait partie C++/WinRT. C’est Rust/WinRT qui vient de faire son entrée. C’est une projection du langage Rust entièrement standard pour les API Windows Runtime, implémentée comme une bibliothèque basée sur des fichiers d'en-tête, et conçue pour vous fournir un accès de première classe à l'API Windows moderne. Il a désormais une prévisualisation publique sur GitHub. Rust continue de séduire Microsoft.
Windows Runtime (WinRT) est le Runtime de Windows. Il constitue la base des applications de la Plateforme universelle de Windows (UWP). Il se base sur les API COM (Component Object Model) sous le capot et il est conçu pour être accessible par des projections de langage. WinRT peut également être utilisé pour des choses comme les pilotes, ce qui se prête à un code natif très performant. Microsoft soutient principalement ce cas d'utilisation avec C++/WinRT. Mais depuis ce jeudi, Rust a rejoint C++ avec Rust/WinRT. Une bonne nouvelle pour les développeurs Rust.
En effet, ces projections de langage prennent les métadonnées décrivant les différentes API et fournissent des liaisons naturelles pour le langage de programmation cible. Comme vous pouvez l'imaginer, cela permet aux développeurs de créer plus facilement des applications et des composants pour Windows en utilisant le langage de leur choix. Vous pouvez alors utiliser ces API Windows pour créer des applications de bureau, des applications de stockage ou quelque chose de plus unique comme un composant, un service NT ou un pilote de périphérique.
Rust/WinRT suit la tradition établie par C++/WinRT de construire des projections de langage pour le Runtime Windows en utilisant des langages et des compilateurs standards, fournissant une manière naturelle et idiomatique pour les développeurs Rust d'appeler les API Windows. Il permet d'appeler toute API WinRT passée, présente et future en utilisant du code généré à la volée directement à partir des métadonnées décrivant l'API et directement dans votre paquet Rust où vous pouvez les appeler comme s'il s'agissait d'un module Rust parmi d'autres.
« Microsoft a longtemps dépendu du C++ comme épine dorsale pour une grande partie de ses activités, mais elle doit relever certains défis, notamment en matière de sécurité. Le C++ moderne facilite certainement l'écriture d'un C++ sûr et sécurisé si vous suivez certaines conventions prudentes, mais cela est souvent difficile à appliquer sur des projets plus importants. Rust est un langage intrigant. Il ressemble beaucoup au C++ à bien des égards, et il a toutes les qualités requises pour la compilation, le modèle d'exécution, le système de types et la finalisation déterministe », a écrit Microsoft dans un billet de blogue.
« Bien qu'il ait sa propre courbe d'apprentissage unique, il a aussi le potentiel de résoudre certains des problèmes les plus contrariants qui affligent les projets C++. Il est conçu à partir de zéro avec la sécurité de la mémoire et la concurrence sûre comme principes de base », a-t-il ajouté. L'adoption de Rust par Microsoft n’est pas surprenante, car dernièrement, la firme n’a pas cessé de louer les performances du langage développé par Mozilla. L’été dernier, elle a déjà recommandé l’utilisation de Rust comme approche proactive pour un code plus sécurisé.
Selon Microsoft, le C++ a des vertus qui le rendent attrayant et parfois essentiel. Il est très rapide, mature ; avec une exécution prévisible, une faible empreinte mémoire et disque, une plateforme presque inégalée, etc., et vous pouvez l’utiliser sans être obligé d’installer des composants supplémentaires. Ainsi, il estime que si les développeurs pouvaient avoir toutes les garanties de sécurité de la mémoire de langages comme .NET C# combinés à toute l’efficacité du C++, cela leur permettrait de ne pas introduire certains défauts dans leurs logiciels.
« L’un des langages de programmation les plus récents et les plus prometteurs qui répondent à ces exigences est le langage de programmation Rust initialement développé par Mozilla », a expliqué l’équipe Microsoft Security Response Center (MSRC). Toutefois, Microsoft n’est pas la seule entreprise qui plébiscite Rust pour une programmation plus sécurisée. D’autres grands noms de la technologie et de petites entreprises ont commencé à compter sur Rust comme un élément clé dans leur travail. Parmi elles, il y a npm Inc, la société derrière npm, le gestionnaire de paquets de Node.js.
En février 2019, l’entreprise a publié un rapport d’étude avançant que le langage de programmation Rust possède une meilleure façon de gérer les dépendances que d’autres langages tels que Go, C et C++. L’équipe a donc choisi Rust pour faire une nouvelle implémentation d’un service du registre npm pour éviter à la longue les problèmes de performance. Enfin, Microsoft a déclaré que Rust/WinRT est une avant-première publique très précoce, mais que l’équipe a désormais décidé de travailler au grand jour.
Sources : Microsoft, Rust/WinRT
Et vous ?
Qu'en pensez-vous ?
Voir aussi
L'équipe Microsoft Security Response Center recommande l'utilisation de Rust comme approche proactive pour un code plus sécurisé
L'équipe de npm choisit Rust pour gérer les goulots d'étranglement liés au CPU au détriment de Go, C, C++ et Java. Voici les raisons de ce choix
Quel langage pourrait remplacer C ? Après avoir comparé Go, Rust et D, le choix d'Andrei Alexandrescu se porte sur D
C2Rust : un outil qui permet de faire la traduction et la refactorisation de votre code écrit en langage C vers le langage Rust
Microsoft annonce Rust/WinRT, une projection du langage Rust pour les API Windows Runtime
Implémentée comme une bibliothèque basée sur des fichiers d'en-tête
Microsoft annonce Rust/WinRT, une projection du langage Rust pour les API Windows Runtime
Implémentée comme une bibliothèque basée sur des fichiers d'en-tête
Le , par Bill Fassinou
Une erreur dans cette actualité ? Signalez-nous-la !