Evolution des langages et Micropython

Les langages informatiques sont apparus dans les années 1970, notamment le C.

Le C est une sorte de surcouché légère à l'assembleur, l'assembleur étant lui-même une surcouche légère au langage binaire (0/1).

Le binaire est tout simplement illisible humainement.

L'assembleur est par contre peu concis (très nombreuses opérations pour une action que l'on considère simple au final) et humainement peu lisible.

Le C est ainsi venu apporter une compatibilité avec l'homme : le langage utilise des mot, une organisation logique, une syntaxe, est humainement lisible... tout en étant facile à "traduire" pour le matériel, ce que l'on appelle compiler.

Par contre le C garde malgré tout une certaine "rudesse" ou "sobriété"... et il n'est pas forcément très "friendly" pour certaines actions ou opérations. Des besoins plus élaborés sont également assez vite apparus, notamment la notion d'objets ayant des méthodes et des propriétés. Ainsi le C++ apparaît comme une évolution du C vers la programmation orienté objet.

D'autres langages sont apparus de façon parallèle :

  • le Java, avec une ambition multiplateforme
  • le Javascript, qui est le langage du navigateur Web
  • le Python, qui est un langage interprété

Ces différents langages sont dits de "haut niveau", et ils offrent une souplesse et facilité de programmation qui est supérieure au C.

La liste de tous les langages serait longue... mais voici pour les plus importants. Et qu'a-t-on constaté sur les ordinateurs de bureau : l'évolution progressive vers les langages de plus haut niveau car finalement ils améliorent grandement l'efficacité à coder, rendent les codes plus faciles à maintenir, etc.

IL N'Y A AUCUNE RAISON POUR QUE CETTE EVOLUTION N'AIT PAS LIEU SUR LES MICRO-CONTROLEURS, l'homme étant l'homme, le besoin est le même.

Et c'est ce qui se passe. La seule raison pour laquelle cela n'est pas arrivé avant, c'est que les microcontrôleurs n'étaient pas assez puissants, trop coûteux et aussi pour une part car le C dans ce contexte est le langage qui permet de tirer pleinement parti des ressources du microcontrôleurs. Mais les capacités évoluant, comme pour les ordinateurs de bureau, l'implémentation de langages de haut niveau devient possible, et elle devient du même coup désirable vu le bénéfice en terme de codage qu'apportent ces langages.

Il existe ainsi un portage de Javascript sur Microcontrôleur https://www.espruino.com/

Et donc, il existe le portage de langage Python du Microcontrôleur avec MicroPython.

Le langage Python devient le langage dominant dans un contexte d'ordinateur de bureau, systèmes, et il n'y a pas de raison qu'il n'en soit pas de même pour les microcontrôleurs.

Une question que l'on peut se poser, c'est pourquoi le Python est un des premiers langages portés sur base Microcontrôleur ?

La réponse est probablement double :

  • la première c'est qu'il est construit sur du code C, donc facile à implémenter dans un contexte de codage C

  • mais surtout, parmi les langages évolués, il est relativement peu gourmand et léger en ressources. C'est d'ailleurs comme cela que je l'avait découvert, dans le contexte d'une utilisation sur nano-pc. Le langage Java que j'utilisais alors était lourd... et le Python lui était léger.... La preuve de cette "légèreté" est finalement confirmée par son apparition sur les micro-contrôleurs.

Micropython a un probablement un très grand avenir sur carte Microcontrôleur, notamment si des cartes low-cost telle que le Pi Pico existent : le dernier frein, le prix, pour une utilisation à grande échelle et par le plus grand nombre est levé. Et cette rupture ouvre une période tout à fait passionnante et intéressante. Longue vie à Micropython !