Rust

Un langage de programmation qui refuse de construire votre programme s'il contient les erreurs de mémoire à l'origine des failles les plus graves.

Également appelé langage Rust Rust lang langage systeme

Définition

Rust est un langage de programmation pour les logiciels qui n'ont pas le droit de tomber en panne. Les systèmes d'exploitation, les moteurs de navigateurs, les petites briques qui tournent sous tout le reste pendant des années sans que personne y touche. Il est rapide, et sévère d'une façon qui surprend ceux qui viennent d'autres langages.

Pour comprendre pourquoi il existe, il suffit d'une idée sur le fonctionnement d'un ordinateur. Un programme demande un morceau de mémoire, s'en sert, puis le rend. Les ennuis commencent quand il continue d'utiliser un morceau déjà rendu, ou qu'il écrit au-delà de l'espace qu'on lui a donné. Ces deux petites erreurs sont à l'origine de la plupart des failles graves trouvées dans ce type de logiciel. Microsoft et Google ont compté leurs propres bugs et sont arrivés au même ordre de grandeur, près de sept sur dix.

La réponse de Rust est inhabituelle. Il n'attrape pas l'erreur pendant que le programme tourne. Il refuse tout simplement de le construire. Le compilateur suit qui possède chaque morceau de mémoire et combien de temps il vit, et si votre code peut toucher quelque chose qui n'existe plus, la compilation s'arrête avec un message. Les autres langages sûrs emploient un nettoyeur qui tourne à côté du programme et l'interrompt de temps en temps. Rust n'en a pas, il reste donc assez rapide pour les travaux où une pause est interdite. C'est ce mélange qui le fait apparaître dans les projets sensibles côté sécurité.

Voici maintenant la partie dont personne ne parle. Écrire du Rust est plus lent, et les deux premiers mois ressemblent à une dispute avec le compilateur. Les développeurs qui le maîtrisent sont plus rares et plus chers. Pour un site de réservation ou un logiciel de magasin, le calcul est mauvais, et un langage d'application web ordinaire finira plus vite et pour moins cher. Rust mérite son prix dans un espace étroit : un appareil difficile à mettre à jour, une partie qui ouvre des fichiers envoyés par des inconnus, un service attaqué en permanence.

Un usage touche quand même les produits ordinaires. Une logique compliquée écrite une seule fois en Rust peut être intégrée à la fois dans une application Android et dans une application iPhone, donc les règles vivent à un seul endroit au lieu de deux. Linkysoft ne le propose que si cette logique est vraiment difficile, car cela ajoute un langage à l'équipe. Si un prestataire vous propose Rust, demandez ce qui casse quand cette partie tombe. Une bonne réponse cite quelque chose de concret. Si elle reste floue, Linkysoft préfère mettre l'argent dans une application mobile classique et un vrai audit de sécurité.

Questions sur Rust

Rust est-il difficile à apprendre ?
Plus difficile que la moyenne au début. Le compilateur refuse du code que d'autres langages acceptent, et il faut quelques semaines avant que ses règles paraissent normales.
Mon logiciel de gestion doit-il être écrit en Rust ?
En général non. Un logiciel de réservation, de magasin ou de clinique se construit plus vite et moins cher dans un langage web courant, et l'avantage de Rust ne s'y voit pas.
Rust rend-il mon logiciel sécurisé ?
Il supprime une famille de bugs, ceux liés à la mémoire. Il ne fait rien contre un mot de passe faible, une permission mal réglée ou une base laissée ouverte, d'où partent la plupart des intrusions.
Rust peut-il fonctionner avec le code que nous avons déjà ?
Oui. On l'ajoute d'habitude morceau par morceau, à côté du programme existant, pour protéger la partie risquée sans tout réécrire.
Les développeurs Rust coûtent-ils cher ?
Ils coûtent plus cher et sont moins nombreux. Demandez à tout prestataire qui entretiendra ce code dans trois ans, cette réponse compte plus que le prix du développement.

Vous ne voyez toujours pas comment cela s'applique à votre projet ?

Dites-nous ce que vous construisez et nous vous répondrons simplement.