tsp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tsp-devel] Troll sur languages de script


From: Stephane Galles
Subject: Re: [Tsp-devel] Troll sur languages de script
Date: Mon, 27 Mar 2006 21:10:21 -0500
User-agent: Mozilla/5.0 (Linux Firefox)



Erk wrote:

Donc du coup Ruby partirait déjà avec un handicap face à Perl
puisque son nom prends racine en Perl :))
Hum... C'est un troll, c'est ça ?
Je me retiens, je me retiens, je me retiens...

Quoiqu'il en soit j'apprends ce moment Python et là je pense
que je vais réellement m'amuser car les idées sont
claires la syntaxe également c'est de l'OO "propre" surtout
avec le nouveau modèle objet (Python 2.2 et suivant).

Il y a un meta modèle (classe = objet de première classe)
"surchargeable" qui permet via des fonctions spéciales
de contrôler comment sont crée les classes :)))
Et évidement les instances de ces classes.

Mais je ne suis qu'un Padawan donc je reviendrais quand
j'aurais fini ma formation...

Je ne suis qu'un tout petit Padawan moi même en Python et Ruby.
Je ne savais pas qu'il y avait eu cette modification en Python 2.2.

Néanmoins, cette modification avec le nouveau modèle objet Python
ressemble très fort à la manière dont a été conçu Ruby depuis le début.
(Les classes sont les des objets, par exemple la classe String est en
fait une  instance singleton de la classe Class ;  c'est tellement
explicite que la construction d'un nouvel objet se fait à la mode factory :
String.new())
Pour faire une nouvelle classes en métaprogramming, tu peux enrichir
en runtime une classes existante, ou bien faire une nouvelle instance
de Class.

Sinon pour le tout OO ben forcement Smalltalk c'est mieux
vu que même des blocs de code sont des objets:
http://fr.wikipedia.org/wiki/Smalltalk

Oui, comme en Ruby, avec les Blocks ou closures.
Ce qui est totalement idiomatique en Ruby, et très utilisé :
http://www.martinfowler.com/bliki/Closure.html

Ma préférence va à Ruby justement parceque les closures remplace
de manière plus générique les 'comprehension' de Python.
http://martinfowler.com/bliki/CollectionClosureMethod.html

Avec ça les itérateurs sont un bonheur à coder.

J'aime beaucoup Python mais j'ai parfois la sensation (à tort ou à raison)
que le language a des constructions ad hoc et cela me déstabilise.
Les 'comprehension' en sont un exemple, mais les mélange de procedural
et d'objet en est un autre.

Par exemple, je ne comprends pas qu'obtenir la longueur de la chaîne "toto"
nécessite un appel procédurale en Python : len("toto")
alors qu'en Ruby on fait : "toto".lenght()
D'où sort cette fonction len ?
Rien que ça m'a fait regardé du coté de Ruby.

En ruby, même les tableaux sont des objets avec leur opérateur [], ou []=
(bon, OK, ça, ça ferait penser au C++, mais bon, il y a aussi de bons
cotés à la surcharge d'opérateur, il ne faut pas en abuser c'est tout)

Enfin, en Ruby les appels de fonction sont en fait des messages que s'envoient les instances d'objet. Comme il est possible de manipuler ces messages directement, cela rend trivial l'implémentation de d'Observer, Proxy et autres pattern Command.

Je me sens faiblir on m'a dit le plus grand bien
de Ruby On Rail, http://www.rubyonrails.org/, est-ce que tu connais?
Oui, il paraît que c'est très bien. Je n'ai pas eu l'occaz de jouer avec. Pour l'instant je suis dans ma phase où je regarde de loin et je lis beaucoup avant de commencer à
utiliser.

Sinon je sens que les délais actuels de la liste vont tuer ce Troll
dans l'oeuf :)))

Oui, un des mes messages est arrivé 4 jours après, et donc en double...

Steph






reply via email to

[Prev in Thread] Current Thread [Next in Thread]