IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Rust dans le noyau Linux: un projet prometteur, mais pas sans complications. La communauté dresse un bilan
Lors de l'édition 2023 du Kernel Maintainers Summit

Le , par Stéphane le calme

89PARTAGES

23  0 
Rust, un langage de programmation moderne et sécurisé, suscite l’intérêt des développeurs du noyau Linux depuis plusieurs années. Lors du sommet des mainteneurs du noyau de 2023, le sujet a de nouveau été abordé. Comme l’a souligné Miguel Ojeda, le développeur principal du projet Rust-for-Linux, le nombre de personnes intéressées par l’utilisation de Rust pour le développement du noyau a considérablement augmenté au cours de la dernière année. Rust a été ajouté à Linux comme une expérience : la communauté du noyau est-elle prête à dire que l’expérience a réussi ?

Tout d'abord, pourquoi un autre langage après plus de 30 ans en C et en assembleur ? Et pourquoi Rust ?

Les principaux mainteneurs du noyau Linux ont un âge qui commence par le chiffre 5. Certains se rapprochent même de la soixantaine. Aussi, la communauté du célèbre noyau open source commence à penser au changement de générations. Une nouvelle dont la tranche d’âge se situe dans la trentaine gravit les échelons, mais comme Linus lui-même le souligne : « Il s'avère qu'il est vraiment difficile de trouver des personnes qui sont des mainteneurs » ; un fait lié à ceci que le développement du kernel Linux continue de se faire en C et assembleur. Des langages auxquels la vieille génération est plus accoutumée ? C’est une possibilité et elle est susceptible d’expliquer pourquoi 2022 est devenue l’année du langage Rust au sein du noyau Linux.

C'est ainsi qu'est né le projet Rust-for-Linux : initié en 2020 par Miguel Ojeda, un ingénieur logiciel chez CERN, il a reçu le soutien de Linus Torvalds, le créateur du noyau Linux. Le projet a été fusionné dans la branche principale du noyau Linux en version 6.1, en tant qu’expérience visant à déterminer si Rust est adapté pour le noyau, c’est-à-dire s’il vaut les compromis. Le projet fournit une infrastructure et des outils pour compiler, charger et déboguer du code Rust dans le noyau, ainsi qu’une bibliothèque standard minimale (core) et une bibliothèque d’abstraction du noyau (kernel).

Rust a une propriété clé qui le rend très intéressant à considérer comme un autre langage du noyau : il garantit qu'aucun comportement indéfini n'a lieu (tant que le code non sécurisé est sain). Cela inclut l'absence d'erreurs de type use after-free (Use-After-Free (UAF) est une vulnérabilité liée à une utilisation incorrecte de la mémoire dynamique lors du fonctionnement du programme. Si après avoir libéré un emplacement mémoire, un programme n'efface pas le pointeur vers cette mémoire, un attaquant peut utiliser l'erreur pour pirater le programme), double free (des erreurs qui surviennent lorsque free() est utilisé plus d’une fois avec la même adresse mémoire comme entrée. Appeler free() deux fois sur la même variable peut entraîner une fuite de mémoire), data race (une data race survient quand une donnée partagée est accédée par au moins deux threads dont au moins un en écriture et ce, sans synchronisation), etc.

Le projet Rust for Linux n’a pas pour objectif de réécrire le noyau entier en Rust, mais plutôt d’ajouter du nouveau code, écrit en Rust, qui s’interface proprement avec l’infrastructure existante du noyau. Le projet vise également à encourager les développeurs à utiliser Rust pour les parties du noyau qui sont particulièrement sensibles ou complexes, telles que les pilotes de périphériques, les sous-systèmes de sécurité ou les protocoles réseau. Rust pourrait ainsi apporter des bénéfices en termes de qualité, de performance et de sécurité du code du noyau, tout en réduisant les coûts de développement et de maintenance.


Rust-for-Linux, ses apports et ses défis

