Rust : un langage mieux que les autres ?

1

Découverte de Rust

La version stable de Rust (1.0) est sortie en mai 2015, je l’ai découverte en faisant de la veille technologique sur le site www.developpez.com . Mozilla présentait son langage prometteur en version 0.6. Il l’annonçait comme le remplaçant de C++ en plus sécurisé avec une bonne gestion de la concurrence. Après avoir lu l’article, j’étais un peu sceptique. Le C++ est présent depuis plus de 40 ans et des langages plus sécurisés avaient déjà vu le jour comme du C# ou du Java.
Mozilla s’est engagé à sortir une nouvelle version du langage tous les 6 mois afin de favoriser l’agilité et d’intégrer au maximum les retours de la communauté. Ils réfléchissaient à ce langage depuis 2006 et ont sortit la première version en 2012. Trois mois après, pour la version 0.9 j’ai relu un article sur le même site. Un commentaire sur l’article disait :

Rust est un langage exigeant mais qui nous le rend bien

Après avoir lu ce commentaire, j’ai décidé d’aller un peu plus loin. Sur Google j’ai rapidement trouvé un tutoriel officiel très bien fait. rustbyexample.com
Et là l’aventure a commencé.

Mes premières lignes (ou test) avec Rust

exemple programmation Rust

Comme on peut le voir sur cette image, le Rust ça va vite !
En effet, avec une machine standard, ce mini serveur http peut répondre à plus de 100k req/s.
Pour développer j’ai utilisé le nouvel éditeur de texte de Microsoft (Visual studio code) mais n’importe quel éditeur fera l’affaire. Il peut être plaisant que l’éditeur gère les plugins pour avoir la complétion du langage. C’est pourquoi, Emacs, Visual studio code, Vim, SublimeText, Atom, … sont des éditeurs de textes parfaits pour faire du Rust.

 

Le gestionnaire de paquet de Rust.

Après avoir suivi les tutoriaux, j’ai décidé de faire quelques « cargo new » pour faire des tests. Cargo est le gestionnaire de paquet de Rust.

En effet, ce tout nouveau langage possède son gestionnaire de paquet.  Que ce soit C# avec Nuget, Java avec Maven et Graddle, Javascript avec Npm, etc… Cela permet de gérer facilement les dépendances. La particularité de Cargo est de pouvoir ajouter des dépendances sur des projets du gestionnaire de code source github.com.

 

AwsomeProject

Ces dernières années, il y a pas mal de projet Github qui ont vu le jour avec un référencement des meilleurs projets pour le langage. Il suffit juste de chercher « Github Awsome » sur Google pour s’en convaincre. En tous cas, on peut s’apercevoir que malgré sa jeunesse, Rust a sa Awsome page et elle est plutôt bien remplie.
https://github.com/kud1ing/awesome-rust

 

Création d’OS en Rust

Rust est un langage qui doit remplacer le C++. Donc, plusieurs projets d’operating system ont vu le jour sur Github :

  • [Redox] : https://github.com/redox-os/redox
    Le principal. Il est testable sur deux émulateurs différents. Il ne permet pas de faire tourner les derniers jeux mais toute la logique d’un OS y est présente : gestion de mémoire, gestion de fenêtres, drivers, …
  • [RustOS] :  https://github.com/ryanra/RustOS
    A l’abandon. Il avait bien débuté mais il ne semble plus maintenu. Il vaut mieux se concentrer sur le principal.

 

Que dit Tiobe à propos de Rust ?

Tiobe est un institut de Statistique qui détermine quelle est la particularité des langages de programmation se basant sur les recherches effectuées sur les différents moteurs de recherche. En août, Rust est le 42ème langage.
Rust est de plus en plus médiatisé. On peut aussi s’en apercevoir sur la plateforme de streaming www.livecoding.tv. Même si c’est encore le début il existe un certain nombre de stream sur Rust. Je pense qu’il faut vraiment plus de médiatisation à ce langage pour qu’il devienne plus populaire.

 

Conclusion

Quand on voit qu’au moins 20% de problèmes de sécurité sont dûs à des problèmes de mauvaise lecture mémoire.

Les bugs les plus durs à résoudre sont ceux des algos concurrents. Ces bugs sont parfois impossibles à reproduire. Avec les processeurs multicœurs, ces algos vont être de plus en plus fréquents.

Il est donc important de compter sur un langage qui nous permet d’éviter toutes ces erreurs.

De plus, Rust est un langage très expressif ce qui permet de connaitre plus facilement l’intention initiale du développeur. C’est là aussi un atout non négligeable à mon sens.

Pour finir, je pense vraiment que Rust peut être un langage d’avenir donc prenez le temps d’y penser.

Si vous avez  testé Rust ou si vous voulez plus d’informations, laissez-moi un commentaire 🙂

Share.

About Author

Un commentaire

Leave A Reply