Syntaxi se mi teda Lua vubec nelibi, proc tak hnusny komentare, ach jo. V tom by se mi opravdu nechtelo psat neco rozsahlejsiho. Jak je to s podporou knihoven a bindingu typu binding na gtk, nejakou grafickou knihovnu, praci se zvukem, xml, soap, xml-rpc, webovymi frameworky, mod_lua a podobne? Tedy to, co tohle a mnohem vic poskytuje Python. Kdyz jsem cetl prvni dil, tak jsem si prakticky porad rikal, jo, tohle umi python, na tohle je prave taky stavenej python, napriklad ten embeding a podobne. Nejak jsem si nepovsimnul jedine veci, co by umel oproti Pythonu navic, co umi noveho, aby stalo se vubec zabyvat dalsimi dily. Zatim se mi zda, ze nic noveho neprinasi. A jeste jedna vec, jak je na tom lua se jmennymi prostory?
luaGnome, mod_lua, lua Orbit, luaXML (a hafo dalsich, tato je purge Lua, ne binding na C/C++ knihovny) je toho dost. Je to v clanku myslim popsane, v cem je Lua pro nektere projekty lepsi (pokud si clovek odlozi ideologicke bryle) - maly memory footprint, interpretr do cca 100 kB (ano, u Pythonu existuje jeho orezana lite verze, to vsak neni Python), rychlejsi beh programu, rychlejsi JIT (x Psycho) atd. Python je samozrejme pekny jazyk (patri do stejne skupiny), mnohdy je rozdil jen v syntaxi.
Paralelni jako stovky a tisice "procesu" s minimalni rezii. Kouknete se treba na erlang a kolik "procesu" obsluhuje na jabber.cz (co uzivatel to lightweight proces). A lua je na tom s rezii jeste lepe.
Stackless python je hezky, ale tezka vlakna nikdy nebudou tak rychla a levna. Vite co vykonu vas stoji klasicky context switch?
Stackless python je hezky. (zel experimentalni a nevsiml jsem si, ze by ho moc firem pouzivalo, vyzaduje upraveny interpret)
Multiprocessing je to same, novinka v 2.6, tudiz experimentalni a neoverene.
a pak nam zbyva threading.. a tam plati moje vytka o vlaknech.
Lua tu uz par let je a v porovnani s ostatnimi jazyky byla nejvice prostredkove nenarocna co se korutin tykalo. Vysledky stackless pythonu a multiprocessing modulu neznam, ale klasicky pythoni yield mel extremne vysokou spotrebu pameti (desitky KB).
Krom toho jak se divam, multiprocessing jen obchazi problem se zamykanim interpretu tim, ze pouziva vice procesu, misto vice vlaken. Tudiz take prilis drahy context switch.
Klasicky python proste neni delany na vysoce paralelni ulohy.
Stackless mnoho firem jistě nepoužívá, zejména proto, že nemají potřebu. Erlang má můj respekt (funkcionálním jazykům fandím) a Lua má stoprocentně taky mnohé výhody. Chtěl jsem jenom poukázat na to, že Python v podobných situacích nemusí být úplně špatný nápad.
Já můžu uvést taky pěkný příklad: Hra Eve Online používá na serveru právě Stackless. Chtělo by to asi nějaký benchmark pro srovnání výkonu Lua, Erlangu, Stackless Pythonu apod...
Tak s tím nesouhlasím. Komentáře jsou naprosto vynikající, zvláště ty blokové.
Zakomentovaný blok:
--[[--
bla bla
--]]--
Jak tento blok uvolím? Takto:
---[[--
bla bla
--]]--
Žádné hledání druhé hvězdičky a lomítka. Samozřejmě, že lepší editory s highlightingem to zohledňují a příslušně rozsvítí/zhasnou blok.
Některé jiné věci jsou poněkud nezvyklé ale komentáře jsou silně návykové:-).