16-06-2009, 08:43 PM
(Modification du message : 16-06-2009, 10:15 PM par Sephi-Chan.)
(16-06-2009, 07:36 PM)Argorate a écrit : Moi j'ai regardé les tuto que tu as mis tout a l'heure:
voir écritCitation :puts "Je m'appelle #{age}, j'ai #{prenom} ans."comparé aCitation :echo "Je m'appelle $age, j'ai $prenom ans."
ta phrase
Citation :ça m'agace de voir des gens (notamment des débutants) qui se jettent sur PHP seulement parce qu'ils ne connaissent pas Ruby (ou Python), qui permettent de faire les même choses mais d'une façon bien plus propre/élégante.
me semble quelque peu sonner faux... :p
La syntaxe semble plus moche et plus chiante: taper un "#" il faut faire deux touches éloigné + encore deux touches pour une ouverture d’accolade et pareil pour fermer…
En php tu appuis sur la touche $ et c'est fini...
J'espère donc que tu excuseras mon scepticisme sur la supériorité de Ruby sur ce que j'en ai vu du moins^^
Certes, Argorate, mais mes dires concernent la globalité de Ruby (rien qu'à voir l'exemple du $this->prenom là où prenom suffit en Ruby, le point-virgule, également). Ici, ton contre-exemple est tout à faite anecdotique (mais je pense que tu le sais) et je vais même enfoncer le clou :
En PHP, quand tu manipules des entrées de tableau (ou des propriétés d'objets) dans une chaîne, la documentation conseille de protéger l'expression en l'entourant d'accolades (note qu'on peut le faire également pour les chaînes) :
echo "Je m'appelle $prenom.";
echo "Je m'appelle {$prenom}.";
echo "Je m'appelle {$user->prenom}.";
echo "Je m'appelle {$user['prenom']}.";
puts "Je m'appelle #{prenom}."
puts "Je m'appelle #{user.prenom}."
puts "Je m'appelle #{user[:prenom]}."
Tu noteras que user.prenom est plus lisible et concis que $user->prenom, de même que user[:prenom] par rapport à $user['prenom'].
En Ruby, la cohérence est de mise, on utilise toujours #{variable}. C'est ce genre de petits riens en ce qui concerne la cohérence qui font la lisibilité de Ruby.
PHP est un très mauvais élève à ce sujet (isset(), is_numeric(), etc.), c'est sa réputation de langage sale est méritée : il est plus facile de faire un code sale avec PHP qu'avec Ruby.
J'en profite également pour souligner qu'en PHP, on ne différencie pas une variable globale d'une variable locale. En Ruby, une variable globale est préfixée d'un symbole dollar. A nouveau : clarté du code oblige.
Cela dit, je tâcherais de t'en convaincre avec la suite des articles. Je préfère que tu te rendes compte toi même de ses petits riens qui font l'élégance de Ruby.
Sephi-Chan