Godzil (./3605) :
Well, ecrit moi un OS en Rust, ecrit moi un driver en Rust.
https://www.redox-os.org/ par exemple
Godzil (./3605) :
Quand je vois la différence du code entre le premier exemple en C et ce "qu'il faut faire en Rust" la complexité du cote est au moins 2x supérieur en Rust. Pas sur que ça soit vraiment plus efficace.
En effet le Rust est plus complexe a mettre en œuvre, parce qu'il essaye de forcer de fournir certaines garantie au programme. C'est vrai que parfois c'est acceptable de préférer la simplicité a la fiabilité, mais il faut quand même faire attention, car on peut finir par ce retrouver avec JavaScript.
On va dire que sur une échelle Simplicité / Correction, on a JavaScript > C > C++ > Java > Rust > Ada. Sachant que ça reste approximatif. Par exemple C/C++ sont un peut particulier, car ils sont simples à utiliser, mais très complexes à bien utiliser.
Godzil (./3605) :
(et puis un langage qui viens du monde Web, et dont le nom signifie rouille...)
Ce n'est pas parce qu'il est soutenu par Mozilla que le langage vient du web. C'est clairement un langage système à comparer au C ou au C++.
Mozilla s'en sert absolument pas pour des sites Web mais pour réécrire des parties de leur moteur Web, qui est actuellement en C++.
Godzil (./3605) :
Oh et il manque toute les parties du genre, comment l'interrupt handler est mis en place, et tout ce qui va avec. Rust supporte-t-il seulement les pointeurs de fonctions?
Bien, sur. C'est le minimum pour un langage système.
Ça serait bien que tu te renseigne sur un langage avant de le critiquer.
squalyl (./3606) :
uther: moi je me dis que les autres langages sont moins pratiques. Y'a le ADA pour l'embarqué aussi, y'a des libs pour stm32... mais les parties qui accèdent au matos sont en C
Rust est clairement quelque part entre ADA et C. Comme le ADA il vise a fournir plus de garantie sur le programme quitte à emmerder un peu le développeur.
Maintenant contrairement au ADA, il est plus poussé vers les garanties à la compilation qu'au Runtime, pour fournir de meilleure performance. Et il permet des échappatoires (block unsafe) qui font qu'il est rarement obligatoire de recourir a un autre langage, si ce n'est pour s'interfacer avec l'existant.