... ale uplne jinym smerem :-) Dneska tady mame x siroce pouzivanych jazyku, kde x je zhruba 15(!), ale pouze jeden jediny z techto jazyku zvlada slusne programovat paralelni ulohy. Je to Erlang.
Zatimco ostatni jazyky se predhaneji (zda se) v tom, jakym n-tym zpusobem napsat zakladni ridici konstrukce (odsazeni, if-then-else, if() {}else{}, atd.), tak se zatim IMHO dost zapomelo na to, ze dneska jsou zcela bezne vicejadrove procesory (8 jader v pocitaci neni zadna vyjimka) a naprosta vetsina aplikaci si neco masti na tom jednom jedinem jaderku.
A je to hodne prave veci programovacich jazyku, ktere paralelni programovani moc nepodporuji. Java/Python/Scala atd. sice programatora odstinily od nutnosti resit si alokaci a dealokaci pameti, coz je jiste fajn, ale podpora pro komunikaci mezi paralelne "zijicimi" objekty vyresenu moc dobre nemaji - jen na nejnizsi synchronizacni urovni, coz v praxi jen vede k obtizne detekovatelnym deadlockum :-)
Takze tady je urcite jeste velky prostor pro vyvoj a Erlang ukazal, ze to skutecne jde - vykonny jazyk nasazovany v praxi (na rozdil od ruznych spise akademickych pokusu o messaging).
To je prave to, co jsem mel na mysli ;-) Ano, Java podporuje thready a zakladni synchronizacni mechanismy mezi nimi (+ synchronizaci na urovni nekterych typu trid, treba kolekci), ale to je podobne jako kdyz reknu, ze C/C++ dobre podporuje praci s pameti - skutecne podporuje, akorat si to malloc(), free() a new musim sam osetrovat a hlidat.
To stejne je s thready - pracovat s nimi umim, ale odladeni aplikace, kde bezi skutecne mnoho threadu (nemyslim ted "stejnych" threadu ve smyslu napriklad mnozstvi servletu delajicich to same), je dost obtizne a tady vidim malou podporu - nehlede na to, ze thready jsou uz z podstaty pod jednou VM a dneska se spise zada reseni, kde se daji "bezici objekty" (procesy/thready) prehazovat mezi masinami bez toho, abych si toho jako programator musel nejak moc vsimat (a J2EE reseni je moc kanon na vrabce ;-).
V Erlangu jsem zkousel pravda jen jednoduche veci, ale chystam se do nej vic proniknout, protoze takovy ejabberd me pripadne jako dost vychytany (na to, kolik zvladne dotazu a na jakem HW :-) A ano - tvurci Erlangu taky evidentne chteli nektere ustalene syntakticke veci vylepsit :-)
Mimochodem - za nějaké dva roky slibuje AMD uvedení procesoru s 20 jádry - je to tedy zatím spíše následník serverového Opteronu, nicméně na stejnou dobu plánuje deset jader do desktopu.
Mé čajové lístky ve shodě s kávovou sedlinou tvrdí, že počet jader teď poroste podobně jako frekvence před lety. Těch 32 jader tady bude za chvíli...