Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Blog Pricing
Podcast Image

Underscore_

Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)

23 Feb 2026

Transcription

Chapter 1: Why are tech giants moving from C/C++ to Rust?

0.031 - 16.268 Michaël de Marliave

Il y a quelques années, il y a un développeur de chez Mozilla qui rentre chez lui après une journée de travail. Et l'ascenseur de son immeuble est encore en panne. Et là, il se pose une question toute bête. Pourquoi, à notre époque, on n'est toujours pas capable de coder un ascenseur qui fonctionne ? En fait ?

0

16.248 - 35.573 Michaël de Marliave

toute la tech qu'on construit depuis 50 ans a le même défaut de conception super relou. Le C et le C++. Autrement dit, les langages qui font tourner à peu près tout ce qui est critique dans le monde, des systèmes d'exploitation aux avions, sont tristement célèbres pour être des casse-têtes quand il s'agit de mémoire.

0

35.993 - 59.182 Michaël de Marliave

Jusqu'à ce que ce développeur, qui en avait marre de son ascenseur, crée Rust. Un langage très étonnant, fait pour régler tous ces problèmes, à la fois performant Et un peu pour les gens maso. Et ce qui était un petit projet anecdotique va devenir un véritable raz-de-marée. Microsoft, Google, Apple, Amazon sont en train de réécrire des systèmes entiers avec.

0

59.222 - 77.57 Michaël de Marliave

On a reçu Sylvestre Ledru, qui gère l'équipe d'ingénieurs française de Modila, et il va nous expliquer pourquoi Microsoft est en train de réécrire Windows en Rust, comment il a vécu cette révolution de l'intérieur à Modila, Et enfin, pourquoi ce langage plaît autant aux développeurs web qui utilisent JavaScript ou Python ?

0

77.59 - 90.636 Michaël de Marliave

Est-ce que tu peux nous faire un petit tableau de aujourd'hui, qu'est-ce qu'on utilise pour faire des logiciels ? Et les exemples de failles importantes que les gens ont peut-être vues ou qui les ont peut-être touchées ? qui sont liés justement à ce code.

90.656 - 101.334 Sylvestre Ledru

Les logiciels les plus utilisés à l'heure actuelle sur la planète, c'est les navigateurs web. En l'occurrence, je travaille sur Firefox, mais Chrome, Safari et Edge sont grosso modo les logiciels que tout le monde utilise au moins une fois par jour.

101.354 - 119.443 Sylvestre Ledru

Donc les attaquants, ça peut être des États, des groupes mafieux ou quelqu'un avec un sweat à capuche dans sa cave, va cibler les logiciels que tout le monde utilise. Et ces logiciels-là, historiquement, pour des raisons de performance, d'historique, utilisent tous... C et C++ qui sont des langages qui sont très bien, mais qui sont aussi extrêmement difficiles à maintenir.

119.463 - 136.828 Sylvestre Ledru

Donc en écrivant du code dans ces langages-là, on va des fois faire des erreurs de programmation qui peuvent entraîner des failles de sécurité. Il y a un exemple assez connu à Mozilla qui est qu'un jour le FBI, les services américains, ont des experts en informatique qui vont chercher des failles de sécurité pour leurs enquêtes.

136.868 - 150.805 Sylvestre Ledru

Et un jour, le FBI avait trouvé un réseau de pédophiles sur Internet. ils se sont rendus compte que la plupart des gens utilisaient Tor. Tor, c'est une version modifiée de Firefox avec plein d'options de protection, etc. Et donc, ils ont fait tomber le réseau pédophile grâce à cette faille de sécurité de Firefox.

Chapter 2: What problems does Rust solve in software development?

177.062 - 192.645 Sylvestre Ledru

Donc dans ce cas-là, c'était très pertinent d'utiliser cette faille. Il y a une autre faille aussi que j'avais adorée. Alors à l'époque, j'étais le responsable de cette version de Firefox. Et un jour, il y a un de mes collègues qui m'appelle et qui me dit « Il y a une grosse faille de sécurité donnée dans Firefox qui vient d'être reportée par un utilisateur. »

