16-06-2009, 09:31 PM
(16-06-2009, 08:43 PM)Sephi-Chan a écrit : Tu noteras que user.prenom est plus lisible et concis que $user->prenom, de même que user[:prenom] par rapport à $user['prenom'].Ah.
Citation :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.C'est une contrainte, en PHP on peut toujours utiliser les accolades autour d'une variable (c'est plutôt une bonne pratique d'ailleurs). L'inconvénient de PHP dans ce cas et de ne pas imposer une notation, mais de laisser le choix.
Citation :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.Perso je n'ai toujours pas réussi à ne pas vomir devant des lignes de ruby manipulant fièrement des listes et des chaines de caractères avec des opérateurs ésotériques à base de caractères spéciaux. Les tableaux sont d'excellents exemples : plutôt que de faire un système de hash standard ou la clé est une variable, nooooon il fallait qu'ils rajoutent un caractère spécial (":"). Et c'est partout comme ça : c'est super de pouvoir faire trouze-mille choses en tapant :a->#~b! mais c'est impossible à relire
Citation :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.De manière général, les globales c'est mal, et en PHP là encore rien n'interdit (au contraire, c'est une bonne pratique) d'utiliser $GLOBALS.
Là encore, liberté de choix versus choix unique.
C'est pour ça que la dernière fois je ralais sur ces effets de mode et associait Mac à Ruby : il y a la même philosophie derrière, qui est "ne laissons aucun choix à l'utilisateur, tout en lui expliquant qu'au fond il a le choix, mais qu'on a déjà fait les meilleurs pour lui, il sera content". Et j'adhère pas
Cela dit, il y a plein d'autres langages entre les deux, qui sont moins permissifs, et moins "write only". On appréciera le fait que quasiment tout le monde ait cité Python dans ses messages (moi y compris) mais que personne ne l'utilise
Ressources [PHP][MySQL][prototype.js]