Neni to vubec neco mezi tim. Python ma prvky ruznych jazyku, ma funkcionalni prvky, jeho objektovym vlastnostem se Java nebo Perl ani zdaleka nepriblizuji. Perfektni vec je interaktivni interpreter, to byste u vetsiny jazyku marne hledali. Uzasne jsou moznosti vestaveni interpreteru Pythonu do ruznych programu - Python muzeme pouzivat v Gimpu, Xchatu, Blenderu, AutoCADu apod. Snadno se vytvareji rozsirujici moduly v C/C++. Urcite za uvahu stoji. Ale jestlize nekomu vyhovuje Perl nebo Java, proc ne?
Na zaver takovy mirne OT dotaz: Nevite nekdo, jak se spravne vyslovuje Guidovo jmeno? Neexistuje na Internetu nejaka stranka, ktera se zabyva spravnym vyslovovanim jmen nejruznejsich osobnosti?
Motivace? To musite proste zkusit, stejne jako ja. Kdysi, kdyz jsem vyztrizlivel z pocatecniho nadseni nad Objective C a GNUstepem jsem hledal neco, co by dokonale naplnilo moje programatorsky choutky. Podle meho motivace ani moc nutna neni, kazdy programator vyznava to svoje nabozenstvi a jeho osobnost (a tim i vyznani) se meni jen behem par prvnich let zivota. Zaryteho vyznavace Perlu stejne nepresvedcim, ze krasa a uhlednost kodu predevsim, ten vyznava chaos. A chaos je pro nej svaty. U programovani nejde ani tak o to, v cem progrmujete, jako co.
Tato serie clanku by mela pomoc tem ateistickym programatorum, kteri hledaji tu pravou viru pro sebe. Zadny z nich nevi, co hleda, ale vi, ze to chce. Proto ta zdanlive chybejici motivace.
PS: Re: OT: Guidovo jmeno... Mozna neco jako [Kvido], ale nevim, anglicky zrovna moc dobre nevalim, skoncil jsem na urovni cteni manualovych stranek a webu.
Hezky vanoce vsem a stastny novy rok pro priznivce pythonu.
Maly detailik: Guido je Holandan, takze znalost anglictiny nam asi moc nepomuze. Z jeho jmena jsem si jisty jenom vyslovnosti toho "van". Mozna zkusim Python mailing list.
Kazdopadne dekuji za odpoved a preju i Vam hezke svatky a bohatou nadilku.
Zaroven bych chtel na tomto miste poprat hezke vanoce i provozovatelum root.cz a autorum vsech skvelych clanku, ktere tu vysly. Root je super. :-)
Napriklad nasobna dedicnost - v Jave to ale docela elegantne obesli pomoci interfacu, misto volani metod se posilaji zpravy a objekt sam pri behu programu rozhodne, co se s danou zpravou da delat, objekt muze mit krome atributu a metod spolecnych pro tridu jeste vlastni jedinecne atributy a metody, za behu muzeme do tridy nebo objektu pridavat metody, muzeme za behu dokonce zmenit hierarchii trid atd.
hmm...zaujimave..ako je to v Jave viem... Ale zatial som si nie celkom isty, ci takato volnost (v P.) je to prave orechove... hmm, zmena hierarchie tried za behu programu... V kontexte celeho runtimu ?
No, kazdopadne, nasadili ste mi chrobaka do hlavy, asi sa na to predsa len pozriem blizsie ! Nakoniec Java s Pythonom ide vraj kominovat velmi dobre...(Jython - Python beziaci v JVM ako java bytcode...)
Tak to se jeste kouknete i na jazyk RUBY (http://rubycentral.com/book/index.html). Spoustu veci, ktere jsou do Pythonu pridavany az nyni (viz. novinky verze 2.2) byly do Ruby zacleneny jiz v dobe navrhu. Ten jazyk je naprosto cistej, srozumitelnej a "pure OO"... Vazne to stoji za to....
Dle mého názoru interfaces v Javě slouží, bez ohledu na to co tvrdí marketingová oddělení, nikoliv k řešení problému vícenásobné dědičnosti, nýbrž jako určité řešení nemožnosti rozumné práce s funkcemi/metodami. Java vícenásobnou dědičnost podle mně nemá proto, že dobře udělaná vícenásobná dědičnost (není případ C++) klade jisté nároky na IQ programátora, což je v rozporu s cíly Javy. Pokud vícenásobnou dědičnost jednou za čas potřebujete, máte v Javě smůlu a interfaces v tomto směru ničemu nepomohou.
Python pracuje s funkcemi, a od verze 2.2 i s vícenásobnou dědičností, přiměřeně rozumně. Kromě toho oproti Javě v oblasti OOP nabízí i další věci jako třeba přizpůsobitelný přístup k atributům a metodám nebo možnost přetížení operátorů.
no myslim, ze mozno bavit sa o cistote/style pisania zdrojakov este moze byt blbost, ale otazka objektoveho programovania je imho o niecom uplne inom...a o prinose OOP snad dnes pochybuju uz len zaryty C-ckari, ktori nechcu opustat zabehane cesticky, vyvojari driverov a Visual Basicisti...;)
To je pravda, ale ruku na srdce: jsou jazyky, kde i celkem normalni program vypada tak, ze kdo perfektne nezna syntax, netusi, co to dela. A Perl je diky spouste syntaktickeho cukru (mnoho zpusobu jak rict totez, ale zaroven nerict vic) neprehledny vic nez dost... Na druhou stranu je to puvodne nahrada za skriptovani v shellu, takze vlastne (ne)citelnost svych predchudcu pouze rozsiruje ;)
Ja tedy nevim, skoly nemam ale jediny "sugar" ktery me napada jakozto necitelny jsou regularni vyrazy pripadne retezcova konstanty psane pomoci operatoru q, qq, qw a qx.
A ve srovnani s tim co tvrdi autor clanku, ze v Pythonu u prikazu print "Je-li za posledním výrazem umístěna čárka, nedojde k vložení znaku nového řadku. " ...
Nejak me nedochazi co je tak necitelneho treba na
die "Can't find the file : $filename" unless -e $filename;
Nebo jaky cukr mate na mysli?
Mam fakt rad python. Je to imho nejlepsi jazyk (ruby mel smulu, ze jsem na nej prisel asi o pul roku pozdeji). Takze je moc prima, ze o tom nekdo pise konecne nejaky cesky navod.
Ad srovnani s javou: java ma ten problem, ze se snazi byt vysoko- i nizkourovnovy jazyk zaroven, a to je podle me velke omezeni. Libi se mi filozofie, kterou vyznava python, napiste to nejdriv rychle v pythonu (vyssim programovacim jazyce)
Na druhou stranu i Python ma nektere principialni problemy (ktere tusim neresi ale ani zminovany ruby). Napr. asynchronni obsluhu udalosti, thready a podobne. Naproti tomu java ma synchronizovane sekce, uplnou podporu threadu a RMI. Co se mi jave ovsem nelibi je hruby ustupek optimalizacim, ze jsou objekty-neobjekty - Cckovite zakladni typy....
Zaujalo me nekolik pripominek. Myslim, ze
python a Perl je neco jineho, perl ma spoutu
zajimavych vlastnosti, python take. Zalezi co
se implementuje. Pokud potrebujete OO, asi nesahnete
po perlu (i kdyz umoznuje nekolik fint, ktere se v P.
delaji dost krkolomne). I ja jsem unesen jednoduchosti
ObjC ale je to neco jineho, je to jen objektova nadstavba C, nic vic. A Java, to, pekny OO jazyk, dost
veci ma veci se da vynutit na urovni jazyka (ono abstract, interface atd)...Ale to jsem odbocil.
Myslim, ze spravny programator by nemel hledat ten
"svuj" jazyk, ten "pravy", spis by mel mit prehled
a umet vybrat ten spravny jazyk na implementaci
toho ktereho problemu...
nazdaaaar. nevim jestli to neni blbost, ale muzu v programech v Pythonu a v Ruby pouzivat dll knihovny? Napriklad podporu OpenGL...
Mimochodem, nejakej serial o Pythonu vysel pred straaaaaaaaaaaaaaaasne dlouhou dobou na serveru www.novinky.cz -- viz napriklad http://www.google.com/search?q=novinky.cz+python&hl=cs