28 stycznia 2009

Stackless Python z microwątkami steruje kosmicznymi pojazdami ;-)

Zdrowo czasem spojrzeć na ulubione strony a nie tylko ich kanały RSSowe, istnieje duża szansa na natchnienie, odnalezienie ciekawego zagadnienia ... ot tak właśnie klikając :) Poczytałem zatem sobie o sukcesie kilku popularnych i ogromnych przedsięwzięć t.j.:

  • EVE Online - gry massive multiplayer i portalu społecznościowego

  • Second Life - czegoś w rodzaju wirtualizacji sfer prywatnych w sieci


... a to wszystko ściśle powiązane z tym oto wężem z klubu wyznawców węży ;)

Większość wtajemniczonych ludzi zna temat od podszewki, byćmoże niektórzy posiadają tam prywatne konta. Ja chciałbym spojrzeć z punktu widzenia programistycznego na zagadnienie, jakim jest wykorzystanie szczególnej implementacji języka programowania Python o nazwie Stackless Python. Całkowicie podzielam zdanie osób, które myślą sobie "kolejne gorące i słodnie ciastko w tematyce Pythona ... czemu by go trozeczkę nie nadgryźć" ;-)
Prezentuję garstkę linków z materiałami, które przeczytałem i już biorę się za wykonanie przykładów oraz ich analizę. Chciałbym zachęcić do lektury oraz dyskusji na ten nowy dla mnie i intrygujący temat. Ciekawe dlaczego akurat firma ccpgames wykorzystała ten język programowania w tym konkretnym wydaniu do realizacji gry sieciowej czasu rzeczywistego z całkiem sporą listą możliwości i efektów. Ciekawi mnie również, czemu w takim drugim świecie zdecydowano się na użycie szczególnie pielęgnowanych kodów napisanych w języku Stackless Python ... kto może mi to rozjaśnić, ale tak na chłopski rozum ;) ?

Oczywiście próbuję sobie odpowiedzieć czytając literaturę temetyczną oraz prezentację i nadal mnie ten fenomen węża intryguje ...



Linki tematyczne:
Continuations and Stackless Python Or "How to change a Paradigm of an existing Program"
Eventlet
Nested Worlds
The project hosts multiple examples of stackless usage combined with other libraries.
Multithreaded Game Scripting with Stackless Python
Implementations for Python - Coroutine
eventlet-libevent-2 secondlife trac
Comet (programming)
In Kamaelia you build systems from simple components that talk to each other.
Module k.tasklet
multitask
Chiral is a lightweight coroutine-based networking framework for high-performance internet and Web services.
py.magic.greenlet: Lightweight concurrent programming
Coroutines via Enhanced Generators
cogen - crossplatform asynchronous network oriented python framework based on python 2.5 enhanced generators
Umbrella term
Meebo is an Ajax-based in-browser instant messaging
JotSpot
stackless python - official website
Stackless python 2.5 article in eve-online devblog
eve online architecture
PyPy
http://www.massively.com/2008/09/28/eve-evolved-eve-onlines-server-model/
Infiniband
optimizations, optimizations, optimizations
stackless python used for

2 komentarze:

Anonimowy pisze...

Hmm Ciekawe jakie DB stoją za tymi projektami? Coś mi się wydaje że mysql to nie jest, chociaż sądząc po diagramie Oracle raczej też nie bo wyraźnie widać centralny serwer, a Oracle RAC takiego nie ma AFAIK.

Marcin Bielak | bieli - architekt oprogramowania i programista pisze...

Oficjalna wzmianka dotyczy serwera, który odbiega od świata otwartych rozwiązań. Cytuję:
"For the hardware geeks out there, the EVE database runs on a Microsoft SQL Server 2005 Active/Standby cluster. It has two identical database servers, with the database stored over two RamSan 400s and a DS4800 fiber channel array."