Mam vas prispevek chapat tak, ze jste "Perlista" a naopak jste nevidel Python/Ruby z okna one bajne tramvaje? :)
Psal jsem skripty v bashi, perlu, ruby nyni pouzivam python a perl uz nechci ani videt. Svuj ucel perl plni dobre, o tom neni pochyb, syntaxe je ale "vypichnete mi oci!!!!!111jednajenajedna". Na to, abyste si precetl perli skript a pochopil co presne dela potrebujete daleko vice casu nez obdobny skript v jinem z vyse zminenych "jazyku". Pro nas je to alfa-omega argument.
Perl je "write-only". Toto neuzna jen zaslepeny perl-vyznavac (a mozna troll v diskuzi).
no, prosim, syntaxe perlu se vam nezda prehledna. co takovy forth nebo lisp? a take jsou plnohodnotne jazyky. bash take nema trikrat prehledny kod... ruby? ten snad jeste neni ani plnolety, o tom bych vubec nepovidal jako o necem dovyvinutem za par desetileti treba nahradi perl.
jinak - neni zadny problem cist perl kod napsany s dodrzenim PBP. a to ze nekdo to nedodrzuje - neni problem jazyka ale kodera
Je to problém jazyka. Stačí totiž srovnat Perl a Python. V Pythonu je to vyřešeno lépe, a proto je také průměrný, většinový, typický program v Pythonu asi o tři řády čitelnější než v Perlu. A to i když je autorem stejné prase, dokonce i prase, co Perl vychvaluje a Python proklíná (a píše v něm z donucení). Vlastní zkušenost.
Neskutečně ukecaný Python? To asi mluvíme o jiné technologii, nějaké zmatení pojmů.
Python není ukecaný, ale také to není těsnopis či binární výstup nějakého komprimačního algoritmu (tak často vypadají programy v Perlu). Takže imho přesně ten správný a dobře vyvážený poměr. Srozumitelný, čitelný a přitom maximálně úsporný.
Co takhle uvest priklady na jazyky, ktere clovek i vyuzije a neumre hlady? A jazyk, ktery umoznuje prasarny bude plny prasaren a vychova prasata. PBP si uvadejte nekde ve svem svatem pismu ale prax je takova, ze cist kody po perlistech je nocni mura. Nastesti ten jazyk uz vymrel.
Asi si sa nezvladol perl naucit, tak si skoncil iba u pythonu a teraz na perl nadavas.
Fakt je taky, ze oba su dobre. Python bol inspirovany perlom, ale napr. nema tak sikovnu pracu s regulatnymi vyrazmi, ma to nestastne vynutene odsadzovanie a ma 2 verzie 2.x a 3.x.
Najlepsie je nenadavat a naucit sa oba.
Vynucené odsazování je strašně náchylné k chybám při modifikaci kódu. U C-like programů poskytují závorky další kontrolu, není to tak, že by lidi neodsazovali.
Jako side effect má tahle forma navíc to, že nelze slušně napsat složitější lambdu (rozuměj víc než jeden statement), nemá jasný scope proměnných. Pak se musí dělat úchylnosti jako deklarace pole v hlavní funkci a v lambda pak modifikovat její prvek.
Obecně jasně daný scope proměnné a jejich povinná deklarace ve strict režimu je něco, v čem Perl drasticky převyšuje všechny ostatní scriptovací jazyky a výrazně to zvyšuje efektivitu vývoje. Snadná viditelnost scope je navíc klíčová i pro čitelnost programu.
Na druhé straně, co mi u Perl chybí, je propracovaný Exception systém. die+eval, __DIE__ a __WARN__ handlery není něco, co by se dalo řešit spolehlivě programově a Error module je prostě nestandardní, nehledě na chybějící podporu v jádru jazyka.
Jasný (relativně, viz níže) pro python, ne tak jasný pro člověka - proto jsem mluvil o čitelnosti. Nehledě na to, že občas má proměnná složitější logiku a není jednoduše vidět, zda má třeba význam jen pro jednu iteraci cyklu nebo se udržuje stav přes vnější scope. V ještě horším případě, když je v kódu chyba, tak se může proměnná číst občas před prvním přiřazením a najít a reprodukovat něco takového je pak na dlouhé zimní večery.
Tohle je v Perl krásně vidět - deklarace proměnné určuje její scope, a to na úrovni jednotlivých bloků, nikoli jenom globální vs lokální jako u Python, Php, Ruby, JavaScript a dalších.
PS: Ne, že bych někdy tyhle palce dolů a nahoru bral vážně... Ale opravdu mě překvapuje skóre 0-3, opravdu má někdo potřebu dát najevo slepou lásku ke svému oblíbenému jazyku před reálným zamyšlením nad jejich klady a zápory?
> Python bol inspirovany perlom
Coze? Zdroj! ...
Co vim ja, Python byl inspirovany ABC a vznikl ve stejnou dobu jako Perl.
> nestastne vynutene odsadzovanie
Vazne? To naopak znemoznuje prasit kod jak se komu zachce. Ale proti gustu...
> verzie 2.x a 3.x
Perl 5 a 6? O_o
> Najlepsie je nenadavat a naucit sa oba
Naprosty souhlas. S dodatkem: "a pak uz perl nepouzivat pro klid duse"