Le projet Rust-for-Linux a recruté un ingénieur à temps plein l’année dernière, a déclaré Ojeda, ainsi qu’un étudiant développeur. Plusieurs entreprises ont rejoint le projet pour soutenir ce travail. Il y a aussi un travail en cours pour faire fonctionner l’outil Coccinelle avec le code Rust. Une priorité actuelle est de trouver plus de relecteurs pour le code qui est soumis.

Sur le plan de la chaîne d’outils, le travail sur gccrs, le compilateur Rust basé sur GCC, a considérablement ralenti. Le générateur de code GCC pour rustc progresse mieux ; il peut compiler du code noyau maintenant et a été fusionné dans le compilateur. Ce backend basé sur GCC permettra d’étendre le support de Rust à des architectures qui ne sont pas supportées par rustc basé sur LLVM. Pendant ce temps, le projet Rust lui-même s’implique davantage dans ce travail ; c’est une bonne chose, car le noyau a des besoins spécifiques et aura besoin de garanties que les changements de langage ne casseront pas le code du noyau à l’avenir.

Au sein du noyau, le travail se poursuit dans un certain nombre de sous-systèmes. L’implémentation Rust du binder d’Android fonctionne bien et ses performances sont équivalentes à celles de l’implémentation C. La quantité de code non sécurisé qui a été nécessaire pour y parvenir était agréablement faible. Les liaisons avec les systèmes de fichiers font l’objet d’un travail de Wedson Almeida Filho, qui vise pour l’instant un support en lecture seule. L’objectif est de rendre possible l’implémentation d’un système de fichiers en Rust 100% sécurisé.

En général, il constate un nombre croissant de mainteneurs qui sont ouverts à l’idée d’utiliser Rust. Cela conduit à un problème auquel les développeurs Rust se sont heurtés, cependant. Il serait bon d’avoir quelques pilotes de référence dans le noyau comme exemple de la façon dont les pilotes peuvent être écrits et de permettre de comparer les pilotes Rust et C. La meilleure façon de le faire semble souvent être de fusionner un pilote Rust qui duplique la fonctionnalité d’un pilote C existant - mais ce genre de fonctionnalité dupliquée n’est pas apprécié par les mainteneurs. Peut-être, a-t-il dit, serait-il bon de permettre quelques pilotes dupliqués qui ne sont pas destinés à être utilisés, mais seulement comme exemples pour les autres développeurs.

Il y a aussi d’autres défis ; l’intégration des abstractions de la couche bloc a rencontré une certaine résistance. Le mainteneur de la couche virtuelle de systèmes de fichiers Christian Brauner a dit qu’il n’était pas opposé à fusionner ces abstractions, mais qu’il préférerait ne pas le faire et voir des systèmes de fichiers construits dessus tout de suite. Il préférerait voir une implémentation de quelque chose de relativement simple, dans le style du pilote binder, pour montrer que les choses fonctionnent comme prévu. Un pilote bientôt ?


Bientôt une branche Rust ?

Dave Airlie, le mainteneur du sous-système DRM (graphique), a dit que, s’il en avait le pouvoir, il y aurait un pilote DRM Rust fusionné dans les prochaines versions. Christoph Hellwig a répliqué qu’Airlie était prêt à « rendre la vie de tout le monde infernale » pour qu’il puisse jouer avec son jouet préféré. Fusionner Rust, a dit Hellwig, obligerait les autres à gérer un second langage, de nouvelles chaînes d’outils, et « des wrappers avec des sémantiques bizarres ». Dan Williams a estimé que la situation actuelle « est ce à quoi ressemble le succès », et que la communauté du noyau s’était déjà engagée en faveur de Rust.