0

192.625 - 207.281 Sylvestre Ledru

Donc on commence à regarder le bug et dans le bug, il y a un collègue qui écrit « Surtout ne cliquez pas sur le lien, sinon vos mots de passe vont partir sur un serveur en Ukraine ». Alors c'était en 2014, si vous vous rappelez en 2014, c'était les petits hommes verts qui débarquaient en Crimée pour prendre la Crimée.

0

207.301 - 224.803 Sylvestre Ledru

Et donc cette faille de sécurité, ce qu'elle faisait, c'est qu'elle était sur un serveur ukrainien. Quand vous alliez sur un site de news en Russie, cette faille de sécurité dans Firefox allait récupérer vos mots de passe et vos logins et quelques informations derrière. Et ça c'est une faille de sécurité. Et toutes vos données étaient siphonnées vers un serveur en Ukraine.

0

224.903 - 238.005 Sylvestre Ledru

Donc nous, on a corrigé cette faille de sécurité en moins de 24 heures. Mais c'est le genre de cas d'utilisation qui peuvent arriver si vous avez des failles de sécurité dans du code. C'est des choses très concrètes. Donc après, il y a des chaînes d'attaque qui sont maintenant extrêmement complexes.

0

238.025 - 251.827 Sylvestre Ledru

Pour donner un ordre d'idée, une faille de sécurité dans Firefox, si vous êtes bon et que vous arrivez à la trouver, vous pouvez la vendre sur des marchés noirs à 400 000 dollars. Chrome, c'est 1 million et sur iOS, ça se compte maintenant à 3 ou 4 millions de dollars.

251.867 - 257.555 Sylvestre Ledru

Donc, il y a un marché pour les failles de sécurité, mais le niveau d'expertise est tel que c'est pour ça que ça coûte super cher.

257.595 - 269.292 Michaël de Marliave

Aujourd'hui, tu as mentionné C et C++. Si je ne me trompe pas, déjà à l'époque, l'arrivée de Unix, donc C et TR, tout ce qui va suivre avec le développement de Linux et compagnie, c'est déjà une révolution ?

269.272 - 276.724 Sylvestre Ledru

Unix est un système d'exploitation. C'est la base de Linux et c'est la base de Mac. Si vous utilisez un Mac, c'est un Unix derrière. C'est les mêmes concepts, les mêmes philosophies.

Chapter 3: How does Rust improve memory safety and performance?

276.764 - 291.448 Sylvestre Ledru

La première version a été codée en assembleur. L'assembleur, c'est vraiment la partie bas niveau pour parler avec le processeur. L'assembleur, c'est chiant à écrire. C'est vraiment une niche. Ce qu'ont rapidement conçu les développeurs d'Unix, ils en avaient marre de développer ça en assembleur.

0

291.428 - 307.243 Sylvestre Ledru

Donc ils se sont dit, on va créer notre langage de programmation qui est du C, qui est un degré d'abstraction pour faciliter l'interaction avec les couches basses de ton ordinateur, parce que personne n'a envie d'écrire des choses vraiment trop compliquées dessus. Donc tu fais l'abstraction, et le C c'était vraiment ça. Et comme les ordinateurs étaient vraiment lents,

0

307.223 - 316.654 Sylvestre Ledru

Tu étais obligé d'avoir une gestion mémoire fine pour dire là j'ai besoin d'une chaîne de caractères, elle va faire 4 caractères et après quand j'en aurai fini je la supprime.

0

316.675 - 327.968 Sylvestre Ledru

Ça c'est des besoins qu'en 2025 on a beaucoup moins, mais à l'époque tu avais vraiment besoin d'avoir un contrôle très fin de la gestion mémoire et avoir un langage qui soit vraiment dédié à ces cas d'utilisation.

0

328.829 - 347.293 Michaël de Marliave

