Perl je perfektni, akorat ty objekty jsou slabota. Ale stale jeste ma sirsi podporu a to i ze strany svych modulu, kterych jsou tisice. Jsem zvedavy na Perl6, nevite nekdo kdy by mel vyjit?
jeden z klasickych vtipov o perli je, ze nikdy :-))
na www.perl.com chodia tyzdenne vycucy s developerskych konferencii ... z nich mam dojem, ze fakt perl6 nebude tak skoro :-((
objekty nic moc?
perl na rozdiel o inych jazykov nekladie programatorovi ziadne obmedzenia, vsetky si musi pouzivatel vybudovat sam.
nema sice rozne vymysly typu "abstraktne metody", "private/public/protected/friend", "exceptions" (resp, ma, ale nie compile-time a nie nativne v jazyku, vsetko su to programove rozsirenia).
v ktorom inom jazyku mozete dynamicky vo svojom module dat dekorator nad base class celeho stromu ? :-)) (pre odchovancov java-like oop ... nie, nie je to zverstvo, bez dokazu).
mozeme tu rozputat dalsi nezmyselny flame ... z jazykov, ktore ovladam ma perl najkratsiu dobu vyvoja pri zachovani zrozumitelnosti/citatelnosti pre buduceho vyvojara.
ale urcite by som zvolil nieco ine pre projekty typu "kernel", "office" ci "web-browser"
hmm, tiez som o tom pocul, v mojich java casoch na konferenciach septom spominane vlastnosti a linky na zdrojaky, cierne ovce "cisteho" programovania :-))
ale teraz vazne ... moje posledne skusenosti s javou ako programovacim jazykom su dakedy z verzie 1.2 - 1.3.
viem ze vtedy som riesil podobny problem, ktory v perli riesim jednoduchym lokalnym pridanim nadstavbovej metody do base class-u. dalo sa to, vraj.
mozete mi dat zopar klucovych slov (a radsej vysvetlenia skratiek ako skratky samotne)?
Aspect Oriented Programming. Tazko to na dve-tri vety zostrucnit. V principe sa jedna o pridavanie novej funkcnosti uz existujucim triedam, obvykle viacerym naraz - prida sa nejaky aspekt. Odporucam google a Spring Framework :)
inymi slovami java pouzije framework a vsetko co chce pouzit tuto ficurku musi bezat v 'harmonii a prirodnom sulade' s tymto frameworkom inac to nepojde ?
inac som si vsimol ze dost javistov odmieta dynamicky typovane jazyky a drzia sa iba toho svojho desne statickeho obmedzujuceho modelu a na kazde riesenie ponukaju nejaky framework...
Vazne nemam zaujem o flame. Kod, ktory pouziva nejaky objekt, ktory bol rozsireny o nejake vlastnosti pomocou AOP, nemusi mat o tom ponatia. A uz vonkocom nie o tom, pomocou akeho frameworku sa k tomu dopracovalo.
Netusim, co je zle na frameworkoch. Vacsina projektov s ktorymi som pracoval (nie od zaciatku) a ktore nepouzivali ziadny framework (mvc, orm, ...) sa po case stali neudrzatelnymi. Kazdy si mysli, co tam po tom, par kniznic, to si viem spravit aj ja, ale malo ludi si uvedomuje, kolko namahy za tym je. Kvalitny framework musi mat kvalitny navrh. Musi byt dobre vymysleny, odskusany v praxy, otestovany a bez chyb. Stovky mandayov.
Desne staticky obmedzujuceho modelu? Hmm.. tak vela stastia s dynamickymi jazykmi. Hlavne pri velkych projektoch. Ono clovek po case poriadnu typovu kontrolu doceni.
no zase som nemyslel ze sa zacneme urazat a nenapisal som ze na frameworkoch je nieco zle.
java je skratka jazyk, ktory nuti cloveka nieco spravit jednym stylom, dynamicky typovane jazyky davaju progamatorovi vacsiu slobodu (co ale moze zapricinit viac bugov).
velky projekt by som nechcel robit v dt jazykoch, ich sila je v ryxlom prototypovani. velky projekt chce nejaku organizaciu a tam s staticky typovane hodia viac. skratka use the right tool for the right job ;)
vlozim tam nejaky objekt, nejakeho stromu (tried) ... ale ta blbost zvana jazyk tomu nerozumie a vrati mi nieco uplne ine.
java je navrhnuta pre drevorubacov ... ty nie si programator, ty si pisac kodu, sup ti klapky na oci a neoopovazuj sa rozmyslat, nas framework a nas jazyk ta udrzi v mantineloch.
Autor píše "Parrot vznikl již v roce 2001 a nyní je na scéně verze 0.2.3, která implementuje pouze podmnožinu funkcionality budoucího Perlu 6." http://www.parrotcode.org/ - Na scéně je verze 0.3.0 (1.10.2005). Pokud vím tak Parrot má nyní téměř vše co Perl 6 potřebuje. Akorát PGE ( Parrot Grammar Engine - implementation of a regular expression/rules/grammar
engine) ještě není úplná. Mimochodme víte, že Parrot není stack based VM (jako všechny ostatní - Python,Java,.NET,...), ale register based, což by mu mělo přidat na výkonu. Parrot má sice svůj assembler (PASM), ale ten obsahuje funkce, které by jste u assembleru nehledali (od zmíněného PGE, přes continuations, až po práci s objekty).
Další problém je, že ani po pěti letech není Perl 6 zatím plně specifikována ( http://dev.perl.org/perl6/doc/synopsis.html ). Na druhou stranu Perl 5 nikdy specifikaci neměl, ta je dána až implementací :-).