Jako jazyk se mi Py3 líbí, změny jsou k lepšímu, je to všechno čistější a logičtější.
Na druhou stranu, cena, kterou se za to platí (rozbití kompatibility) je značná. Na Pythonu je super, že existuje spousta knihoven a ty pro Py3 teď nejsou a nebudou, dokud je někdo nenaportuje. No a to bude trvat a na spoustu kódu se nedostane vůbec.
Určitě ještě několik let zůstanu u řady 2, nicméně budu věřit, že z dlouhodobého hlediska je tato změna prospěšná.
Lepší než C++ je třeba v tom, že sednu, píšu a spustím. Cyklus s C++ má navíc překlad před spuštěním. Navíc má Python v základu spoustu zajímavých knihoven (třeba práce s HTTP, parser mailu, práce s kódováními...), takže nemusíme hledat tolik knihoven okolo. Vývoj je v Pythonu rychlejší právě z těchto důvodů - rychlejší vývojový cyklus, více knihoven v základu.
Nez C++ je lepsi v jednoduchosti a rychlosti s jakou se pise kod. Python pouzivam jako spustitelny pseudokod pokud si chci vyzkouset nejaky algoritmus. Dokazal bych si ale i predstavit projekty, ktere bych psal v Pythonu. Zkus to a uvidis, python se da naucit za par hodin/dnu.
Jazyk je na vyšší úrovni abstrakce než C++. Co je v C na 100 řádků, v C++ na šedesát, to je v Pythonu na dvacet :-). A taky se nemusí kompilovat. Samozřejmě to céčko je zas mnohem rychlejší - výkonové problémy v Pythonu se občas řeší tak, že se udělá modul v C/++.
PHP? Záleží na názoru, ale IMO je to nekonzistentní bastl, obsahuje nesystematicky pojmenované funkce, jakési podivné globální direktivy... Python má hezký objektový model a má od začátku. (I když spíš než "všechno je objekt" platí "všechno je slovník" :-). Python je prostě hezky navržený jazyk ve kterém je opravdu radost programovat.
Tomu moc neverim, na beznych programech. Nejaky konkretni priklad by nebyl?
Ono jedna vec jsou takove ty hezke "ucebnicove" priklady jako faktorial apod., a druha jsou realne programy, ktere musi osetrovat chyby a podobne veci.
Smalltalk je ryze objektový jazyk, takže prakticky všechny jeho konstrukce jsou realizovány pomocí nějaké třídy (včetně podmínek, cyklů apod.; má jen 6 klíčových slov: true, false, nil, self, super a thisContext), která je začleněna do jedné veliké hierarchie s jedním společným počátkem (třidou Object, resp. ProtoObject). Objem této objektové hierarchie je i v základních verzích celkem udivující - bývají to až tisíce tříd, zahrnující i objekty jako midi přehrávač, syntezátor řeči, editor, webový prohlížeč apod. a samozřejmě je možné další stovky tříd doinstalovat podobným mechanismem, jako se to dělá např. s balíčky v Debianu. Přizpůsobení či skombinování pár tříd pro účely, jež potřebuješ, je pak často opravdu záležitost na dva řádky. Ostatně stačí se podívat i na zdrojáky např. Squeaku samotného - málokdy najdeš metodu delší, než 10 řádků. Úžasně je řešená i organizace a vyhledávání tříd nebo přímo metod, včetně behaviorálního, což jsem nikde jinde neviděl.
Opravdu mě často baví sledovat pachtění různých "inovátorů", kteří nejsou schopni se dostat ani na úroveň toho, co tu bylo už před 30ti lety. A nevím o žádném objektovém jazyku, který by překonával Smalltalk.
Pokud je Smalltalk tak skvělý, mělo by k němu konvergovat stále víc programátorů a softwarových projektů? Kde je zakopaný pes, když za těch 30let ještě není mezi hvězdnou pětkou nejpoužívanějších jazyků?
To by ma tiez zaujimalo, v com je pes zakopany, ze programatori davaju prednost inym jazykom pred Smalltalkom?
Ja som si kedysi stiahol Squeak aj nejaku ucebnicu k tomu a skusal som to, ale neslo mi to nejako do hlavy. A dovtedy som si myslel ze snad aspon priemerne IQ mam, ked som kedysi skoncil aj matfyz a dokazem okrem Pythonu programovat aj v inych jazykoch.
Ale s tym Smalltalkom mi to fakt nejako neslo. Vyzaduje Smalltalk nejake specialne schopnosti?
Jak je to s tou benevolencí v cyklu? U mě to funguje:
Python 3.0 (r30:67503, Dec 9 2008, 09:28:25)
[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> for x in 1,2,3,4:
... print (x)
...
1
2
3
4
Zhruba znám C/C++, stroják/assembler 6502, basic, pascal, smalltalk, perl, awk, sh, ruby, ocamel, haskell, fortran... Python znám jen pasivně (přečetl jsem o něm knížku), ale změna <> za != mi připadá dosti úsměvná. Je tu někdo, kdo o tom ví něco víc, než ty jednu větu?
Článek pěkný, s Pythonem 3 už je to horší --- což o to, změny v jazyce se mi líbí, ale výkon je prachbídný a zatím chybí knihovny... http://www.tuxware.cz/?p=52
Na oficialnich strankach psali, ze je vykon horsi asi jen o 10% a to v situacich, kdy se hodne pracuje s integery. A take, ze je patrne jeste prostor pro optimalizace. Tak uvidime, ja osobne verim a doufam, ze 3.1 se predevsim soustredi na optimalizace.
Na druhou stranu, Python nikdy nebyl vzor rychlosti, takze to az takova vada na krase neni.
Lenze tam sa pise, ze vykon je mnohonasobne nizsi pri spracovani textovych suborov.
Ja si myslim tiez, ze to nebude az tak tragicke - aspon pre moje aplikacie.
Co mi najviac vadi je v buducnosti nahradzovanie
"foo=%s bar=%d" % (foo,bar)
za
"foo={0} bar={1}".format(foo,bar)
alebo nieco podobne
Nechapem, preco ist od jednoduchsieho k zlozitejsiemu.
To tam mohli uz dat zrovna radsej C-funkciu printf()
Ja mam to % na Pythone rad a dufam, ze si to Guido rozmysli, ved aj lambdu chcel odstranit a nakoniec zostala.