Тёмный

CE QU'IL FAUT SAVOIR SUR RUST LANG avec Benjamin Coenen 

WeLoveDevs
Подписаться 3,9 тыс.
Просмотров 13 тыс.
50% 1

Dans cette dernière chronique issue de l'épisode 2 de Rencontre, Benjamin nous explique comment il a appris le RUST langage et comment ça fonctionne.
Pour la faire courte, le RUST c'est un langage informatique développé par Mozilla qui permet de construire des produits fiables, performants et productifs 👨‍💻 et en vrai ça veut aussi dire "rouille" en anglais (c'est pas très important à savoir mais ça enrichie votre english vocabulary !)
D'ailleurs si c'est un langage que vous maîtrisez, il y a quelques offres dispo sur WeLoveDevs.com en ce moment : w3d.to/rust-jobs
N'hésitez pas à nous faire des retours en commentaire sur cette vidéo 👇

Развлечения

Опубликовано:

 

14 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 16   
@AlainMazy
@AlainMazy 23 дня назад
Comme lui, j'ai commencé en Assembleur pour Microcontrôleur, on prenait l'instruction set du processeur et on codait avec les registres .
@WeLoveDevs
@WeLoveDevs 21 день назад
C'est clair, l'assembleur pour microcontrôleur, c'était une école de rigueur !
@Ontologiae7
@Ontologiae7 8 месяцев назад
Le type Option viens de OCaml. La première version de Rust a été codée en OCaml. Let a = … c'est du OCaml
@WeLoveDevs
@WeLoveDevs 21 день назад
Exact, le type Option vient bien d'OCaml, et on voit clairement l'influence d'OCaml dans la syntaxe de Rust !
@christianf1480
@christianf1480 2 года назад
Je le vois un peu perdu dans son explication sur la gestion mémoire: car il nous parle tout d'abord de comptage de références, ce qui implique une allocation dynamique avec une vérification au runtime (pouvant mener à un panic dans le cas d'échec). Si les emprunts en lecture suffisent, ou si un seul emprunt en mutable, alors la vérification sera faite statiquement à la compilation. Pour les cas simple, pas besoin de mentionner de life time sur les variables (le compilateur sait le gérer tout seul quand c'est trivial). Généralement, les débutants se cassent les dents sur le borrow checker, car ils veulent optimiser à mort en mettant tout sur la pile (performance) et en ne copiant rien (zero copy). Trop d'emprunts et cela devient évidemment une usine à gaz, alors qu'on est nullement obligé s'imposer cette contrainte (l'optimisation précoce est mauvaise, car il complexifie inutilement le code). Il faut mieux s'attaquer aux goulots d'étranglement, une fois qu'on les a identifiés.
@Sportingboybe25
@Sportingboybe25 2 года назад
Bonjour Christian, pourquoi il te semble que je sois perdu dans mon explication ? Quand je parle de référence counting au début c'est pour rebondir sur ce que Damien me dit. En effet le reference counting ne fait pas partie du 101 de la gestion mémoire en Rust puisque c'est pour un usage un peu plus avancé. Par exemple si on utilise des Rc ou des Arc, ce n'est pas la seule façon de le faire et c'est pour ça que j'indique que cela passe par des types wrappers. Par défaut Rust alloue tout sur la stack, cloné n'est pas un crime comme tu l'indiques. A comprendre aussi que le but du podcast n'était pas de rentrer en détails sur comment Rust fonctionne, j'essaie de rendre l'explication simple et macro pour ne pas perdre les gens et prendre 1h sur le sujet pour l'expliquer, ce que d'ailleurs je fais dans cette conf ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-YuHoujk8SUc.html que je t'invite à regarder si ça t'intéresse car là le but c'est de comprendre comment Rust gère sa mémoire. Alors oui j'essaie de faire de la vulgarisation, et quand damien me demande "est ce que c'est que c'est validé à la compilation qu'une référence est release ?" je réponds à la question ni par oui ou par non. Car là si on suit la conversation on parle des références venant du référence counting (donc Arc, Rc) et pas des références en mode borrow (& et &mut) et donc ce qui implique que Rc et Arc eux sont bien vérifiés au runtime et non à la compilation. Contrairement à & et &mut qui sont des réferences ou le borrow checker intervient. C'est d'ailleurs pour cela que j'enchaine sur le borrow checker. Concernant les lifetimes je n'ai pas réussi à retrouver la partie ou je les aborde. Peut être que je les ai abordé en expliquant qu'avant il fallait souvent les indiquer soit même, maintenant depuis NLL dans le compilateur c'est beaucoup plus simple donc comme tu le soulignes on a rarement besoin de recourir aux lifetimes sauf dans des cas plus avancés. Concernant tes propos sur l'optimisation précoce, je vois qu'on est en phase, j'en parlais justement dans une de mes précédentes confs, je t'invite à y jeter un oeil si ça t'intéresse ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-YZgNz1FETR0.html Mesurer est la clé. N'hésite pas à me dire si tu as d'autres incompréhensions je reste disponible. Encore une fois cette vidéo n'est pas là du tout pour t'apprendre à vraiment comprendre comment fonctionne Rust mais plutôt en parler et expliquer un peu ses spécificités.
@christianf1480
@christianf1480 2 года назад
@@Sportingboybe25 ouahhh quelle reponse! Je vois que tu connais bien le sujet. J'aime beaucoup Rust, mais la gestion mémoire n'est pas évident à expliquer. La doc de Rust est bien faite, mais en ce qui concerne les différentes possibilités, et les combinaisons possibles que proposent la librairie std, on est vite perdu, et on a des fois du mal à savoir ce qu'il faut utiliser suivant notre besoin.
@Sportingboybe25
@Sportingboybe25 2 года назад
@@christianf1480 j’espère avoir pu te répondre du mieux que je pouvais. Je sais que je ne suis pas toujours très bon pédagogue sauf lorsque je suis préparé (par exemple pour mes talks je m’y reprends à plusieurs fois et je teste différentes versions pour voir comment je peux mieux expliquer les choses). Au plaisir d’échanger avec toi de nouveau à l’avenir :)
@WeLoveDevs
@WeLoveDevs 21 день назад
Comme tu le dis bien, il vaut mieux se concentrer sur les vrais goulots d’étranglement plutôt que d’ajouter des complexités inutiles dès le départ.
@FileHandle1
@FileHandle1 5 месяцев назад
Les borrow n'ajoutent pas de compteurs dans le code compilé. Le compilateur fait ca en static analysis et rien n'est fait à runtime. Si les algos deviennent plus compliqués, en particulier avec accès partagé entre threads ou autre, on wrap la variable (potentiellement avec un emboitage de wraps pour différentes functionalities heap/mutex ....)
@WeLoveDevs
@WeLoveDevs 21 день назад
C’est tout à fait ça ! En Rust, le système de borrow checking est entièrement résolu à la compilation, donc aucun coût supplémentaire n’est introduit au runtime.
@domidomi7468
@domidomi7468 3 месяца назад
Après l'avènement de l'horrible JS on a le retour du "tu programmeras dans la douleur". Cette époque aurait pu être tellement belle.
@WeLoveDevs
@WeLoveDevs 21 день назад
Pourtant, avec l’évolution de l’écosystème (ES6, TypeScript, Node.js, etc.), JS a gagné en maturité et en structure. Mais c'est vrai que cette "renaissance" du langage n’efface pas la frustration des premiers temps, où on avait l’impression de coder "dans la douleur".
@Ontologiae7
@Ontologiae7 8 месяцев назад
Et la philosophie de refuser de compiler.tant que le code n'est pas carré, c'est typique du OCaml
@WeLoveDevs
@WeLoveDevs 21 день назад
C'est un peu frustrant au début, mais ça paie à long terme en réduisant les bugs et les comportements imprévus.
@fr530
@fr530 Год назад
Oui ou python donc je comprends pas mdr
Далее
Pourquoi envisager Rust (Alexis Delhelle)
55:31
Просмотров 5 тыс.
Apprendre le RUST partie #1 FR
26:41
Просмотров 14 тыс.
Go vs Rust lequel apprendre en 2024 ?
6:59
Просмотров 13 тыс.
Le remplaçant de JavaScript, c'est Rust.
4:31
Просмотров 6 тыс.
L'histoire de la pomme APPLE !
0:58
Просмотров 2,3 тыс.
Flipping Robot vs Heavier And Heavier Objects
0:34
Просмотров 39 млн
Поставил на место 🤙
0:17
Просмотров 2,9 млн