Un nouveau mode de compilation expérimental permet désormais d'utiliser Swift, un langage principalement connu pour le développement d'applications desktop et mobiles, dans le monde de l'électronique embarquée sur microcontrôleurs ARM et RISC-V.
C’est une initiative récente mais pas nouvelle qui propose une collection de projets exemples, démontrant l’applicabilité de Swift dans cet environnement contraint, malgré la désactivation de certaines fonctionnalités du langage pour s’adapter aux spécificités du firmware. L’intégration du langage Swift pour le développement sur des microcontrôleurs ARM et RISC-V représente une évolution significative pour les développeurs individuels et pour l’écosystème de développement en général. Swift est un langage de programmation puissant et moderne créé par Apple, a été initialement conçu pour le développement d’applications iOS et macOS. Son extension vers des systèmes embarqués basés sur des architectures ARM et RISC-V ouvre de nouvelles possibilités et présente plusieurs avantages :
- Son utilisation dans le contexte des microcontrôleurs permettra aux développeurs de créer des applications embarquées plus complexes et fiables avec moins de code et moins de chances d’erreurs courantes en C ou C++.
- Avec ses caractéristiques de sécurité de type et de gestion automatique de la mémoire, Swift réduit les erreurs courantes telles que les fuites de mémoire et les déréférencements de pointeurs nuls.
- Les développeurs peuvent donc intégrer Swift dans des projets existants ou utiliser des bibliothèques C/C++ sans réécrire entièrement le code existant.
- L’utilisation de Swift pour le développement sur microcontrôleurs ouvre la voie à un développement plus homogène et cross-platform
Swift s’invite dans l’électronique embarquée
Swift, un langage de programmation polyvalent et évolutif, franchit une nouvelle étape en s’adaptant aux environnements embarqués, spécifiquement les microcontrôleurs ARM et RISC-V. Ces derniers, au cœur de nombreux projets électroniques professionnels et amateurs, notamment les dispositifs IoT, bénéficient désormais d’un mode de compilation expérimental de Swift. Cette adaptation permet de produire des binaires autonomes, en dépit de l’inactivation de certaines fonctionnalités telles que la réflexion à l’exécution, la stabilité ABI, et les existentialités, pour rester en adéquation avec les contraintes des microcontrôleurs.
Un langage adapté et accessible
Malgré ces ajustements, Swift conserve sa facilité d’usage et son expressivité caractéristique, offrant ainsi aux développeurs un environnement familier pour la création de code pour firmware. Le Document de Vision de Swift Embarqué, accepté formellement, détaille ces innovations et invite à expérimenter via des chaînes d’outils téléchargeables quotidiennement. Cette initiative souligne l’engagement de Swift à rester un langage de choix pour divers domaines de programmation, étendant son applicabilité bien au-delà du développement d’applications classiques.
Un écosystème en expansion
La communauté Swift a rapidement embrassé cette nouvelle possibilité, en publiant plusieurs projets intrigants utilisant ce mode de langage. Pour illustrer la diversité des applications possibles, un répertoire d’exemples de projets, swift-embedded-examples, a été mis en ligne. Ce dernier offre un aperçu de la large applicabilité de Swift dans l’électronique embarquée, avec des exemples variés ciblant des microcontrôleurs comme les cartes STM32, le Raspberry Pi Pico, les cartes Nordic Semiconductor, et même les cartes RISC-V ESP32. Ces exemples illustrent également différentes systèmes de construction et options d’intégration, y compris la création de code Swift totalement autonome et le pontage avec les SDK existants des fabricants de cartes.
Une invitation à la collaboration
Ce mouvement n’est qu’à ses débuts, et l’invitation est lancée à tous ceux qui souhaitent explorer les potentialités de Swift dans l’embarqué. Les contributions communautaires sont encouragées pour enrichir le répertoire avec davantage de cartes microcontrôleurs, de systèmes de construction, et d’exemples d’utilisation de périphériques simples. C’est une opportunité unique de participer à l’élargissement de l’écosystème Swift, en explorant de nouvelles frontières de la programmation embarquée.
L’arrivée de Swift dans l’univers des microcontrôleurs (un microcontrôleur contient tout CPU, ROM, RAM, périphériques) dans une seule puce marque une évolution notable dans le monde de la programmation embarquée. En dépit des contraintes inhérentes à ces environnements, Swift promet de maintenir son essence : un langage expressif et efficace. Cette expansion pourrait significativement démocratiser le développement sur microcontrôleurs, en rendant cet espace plus accessible aux développeurs venant d’horizons divers. La clé du succès résidera dans la capacité de la communauté à s’approprier ces outils et à innover, ouvrant ainsi la voie à des applications inédites et à des projets d’électronique embarquée plus ambitieux.