Perl v roce 2014 a v budoucnu

Perl v roce 2014 a v budoucnu
« kdy: 27. 04. 2014, 12:28:14 »
Zdravíčko :)
před nějakou dobou jsem tu založil vlákno týkající se použití Perlu na automatickou administraci Linuxu... Tentokrát bych to chtěl víc zobecnit a zeptat se jestli vůbec na něco používáte Perl? Není náhodou perl mrtvý / vytlačený Pythonem? Má smysl se Perl učit?
« Poslední změna: 27. 04. 2014, 19:30:48 od Roman Bořánek »


Karel

Re:Perl v roce 2014 a v budoucnu...
« Odpověď #1 kdy: 27. 04. 2014, 12:41:10 »
Cs,
mrtvi neni, minimalne ho potrebujes aby si rozumel starsim scriptum, a co se vytlacovani tyka, neco se lepe pise v pythonu, neco v bashi a neco zas v perlu. Obecne nelze rict ze neco je lepsi.

Re:Perl v roce 2014 a v budoucnu...
« Odpověď #2 kdy: 27. 04. 2014, 13:02:09 »
Jo, rozumět starším skriptům asi jo. Ale jaká je udržitelnost takových věcí? I co se bashe týče? Ve smyslu nějakého týmového vývoje? Jak pak vypadá takový Perlový týmový vývoj? Co se bavím s lidma co dělají něco v perlu tak jsem se nesetkal s nikým kdo by právě v týmu dělal, a tudíš neřeší nějaké OOP, balíčky (tím nemyslím že by nepoužívali CPAN)...

Teda, né že bych byl nějaký odborník na to co dělá např. RedHat, ale tuším že hodně věcí se tam tlačí v pythonu/ruby - na skripty, na testy, na vývoj jako takový?

Máte někdo zkušenosti s Perlem 5 VS. Perlem 6?

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Perl v roce 2014 a v budoucnu...
« Odpověď #3 kdy: 27. 04. 2014, 18:07:31 »
Ahoj,

v Brně jsou tři mně známé firmy používající Perl, IS4U je jedna z nich. Je to největší hráč na česko-slovenském trhu s informačními systémy pro vysoké školy + pokud vím plánovali ještě expanzi jinam (m.j. do pobaltí). Velká část toho systému je napsaná v Perlu 5.

Perl 5 mrtvý rozhodně není a nevím o nikom, kdo by ve firmě nasazoval Perl 6. (Pravda, že na primární byznys se dostávají technologie právě přes nějaký "proof of concept" nebo malý projekt o kterých se moc nemluví a samozřejmě nemám patent na rozum světa - je možné, že se do toho někdo pustil.) Každopádně jsi-li v Brně a hledáš-li práci, zkus zjistit jestli některá z těch firem nenabírá - Perlistů je málo a dobrých ještě méně (a lepší je spoléhat na osobní návštěvu - občas vezmou někoho i když nemají oficiálně otevřenou pozici). A spíš počítej s tím, že se používá Perl verze 5. Rakudo je stále označována jako verze pro "early adopters". Já mít firmu, tak bych do toho nešel.

Jinak na poli skriptů pro nějakou automatizaci úloh na unixu/linuxu si troufnu tvrdit, že Perl rozhodně není dominantní jazyk a Python je rozšířenější. V práci i na AIXových a HP-UXových serverech vidím buď bash+python nebo nic. Na windows nevím o nikom, kdo by používal Perl - znám dost těch, co používají PowerShell nebo Python.

backup

Re:Perl v roce 2014 a v budoucnu...
« Odpověď #4 kdy: 27. 04. 2014, 18:36:11 »
my jsme se ve firme rozhodli pro perl v roce 1997. Duvodem pro to byla tenkrat kniha Advanced Perl Programming autora Sriram Srinivasan. V te je vlastne popsano k cemu se perl hodi a jak ho pouzivat. Tenkrat neexistovala zadna podobna publikace pro jine scriptovaci jazyky a moznosti popsane v te knize nam to rozhodnuti usnadnily.

Perl pouzivane ve frameworku pro tvorbu ERP-systemu sitych na miru zakaznikovi. Ten framework neni samozrejme napsany v perlu, jen blazen by to tak delal. Perl muze v nejakem vetsim celku (treba preve v nejakem frameworku) hrat pouze podpurnou roli (zrovna tak jako kazdy jiny scriptovaci jazyk). My to tedy pouzivame na vystupy, (formulare, prehledy),  jednorazove transfery dat a pod. Vsechny ty az 17 let stare programy jsou dnes zrovna tak citelne jako prvni den, i proto, ze jsem se zamerne vyhli ruznym ficurkam a kudrnatemu kodu.