Airlie a poursuivi en disant qu’une grande partie du travail sur Rust est actuellement bloquée dans une sorte de problème de l’œuf et de la poule. Les abstractions ne peuvent pas être fusionnées tant qu’il n’y a pas d’utilisateur pour elles, mais le code qui a besoin de ces abstractions est bloqué en attendant que le code soit intégré dans plusieurs sous-systèmes. En conséquence, les développeurs travaillant sur Rust se traînent de grandes piles de correctifs dont ils ont besoin pour travailler sur leur code. Il a suggéré qu’il serait peut-être bon de créer une branche spéciale pour le code Rust, où les abstractions pourraient être fusionnées plus facilement, en attendant qu’elles soient prêtes pour la branche principale.

À partir de là, la conversation a pris plusieurs directions.

Rust : oui, mais...

Greg Kroah-Hartman, le mainteneur du noyau stable, a dit qu’il n’était pas opposé à l’idée d’une branche Rust, mais qu’il faudrait qu’elle soit maintenue par quelqu’un d’autre que lui. Il a aussi demandé comment le code Rust serait testé, et s’il y aurait des outils pour vérifier la qualité du code et la conformité aux normes de codage du noyau. Ojeda a répondu qu’il y avait déjà des outils pour le formatage du code Rust, et qu’il travaillait sur un outil pour vérifier les règles spécifiques au noyau. Il a aussi dit qu’il y avait des tests unitaires pour le code Rust, et qu’il espérait que le code Rust serait intégré dans les systèmes de test existants du noyau.

Dave Chinner s'inquiète du fait que les responsables manquent d'expertise pour examiner correctement les abstractions en cours de fusion. Airlie a répondu que les responsables fusionnent désormais de nombreuses API C sans vraiment comprendre comment elles fonctionnent. De nombreuses erreurs ont été commises au cours du processus, mais « nous sommes toujours là ». Lorsque des choses s’avèrent être cassées, elles peuvent être réparées, et cela se produira plus rapidement si le code remonte en amont.

Ted Ts'o s'est dit préoccupé par le fardeau que l'ajout du code Rust imposerait aux responsables. Les développeurs de Rust établissent des normes plus élevées que celles fixées par le passé, a-t-il déclaré. Fusionner de bonnes abstractions est une chose, mais qui est responsable de la révision des pilotes et comment les modifications à l'échelle de l'arborescence seront-elles gérées ? L’effort de Rust, a-t-il dit, arrive à un point où il touche une partie croissante de la communauté.

Williams a souligné que durant la session précédente, la difficulté de faire migrer les sous-systèmes du noyau vers de nouvelles API avait été évoquée ; maintenant, dit-il, on parle de passer à un tout nouveau langage. Hellwig a déclaré que le vrai problème est que les liaisons Rust ont tendance à fonctionner différemment des API C pour lesquelles elles fournissent des abstractions ; les nouvelles API sont peut-être meilleures, mais ce sont toujours des API complètement nouvelles. Ce qu’il faudrait faire, dit-il, c’est d’abord corriger les API C afin qu’elles soient directement utilisables par le code Rust. Il a proposé que, pour chaque sous-système envisageant d'introduire du code Rust, un an ou deux soient d'abord consacrés au nettoyage de ses API dans ce sens. Ojeda a déclaré que ce type d'amélioration de l'API s'était déjà produit dans certains sous-systèmes.

Linus Torvalds a déclaré qu'il voyait un fossé entre le système de fichiers et les responsables des pilotes. Les développeurs du côté des systèmes de fichiers ont tendance à être plus conservateurs, tandis que le monde des pilotes « c'est le Far West ». Les auteurs de pilotes ont tendance à ne pas comprendre la concurrence, a-t-il déclaré, et une grande partie du code est défectueux et irréparable. Il n’est donc pas surprenant qu’il y ait un intérêt à introduire un langage qui prenne mieux en charge l’écriture d’un code correct et sûr.

