Microsoft Pyjion meningkatkan kecepatan Python

Proyek Microsoft open source baru, Pyjion, meningkatkan kecepatan bahasa Python dengan menambah penafsir stoknya dengan JIT yang diturunkan dari proyek CoreCLR Microsoft.

Runtime masalah standar Python, CPython, hanya menafsirkan bytecode aplikasi Python dan tidak dipercepat dengan mengompilasi kode dengan cara apa pun. Salah satu metode umum untuk mempercepat Python adalah mengganti CPython seluruhnya. PyPy, pengganti CPython yang populer, menggunakan kompiler JIT untuk mempercepat aplikasi Python.

PyPy memberikan peningkatan kecepatan yang lumayan untuk banyak aplikasi, tetapi tidak semuanya, dan terkadang bahkan memberikan kinerja yang lebih buruk daripada CPython. Itu juga tidak memiliki dukungan terbaik untuk modul ekstensi CPython, yang banyak digunakan dalam aplikasi Python seperti komputasi ilmiah; oleh karena itu, beberapa pengguna Python yang paling rajin tidak dapat memanfaatkan PyPy sama sekali.

Pyjion mengambil pendekatan berbeda. Ia menambahkan JIT API ke CPython, sehingga beberapa JIT dapat dipasang langsung ke CPython. Karena CPython masih digunakan, aplikasi berjalan seperti biasa, termasuk yang mengandalkan modul ekstensi.

Selain itu, Pyjion menargetkan Python 3, di mana proyek percepatan Python lainnya sebagian besar lebih menyukai Python 2. PyPy mendukung Python 3, tetapi hanya Python 3.2, sehingga banyak konstruksi bahasa yang ditambahkan sejak saat itu (seperti  async/await) tidak akan berfungsi.

Microsoft mengklaim pendekatan Pyjion lebih fleksibel, karena komponen JIT diperlakukan sebagai sumber daya yang dapat dicolokkan. Pilihan JIT berdasarkan CoreCLR tidak dimaksudkan sebagai satu-satunya pilihan, melainkan berfungsi sebagai bukti konsep. Menurut dokumentasi di GitHub, Microsoft berharap ini akan "mengarah pada proliferasi runtime JIT untuk Python, memungkinkan orang untuk memilih JIT yang paling sesuai dengan beban kerja mereka."

Microsoft berkontribusi pada proyek sumber terbuka yang ada melalui sebagian besar dukungan tidak langsung dari usahanya sendiri. Kontribusinya pada kernel Linux, misalnya, terutama tentang menjadikan Linux warga kelas satu di Azure. Tetapi bahasa kerjanya sedikit lebih terbuka, dan jika Pyjion menemukan daya tariknya, itu akan menjadi salah satu kontribusi terbesar Microsoft terhadap ekosistem bahasa yang sebelumnya tidak ada secara langsung.