Perl (nebo i jiny scriptovaci jazyk) je vhodny tehdy, kdyz ten script dostane nejakou ulohu a provede ji. Je to jeden proces, ktery se nastaruje, a po chvilce se opet ukonci - a nezbyde po nem nic v pameti, procesnim prostoru.  Navic je to dobre jednotlive testovatelne, vyvolat perl program s parametry z radky ma stejne chovani, jako pozdeji uvitr toho framevorku pres nejaky exec, system call.

Videl jsem ale i nekolik velkych projektu napsanych v perlu - to je skutecne silene a pro nekoho zvenku necitelne a neopravitelne. Ale podobne jsem videl i u pythonu. Scriptovaci jyzyk je urcen pro jednotlive male ulohy - tak jsem si to pred temi 17 lety precetli a vzali kjsme si to k srdci. Perl nas zatim nezklamal.


Re:Perl v roce 2014 a v budoucnu
« Odpověď #5 kdy: 27. 04. 2014, 20:52:52 »
velmi velmi zajímavé... díky za odpovědi.

Ještě jsem chtěl zabrousit do oblasti zpracování textu. A to jsem si říkal že mi to tu někdo omlátí o hlavu. Partie ve které je Perl údajně nejlepší. Není to náhodou jedno že je v tom nejlepší? když dnes existují knihovny na cokoli a stejně jak bych to udělal v Perlu tak to udělám třeba v Javě? (uvažujme prosím princip otázky, nikoli např. výkon a podobná témata) protože pokud bych to dělal v nějakém dominantním jazyku tak se najde spousta lidí kteří moho nahradit stávající vývojáře, a existuje mnoho dalších výhod které Perl write-only ztrácí?

Re:Perl v roce 2014 a v budoucnu...
« Odpověď #6 kdy: 27. 04. 2014, 21:03:33 »
Každopádně jsi-li v Brně a hledáš-li práci, zkus zjistit jestli některá z těch firem nenabírá - Perlistů je málo a dobrých ještě méně (a lepší je spoléhat na osobní návštěvu - občas vezmou někoho i když nemají oficiálně otevřenou pozici).

