Top 6 des langages de développement IoT

21 avril 2020

Le nombre de développeurs IoT continue de progresser et l’on prévoit un taux de croissance du marché de 10% par an jusqu’à 2030. Au sein de l’industrie IoT, plusieurs langages de programmation ont la côte. C’est particulièrement le cas de 6 d’entre eux : Java, C, Python JavaScript, Swift et Php.

Java

Java est un langage qui comporte de multiples avantages pour le développement IoT. Celui-ci est surtout utilisé est dans le cadre du développement de set-top boxes, qui est l’un des premiers domaines de l’informatique hors desktop.

Les avantages de Java sont bien connus : les développeurs peuvent déboguer leur code depuis leur bureau et puis le déplacer vers n’importe quelle puce avec une Machine Virtuelle Java. Le code peut donc fonctionner non seulement sur les serveurs et smartphones, mais aussi sur des plus petites machines.

Java SE Embedded permet d’envoyer ce code a de très petites machines et offre plus de possibilités que n’en n’offrait Java ME. Les développeurs peuvent utiliser les dernières fonctionnalités de la plateforme Java 8 pour envoyer leur code à des cartes embarquées de très petite taille.

Plusieurs projets open source comme Pi4J et BlueJ montrent que la version embarquée de Java fonctionne très bien, y compris sur des puces semblant limitées.

C

Malgré un syntaxe parfois indigeste et un million de possibilités de faire des erreurs, le langage C est encore le premier choix de beaucoup de développeurs bas niveau, en particulier pour ceux ayant déjà un peu d’expérience en hardware. Le langage permet de réaliser de très nombreux tests en modifiant telle ou telle partie du code pour obtenir la meilleure performance possible à partir d’un dispositif peu puissant. Chaque bit peut être inversé, et chaque valeur de la stack est disponible. Il est cependant préférable de ne pas réaliser trop d’erreurs, car le langage C n’offre pas beaucoup de filets de sécurité.

Pour de nombreux CTO, C demeure un langage de premier choix pour les dispositifs à ressources restreintes, comme un planificateur de tâches basique lui aussi codé en C.

Des dispositifs plus avancés ou plus gros utilisent également le langage C, mais Java lui est de plus en plus préféré dans ce type de cas.

Côté smartphone, une partie de la programmation est encore délivrée en Objective C, mais Swift est en passe de dépasser sa popularité.

Python

Python prend du gallon depuis deux ans et est en tête du classement général des langages de programmation de l’IEE. Pour des petits dispositifs ayant suffisamment de mémoire et de puissance informatique, les développeurs sont libres de choisir le langage qui leur facilitera la vie, et il se trouve que Python s’impose de plus en plus comme un choix fréquent.

A la fois facile à apprendre et supporté par une large communauté, Python est particulièrement pratique dans le cadre du développement IoT. Sa syntaxe est claire et simple, et attire de plus en plus de développeurs. Python est le langage idéal pour les microcontrôleurs les plus populaires du marché, Raspberry Pi. Une grande partie de la documentation est rédigée en Python, et beaucoup d’écoles utilisent la plateforme pour enseigner la programmation informatique. Si le projet est relativement simple et ne requière pas de grosse puissance, il est tout à fait possible de développer des outils efficaces à partir des mêmes librairies que celles utilisées à l’école.

Certaines versions sont aussi conçues pour les plus petits dispositifs, comme le MicroPython, un petit microcontrôleur optimisé pour exécuter Python en bare metal et offre un système d’exploitation bas niveau pour contrôler toute sorte de projets électroniques.

JavaScript

De manière assez surprenante, JavaScript est plutôt populaire pour le développement d’application IoT. La plupart des développeurs utilisent Node.Js et focalisent leur travail sur les serveurs et passerelles ou hubs rassemblant et stockant les informations. Les plus petits hubs et capteurs fonctionnant sur Linux peuvent généralement fonctionner sur Node.JS.

Mais même si la plus grande partie du code Node.JS fonctionne sur de plus grandes machines, plusieurs efforts sont faits pour lui permettre de fonctionner sur de plus petits dispositifs. De petits microcontrôleurs comme Tessel ou Espruino permettent d’exécuter le JavaScript, ce qui permet à certains développeurs de se mettre à l’IoT sans avoir à apprendre un nouveau langage.

Swift

Swift est de plus en plus populaire et dépasse progressivement Objective C dans le développement d’applications iOS et macOS. Etant donné la prépondérance de ces dispositifs sur le marché, il est logique que ce langage fasse souvent partie de la stack IoT. Pour interconnecter un objet avec un iPhone ou un iPad, l’application sera probablement codée en Swift.

Apple compte faire de ses dispositifs iOS le centre de la maison connectée du futur, si bien que l’entreprise a créé de nombreuses libraires et une infrastructure facilitant considérablement la prise en main du développement. La plateforme HomeKit d’Apple fournit un support pour intégrer les flux de données depuis un réseau d’objets compatibles. Il est donc possible de se concentrer sur les détails et de déléguer la supervision de l’intégration à HomeKit.

PHP

Si l’on comprend que la popularité du Php résiste au poids des années en web, on peut s’interroger sur les raisons de sa popularité pour le développement IoT. Php est pourtant un langage serveur idéal pour gérer les microservices. Mais le langage montre également un intérêt important en bas niveau. Plusieurs développeurs Raspberry Pi envisagent la mise en route d’une stack LAMP complète avec Apache, MySQL et Php s’exécutant sur Linux, et basculent de paradigme en transformant le plus bas niveau d’internet en un serveur web à part entière.

Lorsqu’un Raspberry Pi a suffisamment de cycles, la mise en place d’une stack LAMP sur la puce facilite le développement. Tout le code développé côté serveur au cours des 20 dernières années peut alors être envoyé sur un petit capteur. Pas très orthodoxe, mais visiblement efficace, alors, pourquoi s’en priver ?

L'auteur Julien Broue

Co-Founder

Julien Broue
Postuler à l'annonce Postuler à toutes les annonces Ingénieur système linux orienté web
Remplissez le formulaire
C'est tout bon

On vous recontacte au plus vite !
En attendant, vous pouvez toujours consulter nos autres jobs !

rotate screen

Retourner votre tablette pour une meilleure navigation