Brauner a déclaré que Rust peut aider à résoudre de nombreux problèmes, car le compilateur peut empêcher de nombreux bogues de pénétrer dans le noyau. Mais il s'inquiétait de savoir s'il y aurait un support pour le mainteneur et le développement dans quelques années. Airlie a de nouveau mentionné les développeurs avec du code hors arborescence nécessaire au code Rust; Cook a répondu que les personnes qui supervisent ce code sont des responsables, et que l'introduire entraînerait les responsables avec lui. Airlie a ajouté que ces responsables sont le genre de jeunes développeurs que la communauté du noyau aimerait attirer.

Les incertitudes sur le langage

Ts'o a demandé quand la communauté se sentirait suffisamment en confiance pour pouvoir avoir des modules dont la seule implémentation est dans Rust. Binder pourrait être un bon début, a-t-il déclaré, peut-être suivi par un pilote dont l'utilisation serait plus large. Airlie a déclaré qu'il envisageait un pilote graphique virtuel qui réimplémenterait un pilote C existant. Il existe également le pilote pour les GPU Apple M1. Il ressent une forte pression pour l'amener en amont et se demande s'il y a une raison pour laquelle il devrait le garder à l'écart. Après cela, il adorerait voir une réécriture du pilote Nouveau pour les GPU NVIDIA.

Arnd Bergmann a déclaré que ces pilotes pourraient être OK, mais qu'il faudra un peu plus de temps avant que quelque chose comme un pilote de clavier puisse être fusionné ; La chaîne d'outils n'est tout simplement pas prête, a-t-il déclaré, pour un pilote qui serait largement utilisé. Cela a conduit à une question sur les mises à niveau fréquentes de version observées dans le noyau, qui est passé à Rust 1.73.0 pour 6.7. Ce processus de mise à niveau finira par s'arrêter et une version minimale de Rust sera définie une fois que les fonctionnalités importantes dont dépend le noyau se seront stabilisées. Il a déclaré qu'il travaillait pour intégrer le code du noyau dans les tests d'intégration continue de Rust afin de garantir qu'il continue de fonctionner à mesure que le compilateur et le langage évoluent.

Bergmann a déclaré qu'il n'avait pas l'intention d'examiner sérieusement le langage jusqu'à ce qu'il puisse être compilé avec GCC. Torvalds a répondu que, même s'il avait l'habitude de trouver des problèmes dans le compilateur LLVM Clang, il est désormais plus susceptible de rencontrer des problèmes avec GCC ; il construit maintenant avec Clang. Ojeda a déclaré qu'il travaillait à la recherche de ressources de développement pour gccrs ; le projet repose actuellement sur plus de 800 correctifs hors arborescence et a encore beaucoup de travail à faire en plus. Le soutien du CCG prendra du temps, a-t-il déclaré.

Ts'o s'est plaint du fait que le langage n'est toujours pas entièrement stable. Cela pourrait constituer un problème particulier pour la communauté informatique confidentielle ; ils sont préoccupés par la sécurité et, par conséquent, par les rétroportages vers des noyaux supportant à long terme. Mais si ces noyaux sont sur des versions Rust différentes, ces rétroportages seront problématiques. Ojeda a déclaré que, bien qu'il s'agisse d'une "idée folle", le rétroportage des mises à niveau de version pourrait être envisagé. Il ne pense cependant pas que le taux de changement sera suffisamment élevé pour constituer un problème.

En conclusion, Torvalds a souligné qu'il y avait eu des problèmes au fil des années avec les changements de GCC qui cassaient le noyau ; la même chose arrivera sûrement avec Rust, mais ce sera finalement la même chose. La séance, bien au fil du temps, a été interrompue à ce stade. Reste à savoir si la communauté du noyau a réellement conclu à son engagement envers Rust ; il y aura presque certainement des Pull Request ajoutant du code Rust important dans un avenir proche.

Source : LWN

Et vous ?

