Nemam rad perl. Je to jen takova splacanina bez cistyho navrhu. To, ze sezere vsechno a ruzne, je prave hodne blby. Trikrat Fuj!
Názory k článku
Perličky (1)
Re:
celé vláknoProgramuji hlavne v Perlu a souhlasim s tim, ze jeho navrh je dost hrozny (proste to neni jazyk, ktery by si clovek predstavil pod vetou "fakt dobre vymyslena vec", ale spis pod vetou "fakt silna vec"). Zkousel jsem take Python a i kdyz je cistsi, chybi mu sila nekterych Perlovskych konstrukci (zaroven ma nektere veci taky docela pres koleno). Jazyk, ktery mne opravdu uchvatil, ktery ma silu Perlu (spise vetsi) a ktery jsem si vysnil jiz pred nekolika lety je Ruby na adrese http://www.ruby-lang.org/.
Re: Python
celé vláknoJaky veci treba lame Python pres koleno? Me prijde docela dost cistej a je v pohode. Snad mozna az na trosku mensi pocet modulu (muj osobni nazor). Byl bych rad, kdybyste na muj dotaz reagoval. Moc dekuji
Honza Schweppes
Re: Python
celé vláknoNechci se tady bavit o tom, co je lepsi a co je horsi - kazdy jazyk ma svoje vyhody a nevyhody a kazdy se hodi na neco jineho.
Uz je to davno, co jsem studoval dokumentaci, ale vzpominam si, ze mi vadily napriklad nasledujici veci (neberte to jako kritiku Pythonu, proti jinym jazykum je Python porad bomba):
- nektere datove typy nejsou ciste objekty (numerical, list, dictionary, string, ...) a clovek musi hledat funkce, ktere s nimi pracuji po vsech certech (stejne jako v Perlu)
- nema (nemel) class metody
- tuple a list maji prekryvajici se funkcnost (proc to neni reseno jednim typem???)
- prilis se mi nelibily moduly, ktere python obsahoval
Kdyz uz tu delam tu reklamu na Rubyho, tak se mrknete na
http://www.hypermetrics.com/ruby37.html a
http://www.rubycentral.com/book/ a taky stoji za to kouknout se do zdrojaku (slintal jsem blahem :). Taky si myslim, ze pro zpracovani textu je silnejsi nez Perl (ale o neco pomalejsi). Mrknete se na metody objektu String, Array, File a dalsich.
Re: Python - Ruby
celé vláknoMusím se připojit: Ruby je skutečně geniální a potěší programátora/estéta.
Ještě reakce na pár dalších poznámek v komentářích: jen namátkou jsem zapátral a na http://www.xs4all.nl/~hipster/lib/ruby/httpd je zdroják web serveru v Ruby (už poměrně slušného).
Dále tady někdo psal, že PHP je hezký jazyk. Myslím, že PHP sice je hezké, ale s mírnou nadsázkou bych ho spíš označil za plný pytel knihoven než za jazyk.
Re: Python - Ruby
celé vlákno"je zdroják web serveru v Ruby" ja mam zase PostScript web server, na pozadani zaslu. Sice nic moc, ale myslim si, ze web server vytvorenej z inetd, ghostscriptu a zdrojaku v grafickym formatu PostScript je fakt sila.
Re:
celé vláknoJa mam Python taky rad a mam pocit, ze jeho navrh je docela cisty a kdyz porovnam treba verzi 2.2 s 1.52, tak vidim, jak se Python rozviji. Konstrukce typu s/mrkev/petrzel/ jsou jiste silne, ale v jazycich pro vseobecne pouziti je nepotrebuji. Ruby me docela zajima, bylo by mozne o nem napsat nejaky clanek, kde byste jej porovnal treba s tim Pythonem?
Re:
celé vláknoUvazoval jsem o tom, ale nejspis by to byla serie clanku pro uplne zacatecniky v programovani. Srovnavani by zbytecne popudilo spoustu lidi a melo by vliv pouze na ty, kteri jdou po kvalite misto kvantite (viz. napr prispevek o CPANu) - tech ani kolem Linuxu neni tolik, jak jsem si drive myslel. Kazdopadne by temto nekolika jedincum melo stacit precist si dokumenty na vyse uvedenych adresach :-).
Re:
celé vlákno...a co treba tohle ;)
http://www.rebol.com
Re:
celé vláknouse strict; use warnings; a razem vsechno nesezere. Na praci s textove orientovanymi daty je to bezkonkurencni nastroj.
Re:
celé vláknoPresne tak. Perl nikomu nic nenuti. Kdyz chcete psat jako prasata, tak si tak klidne piste. Kdyz chcete psat citelne, tak se k tomu muzete nechat Perlem dokopat. ;-)
Re:
celé vláknoJo, perl je kouzelnej, ale co me fakt stve, je, ze se musi psat:
if (a==1)
{
b=1;
}
misto
if (a==1) b=1;
Dalsi drobnost je ta, ze by se dala celkem bez problemu udelat kontrola pristupu k metodam a datum objektu formou private/public, misty to fakt chybi.
Re:
celé vláknoZkus
b=1 if (a==1);
A sorry ale me prijde dost blby, ze C nepozaduje zavorky za if(). V Perlu je za if()em BLOK. Vzdycky.
Re:
celé vláknoPrevracenou podminku samozrejme znam, ale povazuju ji za prasarnu. To, ze c nepozaduje zavorky mi blby neprijde, perl je dost casto taky nepozaduje, naopak je to potom prehlednejsi.
Re:
celé vláknoTo cim mluvis (cestina) je taky splacanina bez cistyho navrhu. Chtel bys radsi pouzivat nejakej krasnej cistej ortogonalni jazyk?
Programovaci jazyk neni (nema byt) jazyk vytvoreny pro pocitac, ale pro programatora. Tudiz by mel v ramci moznosti dovolovat aby se programator vyjadroval tak jak mysli. A ne nutit ho myslet jak jak je jedine mozne se vyjadrit. A prave proto, ze kazdy programator mysli trochu jinak tak Perl nabizi vdycky nekolik moznosti jak kod napsat. A nenuti ti tu jedinou spravnou.
A krom toho ... co vsechno ti sezere se da omezit. A to prave natolik jak si TY reknes. Jak kdosi rekl ... Bondage&discipline must be consensual, otherwise it's a rape.
no uvidime
celé vláknoFajn, clanky o programovani tady chybi. Da se cekat ze tady rada lidi aspon obcas programuje na rozdil od jinych saitu, kam chodi lidi, kteri si predstavuji pocitac jen jako herni konzoli. Doufam ovsem, ze se neomezi pouze na tento tzv. jazyk.
Thready
celé vláknoFakt mi tam dost chybi ty thready, jinak bez konkurence.
TCP server za par minut!
Re: Thready
celé vláknoTCP server za par minut ? Na to by se mi hodila minikucharka. (ja vim, ja vim man perl...., jenom namet k nekteremu pokracovani)
TCP server
celé vlákno$ man perlipc
...cut&paste
$ perl tcpserver.pl &
$ telnet localhost port
To by malo stacit myslim ;)
Re: Thready
celé vláknoVypada to celkem nadejne. Uz soucasna stabilni verze perlu se da skompilovat s podporou "interpreter thread"u (coz na rozdil od predchozi implementace NEZPOMALUJE chod programu ktere je nepouziji!). Napriklad ActivePerl distribuce je podporuje.
Jsou sice zatim malinko "experimentalni", nektere moduly je nemaji rady vubec a nektere se musi ukecavat ale pouzit uz se daji. (viz http://jenda.krynicky.cz/iThreads.html )
Napsal jsem si napriklad skriptik na stahovani obrazku ze skupin na yahoogroups. 11 threadu a uz to jede ;-)
V 5.8 uz by mely byt mnohem stabilnejsi a postupne i ty dulezitejsi moduly budou upraveny aby byly threadsafe.
Implementace hashe
celé vláknoHash neni pochopitelne implementovan B-stromem ale hash tabulkou. Pomoci hashovaci fce se klice mapuji pokud mozno rovnomerne na indexy tabulky. Pokud je index obsazen, uklada se v pripade Perlu klic do pripojene kapsy. Ty maji definovanou maximalni velikost a pokud nektera pretece, definuje se nova tabulka dvojnasobne velikosti a udaje se prekonvertuji. (Tim je resena dynamicka hash tabulka).
Pri hledani se pouzije tataz hashovaci fce, ktera vrati index kapsy. Z toho je patrne, proc se u hashe nelze ptat na predchozi nebo nasledujici klic z hlediska trideni.
Jeste jedna poznamka:
V patem priklade je trochu matouci poznamka "skalaar zustane nezmenen. Ma byt uvedena promenna $skalar, protoze i $a[3] je skalar (skalarni promenna). To mate.
K Billovi:
Co je komu do toho, ze nemas rad Perl. Ja treba nesnasim Billa a taky to nikde nevyrvavam. Nemel bys radeji navstivit svyho psychoanalytika?
sila perlu je hlavne CPAN
celé vláknoto je jako COBOL v USA - jak prejit na jiny (treba lepsi) jazyk, kdyz mam mraky knihoven hotovejch v tom starym? To jednoduse nejde!
mimochodem - PHP je taky hezky jazyk :) A jeho budoucnost je vic nez dobra. Uspech je v masovem pouziti!
Co je toto ??
celé vláknoProc se na kazdy clanek o celeru ozve kupa lidi, ze maji radsi petrzel? Nemam nic proti PHP,Pythonu ani Ruby ale tento clanek snad byl o Perlu ne?
Perl je zajimavy tim, ze umoznuje psat i velmi obecne programy. Kolik je napr. jazyku, ktere dovoli ulozit do pole promenne ruznych typu i delek! To proto, ze v Perlu je pole polem odkazu, nikoliv hodnot. Pak ovsem dvojrozmerne pole musi byt psano jako pole poli a to ma vliv na syntaxi - kazdy index ma sve zavorky.A ti co nepremysleji, zacnou nadavat!
Perl prinesl do jazyku tolik novych napadu, kolik tu od Algolu nebylo. A ty ho preziji. Apropo - je Ruby prenositelne?
Re: Co je toto ??
celé vláknoHrusky s jabkama muzes rvat do stejneho po pretypovani na objekt do stejneho pole u vsech OOP jazyku, ktere maji nejaky kontejner na objekty - Java, Smalltalk, .....
Re: Co je toto ??
celé vlákno1) Moznost ulozit do pole cokoli nemusi byt vzdycky vyhoda. Pokud ma jazyk dobrou typovou kontrolu tak je to vyhoda (ne C(++) ani Java pouzitelny typove systemy nema!).
2) Dvrourozmerna pole se daji delat i takhle :
$arr{$i,$j} = $hodnota;
(Ve skutecnosti se jedna o hash indexovany $i.$;.$j)
Samozrejme v tomhle pripade si nekam musite ulozit maximalni indexy (klidne do toho sameho hashe) a prochazet ho prez
for(my $i=0;$i
Co je toto ??
celé vláknoProc se na kazdy clanek o celeru ozve kupa lidi, ze maji radsi petrzel? Nemam nic proti PHP,Pythonu ani Ruby ale tento clanek snad byl o Perlu ne?
Perl je zajimavy tim, ze umoznuje psat i velmi obecne programy. Kolik je napr. jazyku, ktere dovoli ulozit do pole promenne ruznych typu i delek! To proto, ze v Perlu je pole polem odkazu, nikoliv hodnot. Pak ovsem dvojrozmerne pole musi byt psano jako pole poli a to ma vliv na syntaxi - kazdy index ma sve zavorky.A ti co nepremysleji, zacnou nadavat!
Perl prinesl do jazyku tolik novych napadu, kolik tu od Algolu nebylo. A ty ho preziji. Apropo - je Ruby prenositelne?
Konecne....
celé vláknoJsem rad, ze se tu objevi i serie clanku o Perlu. Podle me je to pomerne uzitecny jazyk i pro >>zacatecniky
Re: Konecne....
celé vláknoNejen UNIX !!!
Existuje spousta modulu na administraci a ovladani programu ve Windows, muzete ovladat programy prez OLE i DDE, pouzivat COM objekty, dokonce vytvaret COM objekty, vytvaret services (skutecne, ne jen prez srvany.exe!), vytvaret ze skriptu exace ktere funguji i tam kde Perl neni nainstalovan atd. atp. ;-)
A prakticky vsechno zadara (krome vytvareni exacu a COMu).
Jenda
Bez titulku
celé vlákno"Perl umožňuje vytvářet prakticky jakkoli velká pole a hashe" - me vzdycky lehnul, kdyz uz nemel fyzickou pamet, swap ho vubec nezajimal (ale je mozny, ze mam starou verzi:)) ale zatim mi staci.
Taky je skvely, jak jednoduse se da v perlu vytvorit program na tisk prvocisel (projdete si sami a jasejte nad jednoduchosti a silou perlu):
== perl -le '$_ = 1; (1 x $_) !~ /^(11+)\1+$/ && print while $_++' ==
Re:
celé vláknoat zije perl :-) muj prvni programovaci jazyk ktery jsem se naucil.... och ta nostalgie - PRAVE kvuli
tomu ze to po me nechtelo nic presne a presno to chapalo co ze to po nem chci... Ale stejne si ted uz jedu s use strict, ale takovydle silenosti nepouzivam
rad bych vedel co jto dela presne :-) kazda carka tady ty
podminko scitaci/odcitaci cyklujici zaroven tisknouci "ein radky" mi delaji trochu problem...
Re:
celé vlákno"rad bych vedel co jto dela presne" - taky jsem nad tim dlouho premyslel, ale kdyz jsem to pak pochopil, tak je to hrozne jednoduche. Funguje to tak, ze se vytvori retezec o X znacich (kde X je zkoumane cislo). Pak se zkusi v tomhle retezci znaku najit regularni vyraz /^(11+)\1+$/, kterej znamena "najit dva nebo vice znaku, to cele dva a vicekrat za sebou, v celem retezci" (prakticky A krat B znaku, kde A,B>=2) a pokud se tenhle vzor nenajde (cili neni slozeny z A krat B znaku), tak to cislo je prvocislo a vytiskne se:))
Re:
celé vláknoNo, jestli tohle neni zrudnost, tak co uz?! ... ;-)
Re:
celé vláknoHehe:))) No, je to jenom TIMTOWTDI (ja osobne to pisu takhle:)) Proc nevyuzit moznosti jazyka:)) Predstavte si umet Perl na soutez v programovani, kde jeden z ukolu je naprogramovat program, ktery zjisti, jestli zadane cislo je prvocilo (v rozumnych mezich samozrejme):
----
print "Zadej cislo: ";
$a=<>;chomp $a;$b="X" x $a;
print "Cislo $a " . ($b !~ /^(XX+)\1+$/)?"je":"neni") . " prvocislo\n";
----
Re:
celé vláknoProvuch co je Perlu do swapu? To je starost operacniho systemu!
Kazdopadni ... pokud mas tak velky hashe nebo pole, ze ti zacina swapovat disk tak je lepsi ten hash ulozit na disk prez nejakou DBM knihovnu. Treba DB_File (Berklery DB). Obvykle je to mnohem rychlejsi nez kdyz budes nutit system ktery nic netusi o tvych datech aby ukladal a nacital kusy pameti.
A jedina zmena v programu je v tom miste kde vyrabis ten hash/pole.
Hrusky a jablka
celé vláknoPripajam sa k tym, co tvrdia ze nema zmysel porovnavat rozne jazyky. Kazdy jazyk je na nieco. Robim v Perli intenzivnejsie asi pol roka a vdaka nemu som poxopil aj niektore konstrukcie C a OOP. Samozrejme by som si trebars Perl nepustil k jadru, ale nepoznam nic lepsie na CGI, pracu s Reg. vyrazmi ci DB. Fantasticka na Perli je praca s modulmi atd. atd.
IMHO by bolo najlepsie, keby sa na strednych skolach prestal ucit Pascal (v sucasnosti dost pateticky) a zacal sa ucit Perl. Ako som napisal, prechod na C je potom jednoduchsi.

