Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia Tuesday TopDrive KupDnes Navrcholu Bomba NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů ke zprávičce PyPy 1.2: první verze s JIT kompilerem

Program
Program (neregistrovaný) ---.cust.nbox.cz
15. 3. 2010 12:21

Význam

Nevím, ale má tenhle projekt nějaký smysluplný význam?

Black Rider aura:72
15. 3. 2010 13:12

Re: Význam

Hned 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

Miloslav Ponkrác aura:58
15. 3. 2010 15:08

Re: Význam

Ad 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.

Antonín Brettšnajdr
Antonín Brettšnajdr (neregistrovaný) 212.71.146.---
16. 3. 2010 8:49

Re: Význam

tak 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.

Karel
Karel (neregistrovaný) 93.90.162.---
15. 3. 2010 14:18

Re: Význam

Vý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.

Miloslav Ponkrác aura:58
15. 3. 2010 15:17

Re: Význam

Osobně 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 nejmachrovi­tě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.

_G
_G (neregistrovaný) ---.241.broadband2.iol.cz
25. 3. 2010 18:39

Re: Význam

„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. :-)

Zasílat nově přidané příspěvky e-mailem