Aby se pri vyvoji nezacyklili a neskoncili nekde u PyPyPyPyPyPyPyPyPyPyPyPyPyPyPy......... To by dnesni stroje as neutahly.
PyPy 1.2: první verze s JIT kompilerem
Projekt PyPy, který si klade za cíl napsat interpretr Pythona v Pythonu, se pohnul o velmi velký kus vývoje dopředu a to s verzí 1.2. Podle vývojářů jde o hlavní milník ve vývoji, protože přichází s Just-In-Time kompilerem. Ten dokáže být v některých případech rychlejší než CPython. I když byla razantně zvýšena rychlost celého projektu, stále obsahuje některé problémy, díky kterým se na nic jiného než testování nehodí. Především jde o slabou podporu procesorových architektur (momentálně jen x86) a velkou náročnost na paměť. Pokud vás PyPy v nové verzi zaujalo, můžete využít novou projektovou stahovací stránku.
Dále čtěte…
- Vývoj Qt+HTML aplikací 6. 2. 2012 10:41
- Jazyk Python prakticky 9. 1. 2012 13:57
- IronPython 2.7.1 dohnal CPython 2.7.2 25. 10. 2011 8:01
- Pyvec tentokrát o Elle a analýze 13. 10. 2011 17:09
- Django 1.2.7 a 1.3.1 opravují vážné bezpečností chyby 12. 9. 2011 10:36
Re: PyPy 1.2: první verze s JIT kompilerem
celé vláknoAsi vetsina prekladaci cecka je kupodivu taky psana v cecku.
Re: PyPy 1.2: první verze s JIT kompilerem
celé vláknoU překladačů je to celkem jedno, v čem byl napsán, výsledkem je binárka. U interpreterů to jedno není, tam vám v tu chvíli beží všech těch X interpreterů najednou.
Význam
celé vláknoNevím, ale má tenhle projekt nějaký smysluplný význam?
Re: Význam
celé vláknoHned dva:
1) zjednoduseni vyvoje
Je jednodussi programovat Python v Pythonu nez v C
2) zrychleni behu programu
Jestli si dobre pamatuju klasickej Python je porad interpretovanej jazyk.
PyPy pouziva JIT kompilaci jako Java ci .Net
Re: Význam
celé vláknoAd 1) Aby následně toto „zjednodušení“ ve výsledku časem zdesetinásobilo nutný počet pracovních hodin a náklady na vývoj. Velmi častý jev.
Re: Význam
celé vláknotak tak … pokud bude pokracovat zpetna nekompatibilita novych verzi Pythonu, pak mouhou PyPy, s kazdym dalsim vydanim, psat cely nanovo :-) Mam docela obdiv pro lidi, kteri dokazali tuto neprijemnost prekousnout.
Re: Význam
celé vláknoVývoj jazyka. Jste vývojář Pythonu nebo nějaké jeho knihovny a chcete experimentovat. V té chvíli potřebujete nějaký interpreter, který si budete upravovat a který bude umět vaše nové konstrukce. Pokud je ten interpreter v C, pak musíte pochopitelně umět Python i C. A to docela dobře. Pokud by interpreter byl v Pythonu, stačí vám umět jediný jazyk – Python. Jakmile něco ověříte a bude to fungovat, pak to časem někdo „natlačí“ i do dalších interpreterů psaných už v „rozmnějších“ jazycích. Takže kupříkladu teď dokázali napsat JIT kompilátor, který funguje. Je jen otázkou času, kdy to bude implementováno i do „mainstream“ interpreterů Pythonu.
Re: Význam
celé vláknoOsobně myslím, že napsat JIT v C++, což je asi nejvhodnější jazyk na tyhle akce je jednodušší i ve výsledku.
On to totiž nikdo nenatlačí. Jistě je Python vhodný pro prototypování, nicméně JIT už není nic tak jednoduché, aby se to zvládlo prototypizací.
Zvláštní je, že všechny komerční produkty obsahující JIT, a velmi dobré a silné JIT – tak firmy ani nenapadlo zabývat se ničím jiným, než C++, nebo C.
Napsat vynikající JIT kompilaci je velmi sofistikovaný a složitý sw problém. Je to jedna z nejmachrovitějších akcí, co vůbec můžete jako programátor napsat. Napsat vynikající optimalizátor kompilovaného jazyka, nebo vynikající JIT (každý z obou věcí je dost jiný problém) je jeden z vrcholů programátorské virtuozity. A není to nic snadného, chce to obrovské množství kódu, dobře rozmyšlenou architekturu, využití dlouholetých zkušeností a opravdu mnoho člověkoroků práce.
Napsat třeba linux kernel je proti tomu velmi srandovní a jednoduchá věc, kterou lidé dostatečně teoreticky i prakticky fundovaní psát vynikající optimalizátor, nebo JIT napíší levou zadní. Tím nechci podceňovat linux kernel, jen ukazuje, jak složitý problém napsat JIT je.
Píše snad někdo linux kernel tak, že nejdříve ho napíšu v Pythonu a pak celý přepíše do C/C++? Ne! Proč? Protože je to blbost a ta práce za to nestojí. Nehledě na to, že Python vůbec nedisponuje řadou potřebných možností pro kernel, ani pro dobrý JIT. Úplně v jeho možnostech chybí řada konstrukcí.
Tudíž JIT, který se nenapíše od nuly v C/C++ za moc stát stejně nebude.
Re: Význam
celé vlákno„Osobně myslím, že napsat JIT v C++, což je asi nejvhodnější jazyk na tyhle akce je jednodušší i ve výsledku.“
Muhehehehe. A teď tu o Šípkové Růžence. :-)