Quels sont les avantages et les inconvénients de Rust par rapport au C pour le code du noyau ?
Quels sont les défis ou les obstacles à l’adoption de Rust pour le code du noyau ?
Quels sont les exemples de code du noyau qui pourraient bénéficier de Rust ?
Quelle est votre opinion sur le projet Rust for Linux ? Est-ce une expérience réussie ou un échec ? D'ailleurs sur quels critères pourrait-on s'appuyer pour le déterminer ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Ti-Slackeux
Membre expérimenté https://www.developpez.com
Le 02/04/2024 à 11:35
je me suis arrêté là :
Faut-il opérer le retrait de termes comme master ou slave au motif de ce qu’ils véhiculent des stéréotypes raciaux ?
"Deux choses sont infinies : l'Univers et la bêtise humaine.
Mais, en ce qui concerne l'Univers, je n'en ai pas encore acquis la certitude absolue."
Albert Einstein
20  3 
Avatar de denisys
Membre chevronné https://www.developpez.com
Le 03/09/2024 à 18:59
Remonté contre les habitués du C qui freinent les mises à jour de la base de code du noyau vers Rust
Pour faire une bonne vinaigrette.
Il faut de l’huile et du vinaigre !!!!


A mon point de vue, ce n’est qu’une question de temps et de génération.
Ma génération, qui a étais élevé au bon code en C et C++, vers la fin du siècle dernier (1992).
Les jeunes et futures générations qui intégrerons et compileront plus facilement le code en Rust.

Moi, quand j’ai commencé à développer, le Java Scripte n’existais pas.
Aujourd’hui, tous les jeunes savent coder en Java Scripte.

Haaa !!!
Il ne faut pas oublier, non plus, que le créateur de PHP a conçu ce langage en C, parce que il en avait marre de répéter les mêmes routines en C, pour construire des pages Internet , a l’époque.

C’est une question de temps, uniquement !!!
14  0 
Avatar de OrthodoxWindows
Membre expert https://www.developpez.com
Le 02/04/2024 à 12:03
Citation Envoyé par Ti-Slackeux Voir le message
je me suis arrêté là :

"Deux choses sont infinies : l'Univers et la bêtise humaine.
Mais, en ce qui concerne l'Univers, je n'en ai pas encore acquis la certitude absolue."
Albert Einstein
Je suis d'accord, ce débat est vraiment con. Mais bon, visiblement certains n'ont pas mieux à faire que perdre du temps au lien de réaliser des vrais corrections dans le code.
Cependant, ce genre de polémique stérile est souvent soutenu pas des grosses entreprises ; peut-être faut-il y voir un intérêt pour détourner l'attention de leur méfaits.
Parfois c'est plus direct, c'est le logiciel libre qui est visé (je pense à la polémique sur Stallman).

C'est comme ceux qui sont contre l'utilisation des termes "liste noir/blanche". Alors que culturellement, associer le noir au "mal" ou a la mort n'a rien de raciste, c'est quelque chose de très ancien qui vient du fait que sans lumière, on ne voit rien (on risque donc sa vie). Je ne serai pas surpris que certains peuples en Afrique fassent la même association.
Comparer ça au racisme c'est à peu près la même logique que de dire qu'utiliser la couleur orange pour indiquer un chantier revient à traiter tous les roux de travailleur du BTP
Surtout qu'en plus, aucun homme n'est vraiment "noir" sur Terre, en réalité, il n'y a que des nuances de brun...
12  0 
Avatar de Aspartame
Membre confirmé https://www.developpez.com
Le 02/04/2024 à 13:08
Bonjour

étudiant en master, je m'inquiète sérieusement sur mon diplôme.
14  4 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 02/04/2024 à 20:03
Comme si ne plus utiliser les termes maitres/esclaves allait faire disparaitre l'esclavage ou rendre justice aux victimes présentes, passés, ou futurs.

On peut aller très loin dans la connerie :

