Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Et on va lancer les deux pour chacune des vidéos lues dans Firefox.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Et on va avoir de la télémétrie pour vérifier les résultats.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Et on s'est rendu compte que ça fonctionne parfait, c'est trop bien, on n'a aucun crash et les perfs sont bien meilleurs.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Alors, ils ont réglé à plein de niveaux.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Le premier, c'est la gestion de mémoire.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
La gestion de mémoire dans Rust, le modèle de programmation.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Je vais faire utiliser des mots.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
C'est le ownership, le borrowing et le borrow checker qui sont trois concepts dans Rust pour avoir une gestion de la mémoire fine et qui est complètement déléguée, entre guillemets, au compilateur.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Alors, quand on fait du Rust et qu'on débute,
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Il faut être prêt à être insulté de manière très polie et très sympa par le compilateur.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Donc au début, quand on fait du Rust... Il y a un petit côté sadomaso.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Oui, un peu, oui.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Donc par exemple, on reprend l'exemple, encore une fois, de la concaténation de chaînes de caractères.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Tu as deux ou trois manières de représenter des chaînes de caractères en Rust.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Quand tu essaies de concaténer des chaînes de caractères, si tu fais des STR ou des OS STR, il faut faire des conversions, ce n'est pas toujours simple.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Mais le but, c'est d'enlever les capacités de se tirer des balles dans le pied.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
de manière intrinsèque dans le langage.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Et le compilateur va passer du temps à te critiquer.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Mais il te critique, il est très sympa néanmoins, il va te dire, là t'as fait une erreur, voilà ce que tu devrais faire à la place.
Underscore_
Pourquoi les devs réécrivent tout avec ce langage ? — Sylvestre Ledru (Mozilla)
Je vais aller plus loin dans l'exemple que tu utilises de Google, et nous on le constate aussi à Mozilla, c'est quand tu relis du code écrit en C ou C++.