On Fri, 23 Jun 2006 10:43:53 +0200, chiaro scuro wrote:
Ok, la cosa più fichetta di ruby è la metaprogrammazione, e le DSL, non
nascondiamocelo
Si e anche no. Vero la metaprogrammazione… ma la metaprogrammazione
(anche se diversamente) la si ha anche in Python, per dirne uno. In
Smalltalk, per dirne un altro.
DSL invece no. Quello per dire in Python non si fa, punto e basta.
Sintassi troppo rigida.
La facilità di creare DSL di Ruby è favolosa.
Ma anche solo il dinamismo, IMHO. Con i blocchi e con altre facilty va
oltre ogni altro linguaggio a me noto nel fondere il paradigma ad
oggetti con la programmazione funzionale, ma togliendo le cose
“innaturali” (ovvero che chi non è familiare con il paradigma trova
strane) della stessa.
def qsort(list)
return [] if list.size == 0
x, xs = *list
less, more = xs.partition{|y| y < x}
qsort(less) + [x] + qsort(more)
end
Un altro quicksort in Ruby.
x, xs = *list
questo cosa è? Non è forse un car / cdr?
less, more = xs.partition{|y| y < x}
questo poi è assolutamente geniale. E così via… anche vedere come
certi algoritmi “noiosi” in C diventano banali (ancorchè lentissimi) in
Ruby è IMHO fantastico.
Il resto è più o meno replicabile in altri linguaggi. Il nostro
differentiator è lo stile.
Si… a sboccio direi di si. Ma cosa intendi?
IMHO c’è qualcosa di “magico” che non riesco a definire.
Io metterei nella lista soprattutto ActiveRecord e Rake.
Vero. Guardare come funziona ActiveRecord è semplicemente fenomenale.