Le responsable de Rust pour le noyau Linux démissionne
Wedson Almeida Filho, un mainteneur du projet Rust pour Linux, a récemment annoncé sa démission, citant comme raison de son départ des "bêtises non techniques".
Cette décision suit un schéma d'hostilité de la part de certains développeurs du noyau Linux envers l'intégration du langage de programmation Rust dans le noyau Linux.
La démission de Filho a été annoncée via la liste de diffusion du noyau Linux. Dans l'e-mail, Filho a exprimé sa gratitude envers l'équipe Rust for Linux mais a déclaré qu'il n'avait plus l'énergie pour gérer la négativité entourant le projet.
Il a conclu son message en disant que, bien qu'il croie que les langages sûrs pour la mémoire comme Rust sont l'avenir du développement du noyau, il craint que si Linux n'adopte pas cela, un autre noyau finira par le supplanter.
Voici le mail réel de Wedson :
Salut les gens,
Ceci est une série aussi courte que possible : je me retire simplement en tant que mainteneur du projet Rust pour Linux.
Je prends ma retraite du projet. Après presque 4 ans, je me rends compte que je manque de l'énergie et de l'enthousiasme que j'avais autrefois pour répondre à certaines des absurdités non techniques, il vaut donc mieux laisser cela à ceux qui en ont encore.
À l'équipe Rust pour Linux : merci, vous êtes formidables. Ce fut un plaisir de travailler
avec vous tous ; les moments que nous avons passés à discuter des problèmes techniques, à trouver des moyens de
combler les lacunes de fiabilité, etc., étaient toujours quelque chose que j'ai apprécié et attendu avec impatience. Je me considère chanceux d'avoir collaboré avec un groupe aussi talentueux et
amical.Je souhaite tout le succès au projet.
Je crois vraiment que l'avenir des noyaux réside dans les langages sûrs pour la mémoire. Je ne suis pas un visionnaire mais si Linux n'assimile pas cela, j'ai peur qu'un autre noyau ne lui fasse ce qu'il a fait à Unix.
Enfin, je vais laisser ici un petit échantillon de 3 min 30 s pour le contexte :
https://youtu.be/WiPp9YEBV0Q?t=1529 -- et pour réitérer, personne n'essaie de forcer qui que ce soit à apprendre Rust ni d'empêcher les refactorisations du code C.Merci,
-Wedson
Comme vous l'avez peut-être remarqué, l'e-mail comprenait également un lien vers une vidéo YouTube d'une conférence donnée par Filho lors du Sommet du noyau Linux 2024, au cours de laquelle il a reçu des réactions négatives importantes de la part de certains membres de l'audience concernant l'utilisation de Rust dans le noyau.
Les critiques dans le public ont soutenu que l'intégration de Rust imposerait un fardeau excessif aux développeurs en C, qui seraient obligés d'apprendre un nouveau langage et de maintenir la compatibilité avec les liaisons Rust.
De plus, certains développeurs ont exprimé des inquiétudes concernant la stabilité des liaisons Rust et le risque de rupture lorsque des modifications sont apportées au code C.
Filho et d'autres partisans de Rust dans le noyau, cependant, affirment que ces préoccupations sont exagérées et que Rust peut coexister avec le C sans compromettre la stabilité du noyau. Ils soutiennent que les avantages de Rust, en particulier ses fonctionnalités de sécurité de la mémoire, l'emportent sur les défis de l'intégration.
Le débat sur l'inclusion de Rust dans le noyau Linux met en lumière une tension plus large dans la communauté open-source entre le maintien d'une base de code stable et l'adoption de l'innovation.
Alors que certains développeurs apprécient la familiarité et la fiabilité du C, d'autres considèrent l'adoption de langages plus récents et plus sûrs comme Rust comme essentielle pour la santé et la sécurité à long terme du noyau Linux.
L'issue de ce débat aura probablement des implications significatives pour l'avenir de Linux et de l'écosystème open source au sens large.
Réaction de la communauté Linux
Beaucoup de débats animés ont lieu au sein de la communauté Linux pour savoir s'il faut ou non inclure Rust dans le noyau Linux. Comme je l'ai constaté dans cette discussion Reddit, voici les arguments pour et contre l'utilisation de Rust dans le noyau Linux.
Arguments en faveur de l'inclusion de Rust dans le noyau Linux
1. Sécurité de la mémoire accrue :
Les fonctionnalités de sécurité mémoire de Rust peuvent aider à prévenir une grande classe de bugs et de vulnérabilités de sécurité qui affectent le code en C et C++. Cela est particulièrement important dans une base de code aussi grande et complexe que le noyau Linux, où même les programmeurs très qualifiés peuvent commettre des erreurs.
De plus, les données de Google suggèrent que l'utilisation de Rust au lieu de C et C++ dans des bases de code existantes peut réduire le nombre de vulnérabilités à haute gravité.
2. Attirer de nouveaux développeurs :
Inclure Rust dans le noyau pourrait aider à attirer de nouveaux développeurs qui sont plus familiers avec les langages modernes et qui pourraient être découragés par la difficulté et la complexité perçues de travailler avec le C. C'était l'une des principales raisons pour lesquelles Linus Torvalds, le créateur de Linux, a approuvé l'inclusion de Rust dans le noyau.
Arguments contre l'inclusion de Rust dans le noyau Linux
1. Résistance au changement de la part des développeurs du noyau :
De nombreux développeurs de noyau de longue date résistent à l'apprentissage d'un nouveau langage, surtout s'ils ne voient pas un besoin évident. Ils soutiennent qu'ils préfèrent passer du temps à en apprendre davantage sur les sujets liés au noyau plutôt qu'à apprendre une nouvelle façon de faire le travail qu'ils savent déjà faire.
Cette résistance s'est manifestée par un comportement hostile et non professionnel envers ceux qui plaident en faveur de Rust dans le noyau, comme le traitement de Wedson Almeida Filho.
2. La difficulté de maintenir la compatibilité entre le code C et Rust
S'assurer que les modifications du code C ne cassent pas le code Rust, et vice versa, représente un défi important. Cela est particulièrement problématique en l'absence de tests automatisés complets au sein du noyau.
3. Préoccupations concernant la maturité de Rust :
Certains développeurs du noyau s'inquiètent que Rust ne soit pas encore suffisamment mature pour être utilisé dans un projet aussi critique que le noyau Linux. Ils craignent que le langage et ses outils évoluent encore trop rapidement, et que s'y fier puisse mener à l'instabilité et à des problèmes imprévus.
Pourquoi la résistance à Rust dans le noyau Linux ?
Il est clair d’après le fil de discussion Reddit ci-dessus et l’e-mail de démission de Wedson Almeida Filho qu’il y a une résistance à l’intégration de Rust dans le noyau Linux.
Cette résistance ne découle pas nécessairement d'une haine du langage lui-même, mais d'une confluence de facteurs, dont beaucoup reflètent des problématiques plus larges dans le développement logiciel. Voici un aperçu nuancé des raisons derrière cette opposition :
1. Préoccupations techniques
1.1. Charge de maintenance et stabilité de l'API :
Une préoccupation récurrente tourne autour des aspects pratiques du maintien de la compatibilité entre le C et le Rust. Les développeurs du noyau, dont beaucoup sont des experts en C de longue date, expriment des inquiétudes concernant la responsabilité supplémentaire de garantir que leurs modifications de code en C ne perturbent pas involontairement les composants en Rust. Cela est particulièrement pertinent compte tenu des tests automatisés limités au sein du noyau.
1.2. Complexité et le dilemme « non sécurisé » :
Certains développeurs soutiennent que combler le fossé entre les règles strictes de sécurité de Rust et les complexités inhérentes à la programmation au niveau du noyau pourrait nécessiter une utilisation excessive du mot-clé 'unsafe' en Rust. Cela est considéré comme pouvant compromettre les avantages de sécurité mêmes que Rust cherche à apporter.
2. Facteurs humains
2.1. Résistance au changement et courbe d'apprentissage :
De nombreux maintainers de noyau de longue date expriment une réticence à investir du temps et des efforts pour apprendre un nouveau langage, surtout s'ils utilisent le C avec succès depuis des années. Cette résistance est exacerbée par la perception que la charge de s'adapter à Rust repose sur eux, plutôt que l'inverse.
2.2. Rupture de communication et hostilité perçue :
La manière dont certaines critiques ont été adressées aux défenseurs de Rust, comme on peut le voir dans la vidéo liée à la démission de Filho, a créé un environnement d'hostilité et a découragé le dialogue ouvert. Cela a en outre éloigné les partisans potentiels de Rust au sein de la communauté du noyau.
3. Conflits philosophiques et culturels plus profonds
3.1. Philosophies de développement conflictuelles :
Il semble y avoir une déconnexion fondamentale dans les philosophies de développement entre certains développeurs du noyau et les défenseurs de Rust. La communauté du noyau, qui valorise la stabilité, les méthodologies éprouvées et une compréhension approfondie d'une base de code complexe, pourrait percevoir les règles strictes de Rust et l'accent mis sur la sécurité de la mémoire comme une contrainte supplémentaire plutôt que comme un avantage.
3.2. Élitisme perçu et fracture générationnelle :
Certains commentaires dans la discussion Reddit jointe suggèrent une perception des partisans de Rust comme étant « élitistes » ou méprisants envers l'expertise des développeurs C. Cela, associé à un éventuel fossé générationnel entre les développeurs C de longue date et ceux plus familiers avec les langages plus récents, complique davantage l'intégration de Rust dans une communauté aux normes et hiérarchies bien établies.
Veuillez noter que tous les développeurs du noyau Linux ne sont pas contre Rust. Beaucoup voient ses avantages potentiels et soutiennent son inclusion. Cependant, les points soulevés ci-dessus mettent en évidence l'interaction complexe des facteurs techniques, sociaux et philosophiques qui contribuent à la résistance que Rust rencontre au sein de l'équipe du noyau Linux.
L'avenir de Rust dans le noyau Linux
L'avenir de Rust dans le noyau Linux dépend de la manière dont ces préoccupations seront traitées efficacement. Une communication ouverte, une démonstration claire des avantages de Rust dans des scénarios réels du noyau, et une approche collaborative qui respecte l'expertise des développeurs en C et en Rust seront importantes pour son intégration réussie.
Alors que ce débat est toujours en cours et qu'il n'y a pas de réponse de Linus Torvalds, nous ne pouvons pas encore tirer de conclusion. Nous vous tiendrons informés. Restez à l'écoute pour les futures mises à jour.
Lecture similaire :
- Linus Torvalds prévoit apparemment d'intégrer du code Rust dans le noyau Linux
- Hector Martin, fondateur d'Asahi Linux, démissionne à cause de conflits concernant le noyau
- Rust dans le noyau Linux : Christoph Hellwig démissionne de son poste de mainteneur DMA
- Un développeur Debian abandonne le paquet Bcachefs-Tools en raison de conflits avec l'amont
- Futur de Bcachefs dans le noyau Linux incertain après un différend sur le code de conduite