Pour bien comprendre, en fait à la fin des fins, ce qu'un développeur manipule c'est ? C'est les composants de sa machine. C'est-à-dire que c'est un processeur, une mémoire dans laquelle il fait transiter de l'information et il fait des suites de calculs. Tout ce qu'on voit sur notre écran, c'est ça ? Exactement. Et donc, c'est un énorme carton. Ça va absolument partout.

347.313 - 357.847 Michaël de Marliave

La question, c'est, c'était quand même, il y a un bail. Ah ouais ? 70, hein ? Et de l'extérieur, on pourrait se dire, l'informatique, c'est un truc qui change énormément. Il y a des modes, bam bam bam.

Chapter 4: What security incidents highlight the need for Rust?

0

358.793 - 377.05 Michaël de Marliave

En fait, aujourd'hui, tout ce qui est fondationnel dans l'informatique est écrit en C. Évidemment, la grande majorité du code qui est produit aujourd'hui par les développeurs, c'est plutôt du JavaScript, donc c'est des sites web, des choses comme ça. Mais Python, la raison pour laquelle ça va vite, c'est que la plupart du temps, tu utilises du code C derrière.

0

377.07 - 396.731 Sylvestre Ledru

Ouais. Par exemple, en Python, les calculs matriciels, quand tu veux faire des matrices qui sont beaucoup utilisées pour les LLM, les IA, etc., le calcul matriciel va être fait par des bibliothèques qui sont généralement codées en C, avec de l'assembleur dedans, par des éditeurs comme Intel, par exemple, avec la MKL, qui est la bibliothèque de maths.

0

396.771 - 403.819 Sylvestre Ledru

Python va déléguer son calcul matriciel à du C, qui va être très fortement optimisé pour les CPU derrière.

0

403.799 - 411.561 Michaël de Marliave

Donc, on a un langage hégémonique qui est absolument partout, qui a 50 piges. Qu'est-ce qui pose problème ? Et pourquoi on n'a toujours pas mieux ?

Chapter 5: How does Rust appeal to web developers transitioning from JavaScript or Python?

411.581 - 423.309 Sylvestre Ledru

Alors, je vais aller un peu plus loin. Il y a aussi le C++, qui est une évolution du C qui est sorti dans les années 80. J'ai quasiment ignoré cette chose. En fait, le C et le C++, le C++... C++, c'est une extension du C, donc le C, c'est essentiellement fonctionnel.

0

423.329 - 441.062 Sylvestre Ledru

Et au début des années 80, un ingénieur, Bard Pounstrop, je vais massacrer son nom, décide de faire un modèle objet dans le C++, et c'est le langage qui est utilisé dans les navigateurs modernes, navigateurs web. Dans les jeux vidéo ? Dans les jeux vidéo aussi. Oui, c'est ça. On s'y charpe aussi.

0

441.042 - 464.622 Sylvestre Ledru

C'est des langages qui sont géniaux, mais qui deviennent tellement compliqués et qui ont tellement de problèmes intrinsèques dans leur conception que toute l'industrie se dit « c'est fini avec ces C++, on galère ». On passe notre temps dans Firefox à corriger des bugs qui sont causés par des erreurs de programmation dans C et C++.

0

464.662 - 479.4 Sylvestre Ledru

Et c'est la même chose chez Google, c'est la même chose chez Microsoft, etc. On a beau avoir la capacité d'embaucher les meilleurs gérateurs de la planète, on s'aperçoit que même les meilleurs développeurs de la planète font des erreurs de programmation toutes bêtes. On en revient tout à l'heure, c'est la gestion de la mémoire.

0

479.42 - 488.178 Sylvestre Ledru

C'est très compliqué dans ces langages-là de faire de manière parfaite. Quand tu veux créer une chaîne de caractères, par exemple, tu vas faire un malloc, c'est-à-dire Memory Allocator.

488.198 - 505.792 Sylvestre Ledru