Mám do školy něco dělat v Perlu a vypadá to tak že si přiblížím monitor, zvětším písmo a obrním nervy. Mám kamaráda co si perl dává na vysoké úrovni a měl jsem nějakou dobu opravdu touhu a chuť do toho proniknout.... Ale to se fakt nedá. Neznám jazyk kde abych byl něčeho minimálně schopen tak toho musím vědět tolik jako v Perlu. Nevím, nechápu to... je to psycho. Programuju v tom céčkovým stylem... ale i tak mi z toho jde hlava kolem :(

wamba

Re:Perl v roce 2014 a v budoucnu
« Odpověď #7 kdy: 27. 04. 2014, 23:23:35 »
Ještě jsem chtěl zabrousit do oblasti zpracování textu. A to jsem si říkal že mi to tu někdo omlátí o hlavu. Partie ve které je Perl údajně nejlepší. Není to náhodou jedno že je v tom nejlepší? když dnes existují knihovny na cokoli a stejně jak bych to udělal v Perlu tak to udělám třeba v Javě? (uvažujme prosím princip otázky, nikoli např. výkon a podobná témata) protože pokud bych to dělal v nějakém dominantním jazyku tak se najde spousta lidí kteří moho nahradit stávající vývojáře, a existuje mnoho dalších výhod které Perl write-only ztrácí?
No u mě se to, že Perl vyniká ve zpracování textu projevuje tak, že pak používám např. regulární výrazy a podobné věci, někdy i tam, kde by v jiných jazycích tě to ani nenapadlo,  (což neříkám, že musí být dobře :) ), navíc kde bych mohl ve scriptech použít sed,awk,grep,... nebo i ve Vim-u pro nahrazení, tak většinou použiji "one-line" Perl. Perl umožňuje psát kód nesrozumitelně, ale stejně tak i velmi přehledně a srozumitelně záleží na tobě, co si vybereš (nepopírám, že občas když něco píši, tak to rychle napíši "na divoko" s tím že to posléze přepíši a nato už nikdy nedojde a pak chvíli "luštím", co to vlastně dělá.   

Mám do školy něco dělat v Perlu a vypadá to tak že si přiblížím monitor, zvětším písmo a obrním nervy. Mám kamaráda co si perl dává na vysoké úrovni a měl jsem nějakou dobu opravdu touhu a chuť do toho proniknout.... Ale to se fakt nedá. Neznám jazyk kde abych byl něčeho minimálně schopen tak toho musím vědět tolik jako v Perlu. Nevím, nechápu to... je to psycho. Programuju v tom céčkovým stylem... ale i tak mi z toho jde hlava kolem :(
No naopak Perl je velmi variabilní a začít psát kód lze i s velmi málo znalostmi. Jsou třeba příkazy v Perl-u, které nepoužívám. Perl velmi dobře umožňuje růst společně s programátorem. "Céčkovským" stylem klidně programuj Perl to umožňuje. Abych citoval:
Citace
You can sometimes write faster programs in C, but you can always write programs faster in Perl.
 

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Perl v roce 2014 a v budoucnu...
« Odpověď #8 kdy: 28. 04. 2014, 06:36:59 »
Neznám jazyk kde abych byl něčeho minimálně schopen tak toho musím vědět tolik jako v Perlu. Nevím, nechápu to... je to psycho.

Nikdy jsem si nevšiml, že by člověk píšící v Perlu potřeboval více znalostí než v C, Pythonu apod. Myslím, že to je jenom Tvým odporem k Perlu ... čemuž se nedivím (a což máme společné ;-) ). V práci jsem viděl pár starších skriptů po ne-zrovna-moc-dobrých programátorech a nebyl jsem schopen poznat, jestli skript je napsaný v Perlu nebo Brainfucku.

Perl je pověstný tím, že velice snadno může být tzv. write-only jazykem - co napíšeš, to už nikdy nepřečteš. Na druhou stranu tím, že jej navrhoval lingvista, má celkem slušné množství zajímavých konstrukcí, díky nimž umožňuje napsat velmi dobře čitelný kód - ale chce to trochu zkušeností a hlavně sebedisciplínu - místo napsání kódu rychle je potřeba se kousnout a napsat ho pořádně.

Pokud Ti Perl nevyhovuje, zkus Python, máš-li možnost volby. Nevím o moc běžných věcech, které by v Pythonu byly výrazně horší než v Perlu. Naopak pokud potřebuješ pracovat s objekty a psát objektový kód, v Pythonu na to nepotřebuješ požehnání (viz funkce bless http://perldoc.perl.org/functions/bless.html nebo pole @ISA) :-) . Jediné, co Ti na Pythonu bude asi chybět, je CPAN a perlmonks.

Případně ještě Groovy je relativně jednoduchý a pohodlný jazyk, i když s trochu živelným návrhem. Jeho největší výhoda je, že běží nad JVM, takže o knihovny není nouze. Jeho největší nevýhoda je, že běží nad JVM, takže za jeho doporučování či protěžování by mě někteří členové komunity na Rootu asi začali kamenovat.

jm

Re:Perl v roce 2014 a v budoucnu
« Odpověď #9 kdy: 28. 04. 2014, 09:19:40 »
Zdravím,

mám jen pár poznámek:
1. Pro OO programování v P5 se dá využít systém Moose: http://search.cpan.org/~ether/Moose-2.1205/lib/Moose.pm; bless a @isa se už používat nemusí.
2. Pro psaní hezkého kódu v Perlu existuje příručka "Perl Best Practices" od D. Conwaye, pro kontrolu kódu se dá využít program "perlcritic".
3. Perl jsem se naučil jako ne-programátor ve vysokém věku / asi ve 25 :) /, protože jsem ho jako lingvista potřeboval pro zpracování většího množství dat. Pokud můžu soudit, minimálně v téhle oblasti se pořád využívá. (A pokud je mi známo, tak ho používají třeba i biologové pro analýzu sekvencí DNA.)
4. Osobně se mi líbí (a netvrdím, že to jiné jazyky neumí) propojení regulárních výrazů s třídami (vlastnostmi) Unicodu http://perldoc.perl.org/perluniprops.html.

Přeju hezký den.

perl

Re:Perl v roce 2014 a v budoucnu
« Odpověď #10 kdy: 28. 04. 2014, 15:44:42 »
Já vidím přednost PERLu v rychlosti tvroby kódu. Potřebuju-li nějakou jednoúčelovou utilitku, nebo "praktickou ukázku" jak bude nějaká budoucí aplikace fungovat, není podle mne nic rychlejšího.

Ukáže-li se, že je do budoucna potřeba to udělat pořádně (utilitka se má používat pravidelně, zákazník projeví zájem o aplikaci s ekvivalentní funkcionalitou, ... apod.), není problém to nabouchat v C/C++.

Takhle funguju už více jak 15 let a zatím spokojenost :-).

txt

