Penyusun Python-to-C ++ menjanjikan pelaksanaan yang lebih pantas

Semakin popular bahasa, semakin berbeza pelaksanaannya. Python adalah contoh klasik, dengan sebahagian besar pengganti untuk jurubahasa lalai ditulis untuk mempercepat pelaksanaan bahasa. Antara yang terbaru dan paling menarik ialah Nuika.

Nuika (sumber terbuka di GitHub) menyusun kod Python hingga C ++, yang kemudian dapat dijalankan di tempat atau dikemas sebagai fail tersendiri untuk pengagihan semula. Tidak seperti beberapa pengganti lain untuk jurubahasa Python yang ada, ia menuntut keserasian penuh dengan semua konstruk bahasa dalam Python 2.6, 2.7, 3.2, dan 3.3.

Menurut ketua projek, Kay Hayen, tonggak pertama Nuitka - ciri kesamaan dengan bahasa - telah dipenuhi. Hayen menyampaikan perbincangan mengenai Nuitka kembali pada persidangan EuroPython 2012 dan kerja yang dimulakan dengan bersungguh-sungguh (berdasarkan sejarah komitmen GitHub) sekitar akhir tahun itu.

Untuk mengerjakan sihirnya, Nuitka memerlukan kedua-dua versi penterjemah Python (cawangan 2.x atau 3.x) dan penyusun C ++. Microsoft Visual Studio, MinGW, dan Clang / LLVM semuanya disokong untuk yang terakhir, dalam edisi 32- dan 64-bit. Walau bagaimanapun, penyusunan silang - katakanlah, dari Linux ke Windows atau sebaliknya - tidak disokong, dan menyusun 64-bit yang dapat dilaksanakan di Windows memerlukan penyusun Microsoft.

Kelemahan lain ialah penciptaan eksibel yang berdiri sendiri. Untuk melakukan ini, Nuitka menyertakan edisi semula CPython (di Windows, koleksi DLL dan fail sokongan lain) dengan yang dapat dilaksanakan. Oleh itu, program yang berdiri sendiri dilengkapi dengan jumlah overhead yang mencukupi: Skrip baris arahan "Hello, world" yang mudah untuk Python 2.7 menghasilkan Windows 32-bit 2.6MB yang dapat dilaksanakan, bersama dengan fail sokongan 7.4MB. (Versi GUI dari program yang sama seberat 10MB untuk jumlah yang dapat dilaksanakan, 20MB.)

Namun, apa yang sudah dapat dicapai oleh Nuitka sangat mengagumkan, dan rancangan Hayen untuk masa depannya sangat bercita-cita tinggi. Langkah seterusnya adalah menjadikan kod yang dihasilkan oleh Nuitka lebih cekap, termasuk pengendalian jenis pemboleh ubah yang lebih baik dan pengoptimuman untuk aliran kawalan. Lebih jauh di peta jalan terdapat ciri-ciri yang lebih canggih dan berharga, seperti mempunyai antara muka Nuitka secara langsung dengan kod C yang digunakan di Python melalui sistem fungsi asing ctypes bahasa.