Apprendre le Rust

Le langage multi-paradigme de la fondation Mozilla

a marqué ce sujet comme résolu.

S'il n'y en a pas besoin, je propose de ne pas mentionner le terme. Ou alors d'indiquer clairement que le lecteur est supposé savoir ce que c'est (comme savoir ce qu'est un paradigme, le fait d'être mutable ou non, etc.). Ca refroidit quand on ne comprend pas la moitié des termes de la première phrase du tutoriel.

+0 -0

J'ai mis un lien pour une explication de ce qu'est un multi-paradigme, mais ça m'embête quand même pas mal d'en mettre un pour un compilateur. Autant j'admets sans problème que tout le monde ne sache pas ce qu'est un paradigme (et ça n'a, de toute façon, que peu d'importance), autant ne pas savoir ce qu'est un compilateur quand on veut apprendre un langage qui se veut bas-niveau, ça me fait un peu mal. Ce tutoriel n'est pas pour les débutants, c'est indiqué. Je ne suis pas sûr qu'un débutant puisse commencer par Rust d'ailleurs (à vérifier, mais j'en doute fortement). Donc je suis particulièrement réticent à l'idée de devoir fournir une explication là-dessus.

+0 -0

Ce tutoriel n'est pas pour les débutants, c'est indiqué.

Je ne crois pas, justement. Tu dis juste, en introduction :

Ce tutoriel s'adresse à des développeurs ayant déjà programmé dans un autre langage.

Quand on a fait du JS par exemple, mutable, compilateur et compagnie, ça ne veut rien dire.

+0 -0

Je ne connais Rust que de nom donc je ne peux pas te dire s'il est adapté à des débutants, mais vu que tu sembles penser que non, peut-être serait-il tout simplement préférable d'indiquer que le lecteur est supposé avoir les bases en bas niveau.

Au pire, on pourra toujours compléter le tutoriel par la suite, pour le rendre accessible à plus de personnes. Cela me semble d'ailleurs intéressant, parce que les connaisseurs en bas niveau n'ont probablement pas besoin d'un tutoriel pour apprendre Rust. Leur doc est déjà bien faite. Un tel tutoriel pourrait alors être l'occasion d'introduire au bas niveau et au multi-paradigme.

+0 -0

Je ne suis pas sûr de ce que tu veux dire par "les bases en bas niveau". Juste "bas niveau" me pose un souci. Qu'est-ce que tu entends par là ? Juste dire un langage compilé serait suffisant non ?

J'ai fait du C/C++ toute ma vie et je t'avoue que j'aurais adoré avoir un tuto pour commencer (obligé de lire le code du compilo pour apprendre à l'époque). Beaucoup de concepts m'étaient totalement inconnus, et je ne parle même pas des principes de lifetime et d'ownership qui sont propres à ce langage. Savoir faire la différence entre une expression et une déclaration peut ne pas être évident non plus. Un tutoriel me semble donc tout à fait le bienvenue, même pour un vétéran du "bas niveau". :p

Rendre le tutoriel plus accessible peut être une bonne idée, mais je pense qu'il faudrait réécrire intégralement ce tutoriel pour que ça convienne. Le mieux serait plutôt de faire un cours qui le précéderait pour "préparer" les gens à entamer celui-là. T'en penses quoi ?

+0 -0

Je ne connais Rust que de nom donc je ne peux pas te dire s'il est adapté à des débutants.

Non. Il a une complexité équivalente au C++, et même si la doc est très bien, il n'y a pas de communauté suffisante autour pour le moment, encore moins en français. Donc demander comme pré-requis au tuto d'avoir fait un peu de C ou de C++ n'est pas aberrant. Après il est aussi possible d'expliquer les concepts, mais le tuto sera beaucoup plus long.

+0 -0

Je ne suis pas sûr de ce que tu veux dire par "les bases en bas niveau". Juste "bas niveau" me pose un souci. Qu'est-ce que tu entends par là ? Juste dire un langage compilé serait suffisant non ?

J'ai effectivement malmené l'expression "bas niveau". Maîtriser un langage compilé est suffisant oui, mais pas nécessaire. Plutôt un truc du genre : "connaître les concepts sous-jacents à un langage compilé".

+0 -0

Pas d'accord. On n'a pas besoin d'avoir pratiqué un langage compilé pour savoir ce qu'est un compilateur, un type, etc. Après tu fais bien sûr comme tu veux, mais c'est dommage de se priver des Pythonistes ou JScripteurs cultivés par exemple. ^^

+0 -0

Je pense que les Pythnistes et JScripteurs sont mieux placés pour apprendre le Rust que ceux venant de C/C++ (moins le cas pour ceux qui connaissent C++11 et/ou C++14). Mais je ne pense vraiment pas que ça les gênera. Si j'avais dû lire le man de gcc avant de commencer à coder, je n'aurais jamais codé. ;)

+0 -0

En termes de cible, pour m'être enfilé la quasi-totalité du rust-book aujourd'hui, je pense que le langage se destine à des développeurs relativement expérimentés pour en tirer le meilleur parti possible.

Je pense que c'est pas mal, pour l'apprécier, d'avoir déjà vu un sous-ensemble quelconque mais non-vide des notions suivantes :

  • itérateurs
  • map / filter / fold (reduce en Python)
  • types algébriques
  • polymorphisme paramétrique
  • interfaces abstraites
  • pile vs. tas
  • la gestion des erreurs via des types algébriques (qu'on trouve en Haskell, par exemple)
  • le mécanisme références du C++ ou de OCaml

Autant dire que la marche pour quelqu'un qui n'aurait vu que Python est quand même assez abrupte (mais pas insurmontable). Clairement, je pense qu'il faut bien connaître au moins un langage de programmation pour s'attaquer confortablement à Rust.

+3 -0

J'ai survolé, et je suis d'accord avec Vayel. Présenté ainsi, ça fait un peu foutra. On passe des erreurs à Cargo sans réel logique.

Pour la question des débutants, pour avoir essayer de toucher à Rust (python étant le seul langage que je connaisse bien, même si je bosse régulièrement en C/C++/Fortran) avec la doc officiel, je ne peux que confirmer ce que dit nohar, c'est abrupte.1

Le lien vers ton blog est cassé.

Et sinon, bravo pour le boulot accompli. ^^ Faire un tuto prend beaucoup de temps, d'autant plus quand il est bien fait (ce qui semble être le cas ici).


  1. À tel point que je reste dubitatif sur la possibilité de ce langage à sortir d'une niche (mais ce n'est pas le bon sujet pour parler de ça). 

+0 -0
Ce sujet est verrouillé.