Ruby je skvelej jazyk, ale napsat v tom _rozsahlej_ projekt a pak zmenit jednu metodu v nejaky tride, ktera je hodne pouzivana - to je koledovani si o velkej pruser, protoze u Ruby neni zadnej preklad, zadna kontrola typu a parametru - vse jen za behu - a to je vazne pozde. Jinak pro skriptovani a mensi zalezitosti je "vykon" psani v Ruby neuveritelnej.
Odvazny tvrzeni :).
Jak velkej je projekt, kterej ma v Ruby 20 tisic radku, coz odpovida odhadem tak 30 tisicum radku v Jave? Asi to bude pouze mensi zalezitost, protoze jinak si nedovedu predstavit, proc jsem s Ruby tak moc moc spokojenej.
P.S.2 Jestli chcete pouzivat typovou kontrolu pri prekladu, jako hledac chybneho volani prave zmenene metody, tak si v jakymkoliv objektovym jazyce koledujete o dost velky pruser :).
Co presne si predstavujete pod pojmem compile-time check? Jestli kontrolu syntaxe, tak tu dela vetsina interpretovanych jazyku pred spustenim pri parsovani zdrojaku. Jestli kontrolu datovych typu, tak ta Vam neni v lepe navrzenych objektovych jazycich prilis k uzitku.
Vsichni programatori v Jave jsou tak genialni, ze jim staci program zkontrolovat kompilerem a pak si jsou bez testovani jisti, ze nema zadne chyby? Nebo je prani otcem myslenky? - neco jako udelat ze spatny featury dobrou: "k rychlemu a malemu jazyku ma Java fakt daleko a uprimne doufam, ze tak daleko nikdy nepujde...".
P.S. Nemuzu si po dvou letech intenzivniho programovani v Ruby vybavit jedinou chybu, ktera by se dala zachytit kompilerem, a kterou neodhalil parser pred spustenim nebo jsem ji nezjistil pri prvnim testu funkcnosti ;). Takze si troufam rict, ze tvrzeni, "ze kompilace snizuje mnozstvi chyb v programu nebo zrychluje jeho vyvoj", je pouze teoreticky nesmysl ;)
Tak to ja si zase vybavuju spoustu situaci, kdy compile-time kontrola datovych typu zachytila stupidni preklepy a usetrila mi cas tim, ze jsem se k samotnemu testovani nemusel ani prokousavat... Samotne testovani je samozrejme nutne, nicmene pokud probiha tahle cela typova maskarada az v dobe behu programu, neni to tak bezpecne, a ladeni chyb je obtiznejsi.
Souhlasím s vámi, že statická (compile time) typová kontrola nesnižuje množství chyb a neurychluje vývoj (nejraději používám jazyk Smalltalk). Rychlost vývoje spíše zpomaluje. Stejně člověk musí testovat. A chyby v záměnně typů jsou velmi snadno odhalitelné a opravitelné. Nadruhou stranu se domnivám že pro dokumentační účely a refaktoring se může hodit.