Re:Perl v roce 2014 a v budoucnu
« Odpověď #11 kdy: 28. 04. 2014, 22:26:20 »
Já vidím přednost PERLu v rychlosti tvroby kódu. Potřebuju-li nějakou jednoúčelovou utilitku, nebo "praktickou ukázku" jak bude nějaká budoucí aplikace fungovat, není podle mne nic rychlejšího.

Ukáže-li se, že je do budoucna potřeba to udělat pořádně (utilitka se má používat pravidelně, zákazník projeví zájem o aplikaci s ekvivalentní funkcionalitou, ... apod.), není problém to nabouchat v C/C++.

Takhle funguju už více jak 15 let a zatím spokojenost :-).
Nabíledni je srovnání s Pythonem.

mikrom

Re:Perl v roce 2014 a v budoucnu
« Odpověď #12 kdy: 28. 04. 2014, 23:14:21 »
Není to náhodou jedno že je v tom nejlepší? když dnes existují knihovny na cokoli a stejně jak bych to udělal v Perlu tak to udělám třeba v Javě?
Mam nejake skusenosti s Perlom, Pythonom, Ruby  a Javou a myslim ze to  neni jedno.
Napriklad na spracovane textu je produktivita v Perle oproti Jave neporovnatelne vyssia.
Na vyvoj v Jave potrebujes IDE, ktore podporuje autocomplete a upozornuje ta na chyby, inac by bol vyvoj pomaly. V Perle ti staci jednoduchy editor ako napr vim.
Pretoze java si vynucuje OOP budes musiet aj na riesenie maleho problemu napisat ovela viac kodu ako v Perle.
Perl ma neporovnatelne jednoduchsiu pracu s regularnymi vyrazmi - v Jave je to tazkopadnejsie. Okrem toho je rozdiel medzi programatormi v Perle a v Jave: Zatial co programatori v Perle povazuju regularne vyrazy za uplny zaklad, mnohi programatori v Jave ich nevedia vobec pouzivat, takze nimi navrhnute riesenie byva zlozitejsie ako riesenie programatora v Perle.
Dalsia vec je ntegracia do komplexnejsich shell skriptov. Podla mna je jednoducsie pouzit Perl script kde si vies hned pozriet zdrojak ako nejaky Java class.

Obidva jazyky maju svoje opodstatnenie. Myslim, ze na jednoduchsie a jednorazove veci je najlepsi Perl. Ak chces nieco vacsie a potreboval by si to robit v OOP tak skus Python, alebo Ruby. Vyhoda Ruby je ze regex ma velmi sikovne prebrate z Perlu a nie su tam problemy z odsadzovanim v zdrojovom kode ako v Pythone. Na rozsiahlesjise veci je dobra Java - hlavne sa da za nu fakturovat ovela viac CD.
 

txt

Re:Perl v roce 2014 a v budoucnu
« Odpověď #13 kdy: 29. 04. 2014, 00:10:44 »
Obidva jazyky maju svoje opodstatnenie. Myslim, ze na jednoduchsie a jednorazove veci je najlepsi Perl. Ak chces nieco vacsie a potreboval by si to robit v OOP tak skus Python, alebo Ruby. Vyhoda Ruby je ze regex ma velmi sikovne prebrate z Perlu a nie su tam problemy z odsadzovanim v zdrojovom kode ako v Pythone. Na rozsiahlesjise veci je dobra Java - hlavne sa da za nu fakturovat ovela viac CD.
 
Na alespoň jednoduché IDE jsem si už zvykl a právě odsazování je pro mě podstatná výhoda. Odsazoval bych jakýkoliv kód a takhle nemusim psát žádné zbytečné složené závorky, beginy, endy. IDE se postará. Je to pouze dílčí aspekt, ale zrovna tohle nepovažuju za nevýhodu, ale naopak za výhodu Pythonu.

alfonz

Re:Perl v roce 2014 a v budoucnu
« Odpověď #14 kdy: 29. 04. 2014, 06:55:40 »
Také se přidám k tomu, že Python a jeho odsazování je prostě geniální. Přehlednost kódu určitě roste, je možné zbavit se hodně velkého množství zbytečností a je to rychlejší.

K Perlu ano když začnu číst kód v Perlu, tak je to obvykle v pohodě a zhruba chápu co, které části dělají. Trvá to ale déle než např. v Pythonu.
K regulérním výrazům, obvykle je používám, jen když to vypadá, že to bez nich půjde špatně. V normálním zpracování textu, používám
raději funkce v pythonu jako jsou split(), join(), replace() apod... většina věcí s nima jde lépe a rychleji.