Zasto se meni ne svidja Ruby? Sintaksa je veoma cudna i neprijatna - uvodjenje "pipe" znaka (|) umesto normalnih zagrada i ostale nelogicnosti su mi veoma odbojne. Po mom misljenju, niko ne bi cuo za Ruby da nije Railsa, tako da je potrebno Railsu odati veliko priznanje za to.
Python s druge strane (a znam da se neki nece sloziti s tim) ima veoma cistu i striktnu sintaksu. Striktna sintaksa ima svojih mana, ali ima i velikih prednosti - kôd je veoma citljiv i veoma lako se razume, sto cini rad na velikim projektima i odrzavanje (narocito tudjeg) kôda *znatno* laksim nego (recimo) Ruby. Anonimne funkcije (lambde) su pojava koja je odavno ukljucena u Python jezik (lambdas rock!).
Ruby primer koji si naveo (CaseFallthrough) mi bas i nije najjasniji - kôd mi je donekle jasan (procitati ponovo prethodni pasus o citljivosti kôda ;)), al' nisam bas siguran sta je ocekivani rezultat. U metodu when, prvo se dodaje vrednost
value u
done niz a zatim se poziva blok kôda ukoliko se u nizu nalazi var? Da li sam to pravilno razumeo? Takva konstrukcija u pythonu moze da se resi sa dekoratorima. Moze bolji (jasniji) primer case fallthrough tehnike u Ruby-ju?
Kad smo kod
switch konstrukcije, koja je ostala iz vremena proceduralnih i linearnih jezika (pada mi na pamet goto :)) - python je OO jezik koji podrzava polimorfizam, switch konstrukcija se refaktorise sa polimorfizmom, gde se logika switch uslova
premesta u objekte (svaki objekat "zna" kako da resi situaciju na svoj nacin).
Koristim python dosta dugo (reda nekoliko godina) i switch konstrukcija mi je bila potrebna samo jednom - nju sam resio na trivijalan nacin (sa dict-om) iako sam najverovatnije mogao da je i zaobidjem..
[Ovu poruku je menjao alex dana 02.02.2007. u 20:31 GMT+1]
Alex: My favorite site is
http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x