BTW: ze slova 'moderni' dostavam posledni dobou koprivku - obycejne to totiz znamena nejakou frikulinskou nelogicnost, az zrudnost, co nema zadny vztah k lety zavedenym postupum ...
a obycejne to vytvori clovek, co neni schopen se naucit neco 'stareho', tak to rovnou predela podle sveho a oznaci to jako 'moderni'.
Koderi dnes uz nie su elita s akademickymi titulmi odkojeni Knuthom, Kernighanom a Ritchiem. Dnes su to stredoskolsky vzdelane masy a ti potrebuju jednoduchsie nastroje a jazyky. A hlavne su nahraditelni a ich kody potrebuju byt citatelne. Pouzit dnes Perl je riziko s bushitratio = 1. Navyse stale tu bude strasit stary Perl5 a Perl6 only riesenia prakticky neexistuju.
Já se hlásím, že jsem se Perl nikdy pořádně nenaučil - a nenávidím ho.
A jednozančně to souvisí. Perl je velmi těžký na naučení. Zbytečně těžký. Těžší, než jiné jazyky, kterými dosáhnu podobného výsledku. Možná to v 90. letech bylo jiné, já se k Perlu dostal o dekádu později.
Nikdy jsem nechápal jazyky s úspornou syntaxí, kdy stejný příkaz napíšete pomocí poloviny znaků. To je "skvělé", že ušetříte místo při skladování zdrojáků a kapacitu sítě při jejich posílání na server, když si kvůli tomu musíte pamatovat úplné šílenosti ve kterých pak snadno uděláte chybu.
Ještě bych chápal tu šílenou syntaxi, kdyby to měl být jazyk, který člověka pracovně vytíží na 100 % - pak se dá chápat, že si to časem zapamatuje a každodenním používáním to tam zůstane. Ale je to skriptovací jazyk - něco u čeho se předpokládá, že v tom člověk občas udělá nějaký specifický úkol a pak se dál věnuje své hlavní práci (vývojářské, adminské, jiné).
Když otevřu zdroják v jazyce, ve kterém jsem 10 let nedělal - a je to jazyk s ukecanou syntaxí, tak se do toho rychle vpravím, sem tam se potřebuji podívat do něčeho jako je referenční příručka, ale není to často. Když otevřu zdroják v Perlu, tak jsem ztracen. Každou chvíli tam mám moment - a tohle je proboha co?
A jak se pozná jazyk, který má/nemá člověka vytížit na 100% ? Jsem s ním vytíženej na plno už asi pět let a to jsem byl hned s naproto minimálníma zkušenostma vhozen do vcelku dost velkého legacy(1998) projektu a světe div se, ono to šlo vcelku snadno. Stačilo nemít předsudky a člověk velmi brzo zjistil, že to co vypadá vyšinutě vlastně má hlavu a patu.
Ano prasit v něm jde, ale proč by to rozumnej člověk, kterej zrovna nepíše nějakej jednorázovej bazmek, měl dělat? Spousta aut má taky maximální rychlost hodně přes 200, ale většina řidičů těch +- 130 dodržuje.
Basic (8bit mz800)-> fortran77 (TNS AT) -> turbopascal (mz800) -> perl (sgi indy, intel, sparc), a pak uz jen vzdy a vsude python
Ono ve vice lidech psat a opravovat casti kodu v perlu je temer nemozne, rychlejsi a levnejsi je to malem pokazde
napsat znovu.
Alespon v dobe, kdyz vybehl python, perl vubec nemel praci s vyjimkami, rozumnou podporu kodovani (nemluve o unicode), objektu a naopak mel mnoho dalsich nectnosti, navic na intel vs sgi vs sparc se choval pokazde jeste vic jinak, nez ten python.
Pamatuju dobu, kdy A+1 bylo obcas "A", obcas "1", jindy zase 1, a nekdy dokonce i 66 :-)
Zrovna před několika týdny jsem předal svému pokračovateli údržbu poměrně komplexní aplikace napsané v Perlu, na které jsme s kolegou, kromě jiných projektů, dělali s přestávkami skoro 10 let. Potřeboval jsem si uvolnit ruce...
Jde o software pro testery, je to propojené s verzovacím systémem atd...
Při předávání nevznikl žádný podstatný problém. Víte proč? Je to psáno velmi srozumitelně a přehledně. Samozřejmě existuje i dokumentace.
Psát jako prase a puberťák můžete v čemkoliv - nejen v Perlu. Protože Perl pořádně neznáte, posuzujete to nejspíš jen podle pár prasečin, které jste si stáhli z nějakých webů.
Kdybych byl ignorant, mohl bych úplně stejně hulákat, jak je třeba ten Python strašný. Záminka by se jistě našla - kupříkladu syntaxe, která vyžaduje vytvářet bloky pomocí odsazení se dá považovat za slušné zvěrstvo, za které by autor měl být aspoň na 2 hodiny pověšen za k... do průvanu.
Google dnes nefunguje? :) https://help.vellum.pub/file-size/
Google funguje jen tehdy, kdyz vite na co se zeptat...
Moje zkusenost byla, ze knihy v mobi jsou mensi nez epub knihy, jednim z duvodu byla prave nutnost davat do epub ceske fonty. Predpokladal jsem tedy, ze knihy.nic.cz ma spatne nastaveny generator mobi. Jeste kniha "IPv6" v mobi je mensi nez v epub. Ale ten odkaz "vellum" naznacuje, ze dnes do mobi dava spousta zbytecneho balastu...
Zadala jsem dotaz „why is mobi bigger than epub“ :) Ale pravda, drtivá většina ebooků které mám ve více verzích (povětšinou z humble bundle) je v angličtině, takže to že je mobi větší než epub je pro mě známý fakt.
Epub čtečky pokud vím mobi běžně umí, jen neumí mobi s Amazon DRM. Zrovna jedno mobi čtu na svém pocketbooku.
Protože EPUB je jednoduše hloupý ZIP soubor. Program, který chce EPUB knihu zobrazit s tím má docela dost práce, protože EPUB formát je dělaný na to, aby byl jendoduchý - a čtečka pak toho musí udělat velice mnoho. Není to moc efektivní formát pro knihu.
Jak EPUB, tak MOBI uděláte ze stejného zdroje. EPUB vyrobíte jednoduše tak, že zdrojové kódy zkomprimujete ZIPem, je to relativně přímočarý a hloupý formát. Vznešeně se tomu zazipování říká OCF (Open Container Format).
MOBI je třeba vyrobit složitěji skrze kompilátor, byť zdroj je téměř stejný.
MOBI je formát dělaný pro čtečky mnohem lépe. Je předkousaný tak, aby pro čtečku byl efektivní. Podle verze se liší, co všechno je v něm předkousáno, a jaké jsou jeho možnosti. Hodně jde také nastavit v kompilátoru, který MOBI knihu vyrábí. Velikost MOBI knihy hodně závisí na tom, jaké se použijí přepínače u kompilátoru - u mých knih je MOBI většinou menší než EPUB.
Kromě toho dnes MOBI soubory často obsahují knihu ve formátu MOBI i AZW3 zároveň - takže často jsou to dvě knihy v jedné. Což je také defaultní nastavení kompilátoru.
Tady je hlavni problem v tom, ze "knihy.nic.cz" primarne vytvari epub a ten se pak konvertuje pomoci nastroje "kindlegen" od Amazonu. A Kindlegen ve verzi 2.x zacal delat veci drive nevidane :-(. Z nejakeho duvodu se tak do "mobi" ulozi krome dvou verzi "mobi" take zdrojove kody ePub. Otazkou je, proc tam ten ePub je, zda je to proto, aby mobi mohli snadno otevrit i ePub ctecky nebo proto, aby slo snaze vystopovat piratskou verzi knihy...
Nasel jsem online sluzbu, "zamzar", konvertuje take epub do "mobi" a vysledny soubor je mensi nez ten, ktery vytvori "kindlegen v2.9". Ale porad je ten soubor vetsi, nez co generoval kindlegen v1.2 (ten byl zrejme jeste pouzit na knihu IPv6.mobi).
I novy kindlegen lze donutit k vytvoreni mensiho souboru, podobne velikosti, jakou ma soubor od "zamzar", je treba pouzit tajny parametr "-gen_ff_mobi7".
Jeste vcera jsem si myslel, ze novy Amazon Kindle obsahuje vice Flash pameti proto, aby se do nej veslo vice knih. Jak jsem se mylil! Je to proto, aby se tam vubec nejake knihy vesli.. ;-) Zmeny v "mobi" souborech jsou jen dalsim dukazem, ze svet IT se ubira spatnym smerem...
Což je přesně co jsem napsal.
1) Že záleží na verzi kompilátoru.
2) Že většina autorů prostě jen slepě a bez parametrů předhodí kompilátoru EPUB. Výsledkem je, že má ve výsledném MOBI všechno včetně zdrojových souborů, debug informací a dalšího. A také tam má knihu ve formátu MOBI a knihu ve formátu AZW3.
Přímo a bez okolků: Když se ten, kdo MOBI vytváří na to vykašle, výsledkem je obří MOBI soubor. A to se dělo i v tomto případě, stejně jako ve většině případů jiných, kde se primárně vytváří EPUB soubor a s MOBI se nikdo moc nepáře.
Jinak řečeno, větší velikost MOBI souborů není vlastnost formátu, ale ignorance většiny těch, kdo MOBI soubory vytvářejí. Vzhledem k tomu, že MOBI nutně nepotřebuje (na rozdíl od EPUB formátu) ukládat žádné XML soubory ani jiná zvěrstva, ale opravdu jen čistý text a další atributy v přímé podobě - při pečlivé práci je MOBI obvykle kratší než EPUB.
A to je to, co jsem napsal.
>> "Jeste vcera jsem si myslel, ze novy Amazon Kindle obsahuje vice Flash pameti proto, aby se do nej veslo vice knih. Jak jsem se mylil! Je to proto, aby se tam vubec nejake knihy vesli.. ;-) Zmeny v "mobi" souborech jsou jen dalsim dukazem, ze svet IT se ubira spatnym smerem..."
Amazon Kindle už MOBI nepoužívá. Rozvíjí nový formát AZW3 už od roku 2007.
Geneze je taková, že EPUB i MOBI je v podstatě jen prekabátěné HTML/CSS. AZW3 už přidává mnoho věcí, které potřebují knihy a v HTML/CSS nejsou.
Problém paměti je, že pro zpětnou kompatibilitu je v MOBI souboru jak verze MOBI, tak AZW3 - takže knihy dvojnásobně nabudou na velikosti. Ručně si můžete vyrobit jen čisté MOBI nebo jen čisté AZW3, není to problém.
Jinak řečeno, pokud chcete, tak máte mnoho možností, které v EPUB nejsou. Proto třeba já už e-knihy roky vyrábím tak, že je vyrábím pro Kindle, čímž získám věci a kvalitu, kterou transformací skrze EPUB získat nelze. A EPUB pak, jakožto nižší formát, získám konverzí z AZW3.
Ale myslím, že už jsme dost off topic.
Nástroj kindlegen
slouží primárně pro publikaci na Amazonu. Proto v sobě jeho produkt obsahuje jak binární formáty pro starší a novější čtečky, tak i zdrojové soubory, aby knihu mohl Amazon knihu převést do případného novějšího formátu. Při objednání knihy z Amazonu je doručena pouze v tom správném binární formátu pro konkrétní kus čtečky.
vicemene souhlas, pokud kod neni okomentovan, pokud neznam autora.
ale pokud se pracuje v teamu*, pokud se domluvi na urcitem 'dresscodu' a hlavne, pokud se pisou komentare do kodu (vcetne kontaktu na autora prislusne casti, nebo odkazu na zdroj inspirace), tak to opravdu neni zle.
*team: neni tim pojmem myslena banda individualistu zmergujicich dohromady svoje casti kodu, ale lidi, co mezi sebou komunikuji, diskutuji, domlouvaji se, sdileji svoje poznatky i predstavy, ...
Po více než čtrnácti letech vývoje a údržby perlového kódu, který zahrnuje přes 300 tisíc řádků, resp. 11 MB ve více než 400 souborech, a vystřídalo se na tom nějakých 10 lidí, se mi nechce věřit, že by se v Perlu nedal psát udržovatelný kód. Jen je potřeba přistupovat k tomu jiným stylem, než při psaní jednořádkových skriptů. Dalším příkladem celkem rozumně napsaného většího open source programu v Perlu je Request Tracker.
Oracle má v Perlu prakticky všechny scripty pro jejich databázi. Když se na ně člověk podívá a nevšimne si koncovky, tak to na první pohled jako Perl ani nevypadá. Je to hezky strukturované a čitelné. Bohužel o většině jiného kódu v Perlu, co jsem potkal, se to říci nedá. To vypadá spíš jak soutěž o co nejkratší sled znaků, který produkuje požadovaný výsledek.
@kolcon : mam pocit, ze jedinym argumentem je, ze je stary :-D
je to jazyk umoznujici delat kod ne jenom jednim zpusobem, a nektere (mlade?) to provadi primo k neskutecnemu zoufalstvi, az pocitu menecennosti.
ztraci jistou pudu pod nohama ... tak zuri a nenavidi to, co jim bere pocit bezpeci a jistoty sve dokonalosti.
navic, kdyz lpi na svych zasadach citelnosti kodu (clean code), zaroven je nic nenuti ty zasady dodrzovat, nemaje pevnou vuli psat stejnym zpusobem a konzistentne v celym projektu po delsi dobu, komentovat, co napsali a vysvetlovat, ... tim padem produkuji praso-kod, co zas zapricinuje cerne nalady, zoufalstvi u svych kolegu ...
takze to tvori nekonecny kruh zoufalstvi a beznadeje
;)
Perl ztratil půdu pod nohama nekompatibilním přechodem mezi Perl 5 a 6. Nejde ani tak o ten přechod, jako že se ztratila zpětná kompatibilita, a jako že trvalo mnoho let, kdy nikdo pořádně nevěděl co bude s Perlem. Bylo jasné, že Perl 5 se nebude rozvíjet, a Perl 6 dlouho nebyl. Tím si podepsal ortel.
Na druhé straně opravdu dnes nechápu, co někoho vede používat Perl, kromě toho, že ho zná z minula. Ten jazyk prostě není zrovna ideál.
Já jsem měl před mnoha lety koupenou knihu od Satrapy, která se tu zmiňuje. Ta kniha je vynikající a nelze než panu Satrapovi vzdát hold za jeho práci a knihu. Ale hlavní co jsem pochopil po té knize je, že Perl je jazyk, ve kterém opravdu dobrovolně programovat nikdy nechci. Ne proto, že by byl těžký či bych ho nezvládal, ale protože neumí nic speciálního, proč bych Perl měl potřeboval, a mnoho jiných programovacích jazyků je mnohem lepších.
Tou formuláaciou "je jen další z mnoha stovek univerzálních jazyků na jedno brdo" sa akoby snazis z nejakeho dovodu Perl degradovat :-)
Ked sa podivas trochu do historie, tak Perl je jeden z prvych pouzitelnych skriptovacich jazykov.
Pre novsie skriptovacie jazyky sluzil ako inspiracia toho, aku funkcionalitu ma dobry skriptovaci jazyk obsahovat - mInimalne co sa tyka datovych struktur (zoznamy a asociativne polia) a regularnych vyrazov.
Z praktickeho hladiska: dnes byva Perl 5 nainstalovany skoro na kazdom systeme - podobne ako napriklad kompilator C. Podla mna Perl 5 ma medzi skiptovacimi jazykmi podobne miesto ako jazyk C medzi programovacimi. Je to zakladny skriptovaci jazyk, ktory sa oplati naucit.
K historii: Co bylo za Rakouska-Uherska je pro dnešek už vcelku jedno.
Perl se uchytil jako náhrada omezené programu awk pro filtrování textových souborů. A také proto, že dlouhou dobu existoval mod_perl do Apache, a daly se v tom psát CGI webové skripty.
Rok 2000: Pak to ale Perl potentoval, když jeho autor Larry Wall prostě vyhlásil nekompatibilní změnu z Perlu 5 na Perl 6. Dlouhou nikdo nevěděl co bude, a tak Perl zažíval odliv zájemců, a ten odliv trvá dodnes. Protože Perl není žádný speciálně skvělý jazyk, aby byl potřeba pro nějakou oblast, a bez Perlu není problém se obejít, tahle epizodka ho likviduje, a postupně ho zlikviduje.
Perl nemá žádnou oblast použití, kde vysloveně exceluje, nebo kde by byl urgentně třeba. Zastoupí ho na jeho místě bez problém 100 jiných jazyků. Dnes lidi oceňují udržovatelnost a čitelnost zdrojového kódu - a to jsou zrovna velké bolístky Perlu.
To je problém univerzálních jazyků, že prostě chvíli jsou na výsluní a jejich použití jde spíše podle módy. Perl nikde v žádné oblasti použití neexceluje, tudíž mu potenciálně konkuruje obrovská spousta stejně zaměřených jazyků.
presne o tom mluvim: neni chut, ani ochota se ho naucit, pochoipit jeho plusy a minusy, ale misto toho se nan bude spylat.
mne nevadi osobni nazor nekoho, co mi vadi, je generalizovani a vydavani sveho nazoru za vseobjimajici pravdu.
osobne jsem v perlu zpracovaval kvanta textu, a byla to opravdu pecka - jak elegantnosti reseni, tak rychlosti!
odtehdy jsem podobny problem nepotreboval resit - ale kdyby jo, urcite sahnu zas po perlu.
takze toto je zas muj osobni nazor, podepreny nekolikaletou praxi.
drivejsi verze webu root.cz byla pry cela napsana v Perlu - takze lze s nim (res. smin. slo s nim) delat i vetsi veci a mimochodem ten tehdejsi tmavy vzhled s tim manikem s brylemi, stejne jako velikost a formatovani clanku atd. byla z meho pohledu designove mnohem lepsi nez je tomu dnes, pomijim ze se neobnovily clanky, diskuse, prispevky pod clanky, blogy atd ... od nejakeho data (narozdil od abicka kde to uchovavaji za mnohem delsi dobu do minullosti)
Pamatuji se na linuxovou konferenci v r2006, kde se ptali Petra Krčmáře, jestli může dát k dispozici redakční systém používaný na root.cz. Řekl něco ve smyslu že to není šťastný nápad a řešení není úplně ideální. Předpokládám, že se jednalo o onu perl verzi ... a důvod proč už nová verze na perlu nevznikla.
Mám zcela vážně míněnou otázku. Jaký jazyk by byl lepší než Perl pro zpracování velkého množství textů pomocí regulárních výrazů? Musí to umět utf-8, ty regulární výrazy musí být jakž takž čitelné a nesmí to být pomalé jak šnek.
Doposud jsme používali flex - je rychlý, ale dost nečitelný a kvůli utf-8 jsme museli udělat dost šílené úpravy. Perl není tak rychlý, ale po optimalizaci to nebyla taková katastrofa a ty regexy se v něm píšou dobře.
Myslim, ze jednou z nejvetsich prednosti Perlu (ktera v diskusi nezaznela, ale v knizce na ni p. Satrapa narazi) je rychlost, s jakou vyprodukuji funkcni/prezentovatelny vysledek. Klidne to muzu pojmout jako prototyp, co predvedu zakaznikovi (kouknete, takhle by to mohlo fungovat, libi ?) a pak to treba neboucham v C/C++ nebo cemkoli jinem si bude prat.
Na jednu stranu mam k dispozici skriptovaci jazyk s volnou syntaxi, regularnima vyrazama, asociativnima polema a na druhou stranu ho mohu pomerne snadno integrovat s vecma v okoli (neni problem volat funkce v ceckovych knihovnach, ovladat pres OLE/DDE aplikace tretich stran na widlich, ci jakoukoli jinou nestandardni vec). A k tomu je tu milion hotovych reseni pristupnych pres CPAN (napr. pro praci se siti, konverze formatu ... atd.)
Myslim, ze na tvorbu funkcnich prototypu reseni je Perl stale neprekonatelny. Ktery jiny programovaci jazyk mi toto (se stejnou rychlosti produktivity) nabidne ?