Pemrograman Python yang lebih cepat: Bagaimana Pengembang Ini Membangun Pyston, dan ke mana Akan Pergi Selanjutnya – Ketika Kevin Modzelewski dan rekan-rekannya di Dropbox mulai membuat Pyston pada tahun 2014, mereka memiliki tujuan yang sangat sederhana: untuk menurunkan biaya menjalankan kode Python di server Dropbox, dengan membuat kode itu sendiri lebih cepat.
Pemrograman Python yang lebih cepat: Bagaimana Pengembang Ini Membangun Pyston, dan ke mana Akan Pergi Selanjutnya
Baca Juga : Python Akan Menempati Posisi Pertama Dalam Peringkat Popularitas Bahasa Pemrograman
pythonsprints – “Kami tumbuh secara eksponensial, sehingga biaya server kami tumbuh secara eksponensial,” kata Modzelewski kepada TechRepublic. “Jika kita bisa menjalankan Python lebih cepat, kita akan menghabiskan lebih sedikit uang untuk menjalankan Python.”
Inisiatif pengurangan biaya asli di Dropbox berkembang menjadi proyek yang lebih besar untuk Modzelewski ketika perusahaan pindah dari Python pada tahun 2017 dan membatalkan proyek Pyston.
Dia menyadari saat mengerjakan bahasa bahwa ada permintaan yang kuat untuk Python yang lebih cepat di antara komunitas pengembang, dan sementara ada banyak alat di sekitar untuk meningkatkan kinerja dalam aplikasi yang lebih kecil, tidak ada yang dirancang untuk aplikasi tipe logika bisnis yang besar. seperti Dropbox.
“Ada banyak alat di luar sana untuk membantu Anda menjalankan Python lebih cepat, tetapi tidak ada yang cocok untuk kasus penggunaan Dropbox,” kata Modzelewski.
“Ini adalah area pasar Python di mana banyak uang dihabiskan, tetapi tidak banyak alat yang dikembangkan untuk membantu. Itu kurang terlayani.”
Maju cepat ke hari ini dan Pyston sekarang dalam versi 2.2 , dan telah bersumber terbuka, dengan Modzelewski dan sesama pengembang Marius Wachtler sekarang memimpin proyek sebagai salah satu pendiri. Implementasi terbaru menjanjikan peningkatan kinerja 30% dibandingkan Python 3.8.8, dengan manfaat utama adalah pengembang dapat dengan mudah memasukkan aplikasi Python mereka ke Pyston dan memulai, tanpa harus menulis ulang kode mereka. Ini juga merupakan “hal yang benar-benar terpisah” dengan apa yang dibuat Modzelewski dan sesama pengembang untuk Dropbox sekitar tujuh tahun lalu.
“Kami sangat ingin agar Anda dapat menggunakan Pyston alih-alih Python biasa, dan tidak perlu melakukan satu hal pun,” kata Modzelewski.
“Pada saat kami memulai, basis kode Dropbox adalah jutaan baris kode. Dan Anda tidak dapat benar-benar menulis ulang itu ke dalam bahasa lain atau membubuhi keterangan semuanya.”
Tujuan untuk Pyston pada awalnya adalah untuk membuat implementasi Python yang dapat mendorong kinerja bahasa pemrograman ke yang sebanding dengan bahasa sistem tradisional seperti C++ .
Ini berarti menghapus beberapa fitur CPython yang jarang digunakan – seperti pemeriksaan debug – dan menggunakan teknik just-in-time (JIT), seperti yang digunakan dalam JavaScript, C# dan Java, untuk meningkatkan kecepatan eksekusi.
Namun begitu banyak fitur telah ditambahkan ke Python selama bertahun-tahun sehingga sulit untuk mengatakan apa yang penting dan apa yang bisa dibuang, kata Modzelewski: “Saya menganggap diri saya cukup berpengetahuan tentang Python, dan ada beberapa fitur yang saya tidak tahu tentang sampai benar-benar harus menerapkannya sendiri. Saya seperti, ‘Saya belum pernah mendengar tentang ini, saya belum pernah membaca tentang ini, saya belum pernah mendengar ada orang yang menggunakannya’.”
Satu-satunya cara untuk mengetahui fitur mana yang berguna bagi pengembang dan mana yang tidak adalah dengan mulai menghapusnya dan kemudian menunggu umpan balik. “Kami ingin mulai menghapus beberapa di antaranya sehingga kami dapat mulai mendapatkan umpan balik dari orang-orang yang mengatakan, ‘Hei, sebenarnya saya menggunakan fitur itu dan Anda menghapusnya’.” kata Modzelewski.
Pendekatan agresif untuk pengoptimalan ini memungkinkan Pyston memperoleh peningkatan kinerja yang signifikan dibandingkan CPython. Sementara 30% adalah angka yang secara resmi disebut-sebut, Modzelewski menunjukkan bahwa ini adalah perkiraan konservatif, karena fakta bahwa Pyston menggunakan tolok ukur kinerja yang lebih realistis yang lebih mencerminkan bagaimana pengembang Pyston mungkin benar-benar mengalaminya.
“Kami mengukur kinerja cukup berbeda dari proyek lain, jadi 30% kami tidak dapat dibandingkan secara langsung. Jika kami mengukur kinerja dengan cara yang sama dengan yang dilakukan orang lain, jumlah kami akan lebih tinggi,” katanya.
“Terkadang kami berpikir, haruskah kami melakukan itu? Kedengarannya lebih baik untuk menjadi ‘lebih banyak persen’ lebih cepat. Tapi kami mencoba mengukur kinerja dengan cara yang sama dengan bagaimana pengguna kami mungkin benar-benar mengalaminya, dan akhirnya memberi kami angka yang lebih rendah, dan itu 30% untuk kita.”
Pencipta Python, Guido van Rossum, menyebut Python “besar dan lambat”, yang telah menghambat penggunaannya dalam pengembangan aplikasi seluler dan di dalam browser web. Bahasa ini tetap ditujukan terutama untuk ilmu data dan pembelajaran mesin, serta layanan web backend – meskipun ini terutama didominasi oleh JavaScript, dan semakin meningkat, superset TypeScript Microsoft.
Pyston, sementara itu, menargetkan aplikasi web secara khusus. Meskipun ada banyak alat untuk mempercepat kode Python – seperti implementasi Pyton ‘saingan’ PyPy – Modzelewski menjelaskan bahwa ini cenderung tidak berfungsi dengan baik untuk aplikasi web, karena jumlah dependensi.
Kesenjangan pasar inilah yang ditargetkan Pyston. “Kami sedang mencari cara untuk mempercepat aplikasi web Python, yang saya maksud adalah komponen yang berjalan di server perusahaan,” tambahnya.
Python yang lebih cepat dan lebih agresif
Guido van Rossum telah berjanji untuk mengatasi masalah kinerja Python di versi mendatang, dengan berani berjanji untuk menggandakan kecepatan bahasa di Python 3.11 , salah satu dari tiga cabang Python yang dijadwalkan untuk rilis pra-alfa pada tahun 2022.
Modzelewski mengatakan ada kesamaan dalam apa yang ingin dicapai oleh Python dan Pyston, tetapi mencatat bahwa peningkatan kecepatan apa pun dalam versi Python yang lebih baru tidak akan diterjemahkan ke Pyston; sementara tim telah mem-back-port beberapa kode Python yang lebih baru, itu akan terus menargetkan versi Python 3.8.
Apapun, Modzelewski percaya bahwa Pyston dapat terus menjadi kompetitif. “Kami jauh lebih agresif [daripada Python] dengan jenis hal yang akan kami lakukan,” katanya, mencatat bahwa kompiler JIT Pyston menawarkan keunggulan dalam hal alat yang dimilikinya.
“Mereka agak membatasi diri dalam apa yang akan mereka kumpulkan.”
Saat ini tidak ada cara untuk mengetahui dengan pasti berapa banyak pengembang yang menggunakan Pyston di lapangan. Proyek ini jelas memiliki pengikut pengguna yang antusias dan berdedikasi, banyak dari mereka akan bergabung ke saluran Pyston Discord untuk melaporkan bug atau hanya memberi tahu mereka bagaimana mereka melakukannya.
Modzelewski mengatakan tujuan utama dari proyek ini adalah untuk membangun sesuatu yang orang akan mendapatkan nilai darinya. “Saya pikir di ruang ini sangat mudah untuk membangun sesuatu yang sangat menarik secara teknis, sesuatu yang sangat menarik secara intelektual, tetapi bukan produk yang berguna bagi pengguna … Kami sangat banyak mengambil pendekatan produk untuk ini di mana kami ingin membangun sesuatu berguna, dan saya pikir kami sedang melakukan itu.”
Piston masih sangat banyak dalam fase pertumbuhan. Nantinya, tim berharap dapat mengatasi masalah Python dengan multithreading – sebuah teknik di mana satu set kode dibagi antara beberapa inti pemrosesan – meskipun Modzelewski mencatat bahwa ini tidak ada dalam peta jalan langsung bahasa tersebut.
“Saya pikir dalam jangka panjang, kami benar-benar ingin menjadi sesuatu di mana pertukarannya cukup mudah untuk diterima, bahwa banyak orang akan menggunakan kami. Ada banyak alat pengoptimalan Python khusus di luar sana yang biasanya tidak digunakan kebanyakan orang, ” dia berkata.
“Mimpi saya untuk proyek ini adalah bahwa itu hanya semacam saran standar: ‘Hei, sebaiknya Anda menggunakan Pyston.'”