Díky za pěkný článek! Tohle si zaslouží zmínku, a ne ten japonský odvar Smalltalku jménem Ruby co je tak masívně populární.
Dynamický programovací jazyk, agilní, cool, blablabla, blekblekblek...
No, jeste zes tam nepripsal Lisp, to bys radsi ani nesmel prijit ke me do kanclu :-) Spis bych napsal, ze je to mismas Lispu a Smalltalku (a u dvou "pecek" jeste Cecka).
LISP "netrpí malým výkonem" mimo jiné proto, že je u něj možné specifikovat typy parametrů a de facto z něj udělat něco jiného. To já vezmu Pyrex a můžu si taky zkompilovat program, který bude "něco jako Python" a výsledkem bude zkompilovaná binárka rychlá jako program v C. Nebo vezmu Psyco apod. a můžu dosáhnout srovnatelného výkonu. Kromě toho, v mnoha oblastech rychlost CPythonu (a jistě i Ruby) naprosto dostačuje. Nedávno jsem si udělal prototyp prográmku v Pythonu a po ručním převodu do C jsem musel chvilku optimalizovat, protože to C bylo pomalejší (nezdá se to, ale každá dereference se docela pozná).
Vsak o tom to je, z Lispu se da pomoci maker a dalsich vychytavek udelat neco jineho a stale to bude Lisp :-) Ale jak se zminoval Michal, jemu pripada Python pro nektere aplikace moc pomaly, tak mu to neberte, on vi o cem mluvi (opravdu to nastve, kdyz se jen a jen kvuli vykonu musi zahodit programovaci jazyk vysoke urovne a prejit o dost niz, treba na C nebo Javu). Neco jako hotspot optimalizace by Pythonu urcite bodla, snad se ji dockame (ale Parrot to, jak se podle vyvoje zda, nebude :-). Ze je to mozne, dokazal po deseti letech intenzivniho vyvoje i Sun.
No, dívám se na Computer Language Shootout a Python (i s Psycem) dostává opravdu na zadek od SBCL (hustě využívajícího declare) i JDK -server apod. Takže nám zbývá ShedSkin a PyPy (oba projekty mají daleko k použitelné verzi), případně se v kritických rutinách uchýlit k Pyrexu apod.
Ale muze nas uklidnit to, ze se nejedna o problem Pythonu jakozto programovaciho jazyka, ale jeho implementace. SBCL prip. dalsi kompilovane Lispyy jsou rychlejsi, zato Scheme ("akademicky" dialekt Lispu ve forme interpreteru) je naopak pomalejsi, takze jde o vlastnost te ktere implementace. Neco na zpusob hot-spotu by opravdu pomohl, a to i diky IMHO lepsimu bytekodu Pythonu oproti dost low-level bytekodu Javy.
Mel jsem na mysli tu implementaci, ktera se zucastnila benchmarku, ta je vytvorena jako interpreter. Jinak me se Scheme libi, neni tak moc roztahana jako CLisp, akorat se mi nelibi nahrada nil a T.
Prave ted mam na vedlejsi plose na svem x86 Gentoo Self pusteny, takze kdyz pri dobrem pocasi i tam :-)
Ale staci dopsat par radku do VM a objektovy model Selfu si clovek muze uzit i ve Squeaku (http://www.comtalk.net/Squeak/95). Mel bych si konecne najit cas s tim zase trochu pohnout...
Jedna se o tento projekt: http://www.gliebe.de/self/
Pripadne bych vam mohl nekam uploadnout funkcni binarku i se snapshoty. Tato VM neni primo od Sunu a neobsahuje jejich optimalizace, nicmene minimalne na vyzkouseni to staci.
Copak Ti Ruby provedl, ze na nej tak nadavas? Je to velmi kvalitni a neskutecne prakticky programovaci jazyk, s poradnou podporou OOP. Neni si moc na co stezovat, teda krom Unicode, ktere ale snad bude v 2.0, alespon jsem to zahladl na webu...J