Perl je šikovný a výkonný nástroj a jako takový není rozhodně chybou se ho naučit především pokud často pracuješ v systému unixového typu (a nebo si do Windows doinstaluješ něco jako cygwin nebo mingw) a často potřebuješ rychle něco ad-hoc splácat dohromady. Je to velmi mocný nástroj a tak je dobrý sluha, ale zlý pán.
V dnešní době nemá cenu se ho učit jako programovací nástroj k serióznímu vývoji aplikací. To píšu jako člověk s osmiletou praxí vývoje velké aplikace v týmu (~200kSLOC perlu v 10 lidech). Je to jazyk, který obsahuje takové množství nebezpečných, zastaralých a škodlivých vlastností, že je lepší se mu raději vyhnout. Namátkou kontexty, tak první tři roky si člověk říká jak úžasná je to věc, ale jen do té doby něž zjistí, že sub {(3,2,1)} ->()+1 vrátí "pochopitelně" 2 a ne 4. To aby člověk skontroloval každou funkci, která vrací pole jestli používá pomocnou proměnnou (sub {my @a = (3,2,1); @a}->()+1 nebo sub {@{[3,2,1]}}->()+1 "pochopitelně" vrátí 4). Nebo spousta globálních proměnných, takže každý DESTROY nebo obsluha přerušení se musí psát jako když člověk vyrábí nitroglycerin, protože tyto globální proměnné se mohou změnit na hodně neočekávatelných místech (obsluhy přerušení kdekoli). Nebo CPAN, úžasná věc než člověk nezačne trávit víc času hledáním a opravami chyb v 3rd party knihovnách než vývojem vlastního kódu. (A ke kvalitě CPAN knihoven vlastnosti perlu přispívají měrou nemalou.)
Nebudu zastírat, že perl je úžasný jazyk a jde v něm programovat velmi produktivně. Po tolika letech praxe je to jazyk, ve kterém jsem na některé věci zdaleka produktivnější v než čemkoli jiném, Jenže na cokoli co zavání více jak 1kSLOC, cokoli co má běžet trochu delší dobu než jen schroustej data a vyplivni vásledek, cokoli co má komunikovat s okolím jako server, cokoli co se má vyvíjet víc než pár měsíců, cokoli na čem má pracovat víc lidí (a jejichž znalost perlu není na expertní úrovni, protože kód bývalého programátora C, C++, Java, Pascal atd. je pro perl experta utrpení), je mnohem lepší se poohlédnout po jiném jazyce.
Takže nakonec je to pohyb v kruhu. Perl se hodí na jednoduché jednorázové věci, ale na to, aby je člověk dokázal napsat efektivně, musí znát perl do míry, kterou nezíská jinak než spoustou praxe, kterou nemá jak získat než tvourbou větších věcí. (Namátkou viz. http://pandora.idnes.cz/part/2010/2/4215) Nakonec člověku, který nezná perl dnes a nenutí ho do toho okolnosti (práce, legacy kod, vlastní puzení), bych ho rozhodně nedoporučil. I když kolik programovacích jazyků znáš, tolikrát jsi programátorem. Každý další jazyk tě může naučit nové programovací postupy a paradigmata a těch právě perl poskytuje hned několik. |