Na řadu věcí nic lepšího prostě není.
Pokud potřebuji přechroustat nějakou pomrvenou tabulku k "sežrání" R-kem, nebo pro to R-ko "předžvýkat" data tak, abych si neumlátil prsty a nezešílel v jeho syntaktických nelogičnostech a záludnostech, tak je perl první volbou.
A když jsme u toho, tak není problém v tom perlu napsat jako grafický výstup sled příkazů pro vygenerování obrázku metapostem nebo ImageMagickem (a určitě by šlo zvládnout i SVG, kdybych ho uměl).
Něco podobného sice s jinými programy jde taky, ale perl je specializovaný nástroj pro přechroustávání textových souborů, takže v něm tyhle věci jdou prostě líp.
Syntaxe objektů, které mají zachytávat reakce uživatele, je naprosto nesmyslná a nelogická (alespoň z mého pohledu). Nikde není vysvětleno, co to dělá a co jednotlivé prvky syntaxe znamenají (a proč to po, z hlediska člověka odchovaného procedurálním programováním nepatrných, změnách přestane fungovat). Mám-li formulář s větším počtem podobných či stejných objektů, musím to vše otrocky opisovat, zatímco v perlu nebo podobném jazyce bych to, co mají identické, tahal z nějakého podprogramu, což v Pythonu prostě nejde (minimálně tomu vadí lokálnost proměnných v objektech a pokud se to nějak obchází, je příslušný kód ještě delší a složitější /a nepřehlednější/). Plus řada podobných věcí.
Dnes bych asi řešil tenhle problém tím, že bych si ty pythonovské objekty nechal vypsat perlem (jak to běžně dělám u grafických objektů generovaných metapostem nebo ImageMagickem).
Je vážně těžké pro to co popisujete najít mnoho důvodů proč nezvolit Python, případně pandas. perl, metapost a imagemagick mi připomíná cestu o 10 let zpět. Industry mé tvrzení dost potvrzuje (kolik tutoriálů, knihoven, OSS, webů, komerečních řešení atp. je napsáno pomocí pandas+python a kolik metapost|imagemagick+perl).
Klidně si to používejte, ale "nic lepšího prostě není" je simply false (resp. Occam). asi jste chtěl napsat "nic lepšího neumím nebo neznám", což je ok.
Je mi líto, ale na věci, které běžně dělám a dělat potřebuji, je ten perl opravdu nejlepší. Srovnáno s BASICem, pythonem, javou. Protože používám TeX, tak mi vyhovuje jazyk metapostu (a to, že obrázky, které z něho lezou, jsou s TeXem kompatibilní). U toho ImageMagicku jde hlavně o to, že složitější skripty, třeba zaškrtávací formulář na testy, se v něm celkem dobře dělají tak, že je vygeneruje perl.
Vyzeralo to ako modernejsi pristup, ale teraz mi to uz ako moc velka vyhoda nepripada. Po negativnych skusenostiach (Space-Tab Hell) by som bol radsej keby Python mal namiesto povinneho odsadzovania napr. ukoncovanie blokov s END ako to ma Ruby. Aj tak kazdy normalny programator v kode odsadzuje - aj v jazykoch kde to nie je povinne.
Ale inac mam Python rad.
Já jsem Python taky používal (hlavně ke tvorbě interface na vyplňování dotazníků v grafickém prostředí, čili různá zaškrtávací políčka, radiobutons atd. s tím, že výsledek program vyplivl ve formátu DOSovského EpiInfa). Vadila mi dost velká ukecanost, nelogičnost syntaxe obsluhy těch grafických objektů a podobné věci, nicméně tohle bych asi v perlu nepsal (asi bych to dnes psal v javascriptu).
Nicméně perl je nepřekonatelný svou schopností analyzovat a zpracovávat údaje v textovém formátu. Podařilo se mi v něm napsat i jednoduché filtry pro práci s obrázky (třeba detekující smítko na skenovaném obrázku a vyplňující jeho plochu průměrem barvy před a po kazu na řádku), ale to už je "znásilňování" tohoto jazyka proti jeho přirozenosti a účelu, za jakým byl sepsán.
Pochopitelně, nedělám nějaké superprojekty, ale skripty na pár desítek řádků, a na to je asi nepřekonatelný. Docela chápu, že nějaké velké projekty (případně operační systém) by se v tom psaly asi docela špatně, ale takové ambice nemám. Proto taky ne zcela akceptuji Satrapovo varování v "Perlu pro zelenáče", že to není vhodný jazyk pro začátečníky. Mám trochu jiný názor: Pokud by dotyčný měl ambice dělat velké projekty (a hlavně v týmu), tak by se asi měl programování naučit na nějakém jiném jazyku. Pokud ale tyto ambice nemá (já jako lékař vyučující na VŠ, pár let před důchodem rozhodně takové ambice nemám), tak neexistuje důvod proč nezačít programování právě s perlem - není v tomto ohledu horší než výše zmíněný BASIC, na kterém vyrostla celá generace programátorů.
Vetsina lidi se tu na Python prestala koukat s prichodem trojky? Perl ma sice svy pro, ale tech proti je tolik, ze existuje jenom malo duvodu, proc mu dneska venovat energii. A to na tom neni ani jako PHPcko, ktery je sice debilni, ale fakticky je v produkci skoro vsude.
Oproti Perlu, Python je taky vsude a umi skoro vsechno. To, ze nekdo pouziva PERL, protoze nechce pouzivat Python, neni duvod, proc by se ho nekdo mel ucit. Nehlede na to, ze Perl nejaky moc hezky techniky neuci.
Mimochodem, ta zminka o SqlAlchemy je taky naprosto mimo. Je to asi stejny jako tvrdit, ze to ma Java blbe vyreseny, protoze Hibernate. Nic vam nebrani pouzivat Psycpg2 v pripade Pythonu nebo JDBC v pripade JavaScriptu a klidne se vyhnout celymu ORM, coz je casto vitany.
Situacia je zial taka, ze Python 3 nie je k dispozicii vsade (napr. Jython). Ja som doteraz vsetko robil iba v Python 2.x. Na Linuxe mam sice aj Python 3, ale pouzivam iba 2.7.x. K trojke ma to moc netaha.
Co sa tyka pouzivania Perlu ja tam nevidim nejake proti. Nikde neni povedane, ze by som mal vsetko robit v jednom univerzalnom jazyku. Podla mna ak sa clovek nauci Perl nebude mu to na skodu, ale rozsiri mu to obzor.
S Pythonem jsem skončil (kromě dosti chaotické syntaxe a mizerné dokumentace) taky proto, že jsou vzniklé skripty (pokud nedělají zcela triviální věci) nepřenositelné s počítače na počítač. Existuje prostě příliš mnoho vzájemně nekompatibilních "odrůd" Pythonu. V perlu je po této stránce situace daleko přehlednější.
To bude emotivni zalezitost, nikoliv prakticky problem. Pouzivam python 2 dlouhodobe a ne jen na ruznych pocitacich, ale i platformach: ruzne distribuce linuxu, windows, android - sdilim programy mezi nimi skrz dropbox a nemam s tim problemy. Dokumentace mi prijde take dobra, casto mi staci ta integrovana. S cim mas problem?
Cože? To je přeci nesmysl. Že se něco zakáže není "řešení" a navíc Python 3 pochopitelně jde nainstalovat pod libovolnými právy na Windows 10. To, že to asi neumíte, je věc jiná, ale pochopitelně to jde a děláme to běžně.
> Já jsem měl opakovaně problémy s přenosem pythonovských programů mezi různými platformami.
Je úplně neopodstatněné. Pochopitelně, když se používají věci které windows nemá (některé formy multiprocessingu), pak to nejde, ale jinak je to naprosto flawless + existuje virtualenv, conda, ... které řeší i binární závislost, což AFAIK perl nemá.
Tenhle claim je disproved tím, že Python je jeden z nejpopulárnějších jazyků (nejen!) na glue code, který je typicky spouštěn na různých platformách. My ve firmě ho používáme na všechno od data science, machine learning, ETL, microservicing etc. naprosto bez problémů na Linux, Mac i Windows.
To že neznáte vestavěný virtualenv nebo conda je váš problém.
Perl je fajn, hadat se, zda je python lepsi, jabka hrusky. Sam Perl pouzivam a nevidim na tom nic spatneho. V perlu jsou napsane weby jako Amazon, filmova database IMDB, vyhledavac duckduckgo, Craigslist, OTRS helpdesk, informacni system university univerzity skoda auto apod. Nehlede na vsechen mozny software pro Linux.