ça fait un moment que je n'étais pas venu sur le site. A ma grande surprise un tuto sur ruby est apparu ![:)](/static/smileys/smile.png)
Alors évidemment, je me suis empressé de le lire, et plusieurs choses me chiffonnent.
EDIT : Oups, je n'ai pas lu le tuto en bêta, mais celui en page d'acceuil. Je m'empresse de lire la bêta.
EDIT 2 : C'est fait, a présent je m'attaque à la partie 2
EDIT 3 : Finis !
Introduction
Dès l'introduction, on a le droit à "En Ruby, tout est objet". Le sens de cette phrase coule de source pour quelqu'un habitué à la notion d'objet. Un débutant sera alors, quant à lui, largué dès l'introduction. Je pense qu'en premier lieu, il est inutile d'aborder la notion d'objet. De toute façon, le tutoriel n'y fait jamais allusion (du moins, pour l'instant :D).
Nombres, arithmétique, variables et chaines de caractère
- On pourrait ajouter l'opérateur
**
(puissance) à la liste des opérateurs.
- On pourrait parler des variables globales ($globale), ou encore globales et constantes ($GLOBALE)
- Tant qu'à parler des string, je suis un fervent défenseur de l'interpolation des chaines. ON ne fait pas
"Hello " + mot
, mais "Hello #{mot}"
. En plus, c'est souvent plus efficace.
- Une chaine s'écrit avec
"
ou '
.
- Ne pas oublier la méthode
to_sym
dans la partie conversion de variable
- Pour un débutant, je ne pense pas que parler de
\n
soit judicieux. Autant dire Saut de ligne tout simplement. (EDIT : cependant, c'est très bien expliqué dans la bêta)
p
est une autre façon de représenter les objets (Elle appelle la méthode inspect
de l'objet)
Les conditions
Il faudrait préciser que tout a pour valeur de vérité vrai, SAUF false
et nil
.
Les boucles
Rien à dire
Mini TP
Rien à dire dessus.
Les tableaux
Rien à dire.
Les HashMap
Il manque cette partie
On pourrait aussi aborder les symboles dans celle ci, puisqu'ils sont souvent utilisés en tant que clef.
Les fonctions
Je n'ai jamais vu le terme "procédure" dans le langage Ruby. Une méthode renvoie TOUJOURS quelque chose. nil
n'est rien d'autre que le NULL
du C, le nullptr
du C++ ou le null
du Java. Et pourtant, dans ces mêmes langages, lorsqu'une fonction renvoie une valeur nulle, son type de retour n'est pas void
. Autrement dit, nil
n'est pas rien !
D'ailleurs, en parlant de nil
, il n'a encore jamais été abordé dans le tutoriel, il doit être explicité avant.
Il faudrait préciser que return
est facultatif
| def add(x, y)
return x + y
end
# Equivaut à
def add(x, y)
x + y
end
|
De même, il faudrait préciser que les parenthèses lors des appels de fonction sont facultatives.
Eventuellement, on pourrait parler des paramètres variadiques
| def f(*args, **kwargs)
# args est considéré comme un tableau
# kwargs est considéré comme une hashmap
end
|
Mais ça me semble un peu avancé à ce stade.
Les classes
Utiliser la méthode class
me semble indispensable dans ce chapitre.
Autres remarques
Les commentaires sont beaucoup utilisés dans les codes d'exemple, mais a aucun moment il n'est expliqué de quoi il s'agit.
Bon, je critique, je critique, mais je tiens tout de même à vous féliciter pour ce travail. J'ai déjà mis un temps fou à écrire ce commentaire, alors je n'imagine pas le temps que vous avez du mettre pour rédiger cette introduction.
Continuez comme ça ! Si jamais vous avez besoin d'un coup de main, faites le moi savoir ![;)](/static/smileys/clin.png)