Ja, man braucht lange um eine A4 Seite voll mit Metaprogrammierung zu verstehen, nur kann die eben auch so viel wie 10 Seiten ohne (immer unter Bedingung, dass es sinnvoll eingesetzt wird). 10 Seiten lesen, dauert auch länger als eine zu lesen.
Das Problem bei Metaprogrammierung wie bei allen "cleveren" Sachen ist, dass es womöglich jemand überhaupt nicht oder falsch versteht. Ich würde daher instance_eval, class_eval oder eval nie ohne Kommentar benutzen, womit es dann natürlich wieder länger wird.
Jetzt will ich mal ne A4 mit Code in dem Stil von dir:
"["year","month","day","hour","minute","secound","millisecond"].each{|z| eval "t.#{z} = #{z} + time.#{z}"}
y = t.year
if(t.month > 12 || (t.month==12 && t.day==31 && t.hour>=24)) y+=1
m = t.month
if(t.month > 12 || (t.month==12 && t.day==31 && t.hour>=24)) m = 1
maxmonth = if [1,3,5,7,8,10,12].include?(m)
31 # januar, march, may, july, august, october, december
elsif m == 2
(y % 4 == 0) ? 29 : 28 # february
else
30
end"
Mal sehen wieviele Ruby Geeks dann diese A4 Seite problemlos checken ohne 10x zu lesen XD
Ja, man braucht lange um eine A4 Seite voll mit Metaprogrammierung zu verstehen, nur kann die eben auch so viel wie 10 Seiten ohne (immer unter Bedingung, dass es sinnvoll eingesetzt wird). 10 Seiten lesen, dauert auch länger als eine zu lesen.
Das Problem bei Metaprogrammierung wie bei allen "cleveren" Sachen ist, dass es womöglich jemand überhaupt nicht oder falsch versteht. Ich würde daher instance_eval, class_eval oder eval nie ohne Kommentar benutzen, womit es dann natürlich wieder länger wird.
Und das hat jetzt mit dem Thema Scriptsprachen genau was zu tun?