Comme d'hab je ne suis pas d'accord. Le problème de Python est justement de ne pas laisser de lattitude aux programmeurs, à les enfermer dans une façon de faire. Effectivement, ça permet au premier abord de gagner de la lisibilité et de la maintenabilité, c'est con comme la lune (pour qqun aimant et comprennant la philosophie du langage, ce qui n'est pas toujours le cas par exemple pour moi) de reprendre du code, y'a même pas besoin d'essayer de comprendre comment le gars avant à conçu son code ... puisqu'en fin de compte ça donnera grosso modo toujours le même résultat (un code rempli de références abusives (self, __) avec aucune possibilité d'abstraction). On peut se satisfaire de cet état de fait comme on le fait en C (et ça n'a rien de péjoratif).
Si on prend Perl à l'opposé, c'est un langage plus permissif mais dont le gros problème vient du fait qu'il n'y a aucune structure établie, je veux dire par là que ce n'est déjà pas un langage objet, et à demie procédurale. Bref on peut faire n'importe quoi au niveau structure (et d'ailleurs la plupart du temps on fait vraiment n'importe quoi :). Ensuite Perl permet d'omettre un nombre considérable de commande pour faire une action (utilisation abusive des variables magiques) ce qui rend le code illisible.
Après il y à Ruby qui par rapport à Perl apporte déjà une structure claire : c'est un langage pur objet. Ensuite, il limite considérablement l'utilisation de raccourcie syntaxique, on ne peut pas rendre obscur un bout de code juste pour ce faire plaisir comme en Perl. La seule chose que permet Ruby c'est d'utiliser facilement des principes objets un peu évolué (et rien de plus, ça se limite toujours à des notions d'héritage/composition/surcharge ...). Pour l'instant, je n'ai jamais eu de problème pour lire du code en Ruby. Bien sûr il doit bien y avoir moyen de faire des choses complétement obscurs, mais je ne vois pas pourquoi un développeur normal irait se prendre la tête à le faire (en tout cas pas plus qu'en Python). Il utilisera juste la puissance que le langage lui offre pour répondre au mieux à ses besoins. Et c'est là que Ruby depasse Python, au lieu de limiter le développeur à faire toujours la même chose (principe du "on a toujours fait comme ça") il lui laisse une porte ouverte (qu'il est libre de prendre ou pas) pour faire évoluer ça façon de programmer. Tout cela en gardant une réelle cohérence, rien ne contredit l'approche objet et tout reste lisible au contraire de Python par exemple pour l'introspection (je trouve que demander à l'objet ou une classe les méthodes qu'il fournit plus logique que d'utiliser des fonctions externes (dir()).
Bref, je suis convaincu que Ruby apporte vraiment de nombreux plus tout en restant accessible au plus grand nombre de développeur (quelque soit leur origine).
[^] # Re: allez ...
Posté par pifou . En réponse à la dépêche Sortie de Ruby 1.8.2. Évalué à 3.
Si on prend Perl à l'opposé, c'est un langage plus permissif mais dont le gros problème vient du fait qu'il n'y a aucune structure établie, je veux dire par là que ce n'est déjà pas un langage objet, et à demie procédurale. Bref on peut faire n'importe quoi au niveau structure (et d'ailleurs la plupart du temps on fait vraiment n'importe quoi :). Ensuite Perl permet d'omettre un nombre considérable de commande pour faire une action (utilisation abusive des variables magiques) ce qui rend le code illisible.
Après il y à Ruby qui par rapport à Perl apporte déjà une structure claire : c'est un langage pur objet. Ensuite, il limite considérablement l'utilisation de raccourcie syntaxique, on ne peut pas rendre obscur un bout de code juste pour ce faire plaisir comme en Perl. La seule chose que permet Ruby c'est d'utiliser facilement des principes objets un peu évolué (et rien de plus, ça se limite toujours à des notions d'héritage/composition/surcharge ...). Pour l'instant, je n'ai jamais eu de problème pour lire du code en Ruby. Bien sûr il doit bien y avoir moyen de faire des choses complétement obscurs, mais je ne vois pas pourquoi un développeur normal irait se prendre la tête à le faire (en tout cas pas plus qu'en Python). Il utilisera juste la puissance que le langage lui offre pour répondre au mieux à ses besoins. Et c'est là que Ruby depasse Python, au lieu de limiter le développeur à faire toujours la même chose (principe du "on a toujours fait comme ça") il lui laisse une porte ouverte (qu'il est libre de prendre ou pas) pour faire évoluer ça façon de programmer. Tout cela en gardant une réelle cohérence, rien ne contredit l'approche objet et tout reste lisible au contraire de Python par exemple pour l'introspection (je trouve que demander à l'objet ou une classe les méthodes qu'il fournit plus logique que d'utiliser des fonctions externes (dir()).
Bref, je suis convaincu que Ruby apporte vraiment de nombreux plus tout en restant accessible au plus grand nombre de développeur (quelque soit leur origine).