Nous tous (ou quasiment) travaillant dans l'informatique sommes des prestataires de services.
service désigne l'action de servir, càd être au service, à la disposition de quelqu'un. Du coup faut-il remettre ce terme en question dans ce contexte, surtout que service vient du latin servitium signifiant état d’esclave, cervitude).
11  1 
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 22/10/2024 à 18:09
Linus Torvalds est de plus en plus frustré par le matériel bogué et les attaques théoriques du processeur
Moi aussi ! (mais on s'en fout)
9  0 
Avatar de eomer212
Membre confirmé https://www.developpez.com
Le 22/10/2024 à 18:50
je me rappelle d'une époque, l'époque "bénie" (j'étais jeune, beau, et je le suis toujours dans ma tête) ou n'y avait pas de coprocesseur, et ou il fallait comprendre comment calculer un sinus à partir d'entiers en assembleur.
bref, on devait ramer comme des malades pour sortir les processeurs et les cartes graphiques vga de leur létargie. il fallait comprendre le materiel, et en particulier le processeur, son fonctionnement et ses limites. qu'on pouvait éventuellement dépasser, par la ruse et l'intelligence.
une des astuces existantes était le déroulé de code.
on déroule des fonctions qui auraient du faire un saut pour boucler, pour éviter le plus possible les branchements qui brisent la prédiction ou le pré chargement de code du processeur.
c'est con, c'est basique, et c'est très, très efficace.
moi je dis ca. mais bon, je peux me tromper, mais je pense que ca doit encore marcher..
en passant, un petit coucou extrêmement révérencieux à Mr Torvald, à qui nous devons tous beaucoup.
10  1 
Avatar de petitours
Membre émérite https://www.developpez.com
Le 02/04/2024 à 17:02
Citation Envoyé par shunesburg69 Voir le message
L'esclavage s'est terminé en France en 1848 et aux USA en 1865, je vois personne de vivant concerné par cette histoire d'esclavage. Pour info, la plupart du temps c'est des militants (noir ou blanc) qui non jamais eux de famille dans l'esclavage et qui oublient que des blancs comme moi ont des ancêtres esclaves et qui s'en foutent de ses débats stériles. Ils feraient mieux de s’inquiéter de la discrimination positive (et autre racisme anti-blanc) qui font du racisme en passant faire l'inverse.
Inde, Chine (les Ouïghours ), Pakistan, et bien d'autres pays. L'esclavage existe bien encore aujourd'hui. Mais une fois de plus le problème est l'esclavage, pas le mot qui le désigne très bien et ça n'a rien à faire dans les discussions sur l'intégration de Rust dans Linux.
8  0 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 03/09/2024 à 20:00
Cette "mégalomanie" existe dans toutes les équipes qui sont formattés à travailler avec un langage informatique. Vous allez dans les banques où on fait du COBOL, les développeurs rabaisseront ceux qui font du Java pour sa syntaxe, ceux qui font du Java rabaisseront ceux qui font du NodeJS/TypeScript pour son manque de typage runtime, ceux qui font du NodeJS/TypeScript rabaisseront ceux qui font du Python pour ses performances, et généralement tout le monde excepté ceux qui font du PHP rabaisseront PHP

Il faut aller au-delà de cela, de cette passion qui nous anime pour un langage informatique, parce que oui nous avons appris, travaillé et en quelque sorte "grandi" avec un certain langage, et on arrive d'ailleurs à reconnaitre les générations grâce à leur formation universitaire Pascal, C++, Java, et plus récemment Python... Et je comprends aussi que certains en ait marre d'apprendre le dernier langage à la mode (je pense personnellement aux langages JVM tels que Scala complètement mort et Kotlin propulsé par IntelliJ+Google suite au procès d'Oracle en ayant fait du Java), ce qui me perturbe c'est que Rust soit considéré comme une mode ou bien les goûts syntaxiques évoqués par certains pour ne pas adopter le Rust. Rust est basé sur le retour d'expérience des langages existants, il existe des raisons pour laquelle Rust inclu/limite des features, comme pourquoi il n'y a pas d'héritage à plusieurs niveaux, pourquoi on continue à utiliser le point-virgule etc (je ne vais pas rentrer dans les détails ici)

Un langage informatique est un outil, ce n'est pas votre enfant ou votre animal de compagnie, l'affect n'a pas lieu d'être. Il faut citer les "vrais" avantages et inconvénients techniques de Rust pour être juste, Rust n'est pas parfait : moins de libraries contrairement à Go qui est supporté par Google (quelqu'un sait s'il existe un driver Sybase en Rust ? ), lent à compiler etc... mais en tant qu'expert seriez-vous capable de me citer des langages libres (compilateur inclu) qui sont à la fois memory-safe, null-safe, thread-safe et qui ne requirent pas une VM que l'on doit installer et qui doit gérer un système de ramasse-miettes ?

Bref, pour en revenir à Linux, bien que le C soit un langage simple et très apprécié, ce dernier ne respecte pas les critères cités au-dessus (je vous invite à regarder les taux des failles de sécurités causés par l'absence du memory-safe ou null-safe), donc qui maintiendra aussi bien le noyau lorsque Linus Torvalds ne sera plus de ce monde ?
8  0 
Avatar de kain_tn
Expert éminent https://www.developpez.com
Le 03/09/2024 à 21:20
Citation Envoyé par Gugelhupf Voir le message
Cette "mégalomanie" existe dans toutes les équipes qui sont formattés à travailler avec un langage informatique.
Je dirais même: Cette "mégalomanie" existe dans toutes les équipes qui sont formatées à travailler avec un seul langage informatique.

Citation Envoyé par Gugelhupf Voir le message
Un langage informatique est un outil, ce n'est pas votre enfant ou votre animal de compagnie, l'affect n'a pas lieu d'être. Il faut citer les "vrais" avantages et inconvénients techniques de Rust pour être juste,
Je ne suis que partiellement d'accord. Je pense personnellement qu'il y a une forme d'art à concevoir et écrire du code. Il y a tout simplement quelque chose de plaisant et d'harmonieux à voir les patterns se former, les couches communiquer. Il y a de la beauté dans certaines expressions épurées.

Et dès le moment où ce n'est plus seulement un outil ou un travail alimentaire, alors les goûts de tous entrent en considération, un peu comme pour la musique et pour tant d'autres sujet ou soudain tout le monde a un avis extrêmement tranché sur ce qui est bien et ce qui ne l'est pas.

J'aime bien la syntaxe de Rust, mais ça doit venir du fait que j'ai pratiqué plusieurs langages assez différents au lieu de me spécialiser dans un seul, et du coup, mes goûts personnels ont évolué avec chaque langage et la philosophie qu'il portait.

J'essaye toujours de choisir mes outils en fonction des avantages qu'ils vont me procurer, mais il y aura toujours certains outils qui me plairont plus que d'autres pour une question de goûts personnels, sur un périmètre donné.

Bien entendu, quand on collabore sur un projet, il faut être capable de faire des compromis, comme sur le style par exemple, pour garder une base de code maintenable et compréhensible.

Je pense que le gros souci, là, c'est qu'il y a deux langages avec une philosophie différente, et sur deux périmètres différents: un est à l'origine de l'ensemble du noyau, l'autre n'est utilisé que pour certains modules (souvent nouveaux), et c'est peut-être vu par certains développeurs comme du code de seconde zone - d'où le manque d'effort et d'engouement de leur part.

Et le gars de redox_os fait un peu le malin dans son tweet et en profite pour se faire de la pub, mais je suis certain que si demain, ses nouveaux modules étaient développés en Lua (pour gagner du temps sur la compilation, puisque tu as évoqué le temps de compilation de Rust) avec le reste en Rust, il y aurait la même animosité de la part d'une partie de ses développeurs, et peut-être une forme de mépris.

Désolé pour le pavé, mais ta réponse m'a inspiré!
8  0