Lorsque vous pensez aux langages de programmation dans le domaine de l'embedded engineering, vous pensez immédiatement à C ou C++. Ce sont souvent les langages de programmation qui sont encore utilisés en standard dans l'embedded, et avec lesquels la plupart des programmeurs sont familiers. 

Le plus gros inconvénient du C, bien sûr, est son memory management (pointers, anyone ?). Comme les programmeurs doivent s'en charger eux-mêmes, des erreurs se produisent souvent. Et de nombreux bugs sont en fait causés par des problèmes de mémoire. Comment résoudre ce problème ?

Il y a environ 11 ans, les employés de Mozilla en avaient marre des erreurs qui se glissent rapidement dans les langages de programmation tels que C ou C++. C'est pourquoi ils ont commencé le développement d'un nouveau langage de programmation, tout aussi efficace que les langages existants, mais qui garantit également un code sûr : Rust.

langage de programmation rust.

Rust est un langage de programmation, mais ce n'est pas un langage de programmation classique comme C ou C++. Rust prévient les erreurs de mémoire sans l’overhead d’un garbage collector et permet la concurrency sans data races, ce qui en fait un langage plus sûr. En outre, Rust est au moins aussi rapide que les langages de programmation classiques, voire plus rapide dans certains cas.

man and woman talking behind computer screen
man and woman talking behind computer screen

D'accord, nous vous entendons penser, mais Rust est-il aussi performant que d'autres langages de programmation ? En effet ! Vous pouvez construire des applications aussi nombreuses et aussi étendues avec Rust qu'avec n'importe quel autre langage de programmation. Quelques exemples de logiciels et d'applications pour lesquels Rust est bien adapté :

  • firmware
  • embedded software
  • games
  • (device) drivers
  • systèmes de contrôle
  • applications

qui utilise rust ?

Ces dernières années, Rust a gagné en popularité en tant que langage de programmation. De nombreuses grandes entreprises ont déjà adopté ce langage, par exemple :

quelle est l’histoire d’origine de rust ?

Rust a été initialement développé pour résoudre 2 problèmes :

  • sécuriser la programmation
  • faciliter la concurrency

La principale cause des bugs de mémoire ou de concurrency, est le code qui lit ou modifie des données alors qu'il n'est pas censé le faire. Rust tente de prévenir ces bugs en utilisant l’ownership : une façon de rendre l'écriture et la lecture des variables plus sûres, que les programmeurs système essaient souvent de suivre eux-mêmes, et que le compilateur de Rust vérifie statiquement.

Rust s'appuie également sur l’ownership lorsqu'il s'agit de la mémoire. Il vous permet de programmer sans l’overhead d’un garbage collector, et sans craindre les erreurs de segmentation. Rust intercepte vos erreurs lorsque vous compilez votre code, et vous donne la possibilité de corriger les problèmes avant que le code ne puisse être exécuté avec un bug. Pratique, car plus vite vous trouvez et corrigez un bug dans le processus de développement, plus vous en tirez profit.

En ce qui concerne la concurrency, Rust signifie que vous pouvez programmer sans data races et que vous pouvez choisir parmi un grand nombre de paradigmes tels que le shared-state, le lock-free ... Rust vous aidera à éviter les erreurs courantes.

Male and female colleague talking while sitting at a table.
Male and female colleague talking while sitting at a table.

les avantages de rust.

Si vous êtes habitué à d'autres langages de programmation, vous pouvez hésiter à passer à un nouveau langage tel que Rust. 

D'autant plus car la migration d'une langue à une autre n'est pas toujours évidente. Mais les créateurs de Rust ont également pensé à cela : Rust est interopérable et fonctionne facilement avec C, C++, Python ... Vous ne devez pas réécrire l'ensemble de votre base de code lorsque vous souhaitez passer à Rust. Par exemple, vous pouvez commencer par les parties qui présentent un risque élevé de problèmes de sécurité et de mémoire, puis passer aux parties moins critiques lorsque vous avez le temps. 

avantages généraux.

Rust présente de nombreux avantages en tant que langage de programmation. Par exemple, le compilateur de Rust vérifie les erreurs de gestion de la mémoire et est donc plus sûr que C et C++. En outre, Rust est rapide, au moins aussi rapide que C et C++. Ce langage peut aussi être utilisé pour de nombreuses applications différentes. Si vous utilisez Rust, vous devenez membre d'une communauté en pleine expansion. Et finalement, Rust offre un build system et package manager puissants.

avantages par rapport à d'autres langages.

Rust aura bien sûr d'autres avantages, en fonction du langage de programmation auquel vous êtes habitué. Nous avons répertorié pour vous certains de ses avantages par rapport aux autres langages de programmation. 

c.

  • rust garantit une mémoire 100% sûre
  • vous n'avez plus à vous soucier des segfaults.
  • la syntaxe de rust est plus conforme aux langages high-level

c++.

  • rust offre un support de test intégré
  • vous pouvez facilement gérer les parties d'un projet grâce à cargo : le package manager de rust

java.

  • garantie sur la thread safety
  • pas de race conditions

c#.

  • garantie sur la thread safety
  • pas de race conditions

python.

  • possibilité d’interopérabilité via pyo

les inconvénients de rust.

Bien sûr, il n'y a pas que le soleil et les roses. Ce langage de programmation (relativement) nouveau présente également quelques inconvénients. La programmation elle-même n'est pas toujours aussi rapide, ou du moins pas aussi rapide que, par exemple, Python ou Ruby. La courbe d'apprentissage est également très raide, sauf si vous avez déjà une connaissance approfondie du C++ ou d'un autre langage de programmation orienté objet. Mais si vous faites le calcul, vous verrez rapidement que les avantages de cette langue l'emportent sur les inconvénients. 

à propos de l'auteur
Portrait of Kris van der Stappen
Portrait of Kris van der Stappen

devon kerkhove

senior account manager

Travailler chaque jour sur la technologie (invisible) de demain, avec nos clients, c'est notre raison d'être. Mordu des embedded systems, désireux d'innover.