Donc, tu vas lui dire, je veux que tu dis au système d'exploitation, je veux que tu me crées un espace mémoire de 200 caractères dans lequel je vais mettre ma chaîne de caractères qui va être Bonjour Micode, par exemple. Donc tu vas avoir cette chaîne de caractère, et puis après, dans cet espace mémoire, tu vas copier la chaîne de caractère dedans.

505.812 - 515.982 Sylvestre Ledru

Il ne faut pas que tu oublies l'antislage 0, qui est l'indicateur de fin de ligne. Et après, tu vas faire des opérations dessus, donc par exemple l'afficher ou l'envoyer sur le réseau. Et surtout, il ne faut pas que tu oublies après de la libérer, la mémoire.

516.002 - 526.751 Sylvestre Ledru

Parce que, comme le C est un langage qui a été conçu il y a très longtemps, on voulait vraiment contrôler la mémoire de manière très fine. Donc je veux dire, une fois que j'ai fini d'utiliser, manuellement, il faut supprimer.

526.771 - 548.195 Michaël de Marliave

Ce qu'on comprend, c'est que dans la mémoire, On fout tout ce dont on a besoin pour que le logiciel fonctionne. Il peut y avoir des données utilisateurs, des trucs que moi je vais taper à des endroits, ils vont se retrouver dans la mémoire. Il peut y avoir la logique elle-même. En fait, quand tu démarres un programme, le contenu de son code, il existe quelque part dans la mémoire.

Chapter 6: What are the historical developments leading to Rust's creation?

1247.958 - 1255.737 Sylvestre Ledru

C'est vraiment un projet de R&D. C'est-à-dire qu'il n'y avait pas nécessairement de validité de l'utiliser dans Firefox ou d'en faire quelque chose.

0

1255.717 - 1270.958 Sylvestre Ledru

Et rapidement, comme beaucoup de ces gens-là qui travaillaient sur la création de Rust étaient déjà des développeurs de Firefox, donc ils avaient les cicatrices comme moi de la gestion mémoire et du parallélisme, ils avaient une très bonne conscience des limites du C et du C++.

0

1270.938 - 1292.223 Sylvestre Ledru

Donc ils se sont dit, on va avec notre expertise recréer un langage qui soit moderne et qui réponde de manière intrinsèque aux problématiques posées par ces langages de nos ancêtres. Donc ils se lancent là-dessus et quelques années après, ils se disent, vu qu'on travaille dans une boîte qui fait des navigateurs, on va nous-mêmes faire des navigateurs codés en Rust.

0

1292.243 - 1296.047 Sylvestre Ledru

Donc ça s'appelle Servo. Tout très très tôt ?

0

1296.067 - 1299.351 Michaël de Marliave

Très tôt, oui. Ils se sont dit, premier projet, simple.

1299.371 - 1299.932

Oui, évidemment. On fait ça.

1299.912 - 1314.588 Michaël de Marliave

Un moteur de rendu. Un moteur de rendu de navigateur. En repartant deux heures. J'imagine que ça leur sert à concevoir le langage de manière optimale aussi, d'avoir un vrai projet, c'est ça ? C'est ça. Et en combien de temps le langage va devenir bon ?

1314.628 - 1335.131 Sylvestre Ledru

Pour revenir un peu à l'histoire de Rust, il y a 7-8 ans, on se dit, voilà, c'est bon, c'est prêt, on y va. On voyait que le cerveau était mature et que ça était vraiment fonctionnel. On voyait que l'écosystème Rust fonctionnait. Et donc, on commence à intégrer ce qu'on appelle la toolchain, la série d'outils pour pouvoir, dans Firefox, commencer à pouvoir compiler du Rust.

1335.151 - 1349.547 Sylvestre Ledru

Parce que tu as des problématiques de gestion mémoire. Tu as la mémoire d'un monolithe qui est Firefox. Comment est-ce que le programme Rust peut réussir à lire la mémoire du C et du C++ ? Donc, on commence à développer des outils pour faire ça. Et on se dit, maintenant, c'est bon, c'est prêt. On a ça dans la toolchain.

Comments

There are no comments yet.

Please log in to write the first comment.