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