Scroll untuk baca artikel
#Viral

Python Sangat Lambat. Bisakah Julia Mengatasi Masalah Dua Bahasa?

23
×

Python Sangat Lambat. Bisakah Julia Mengatasi Masalah Dua Bahasa?

Share this article
python-sangat-lambat.-bisakah-julia-mengatasi-masalah-dua-bahasa?
Python Sangat Lambat. Bisakah Julia Mengatasi Masalah Dua Bahasa?

Sebagai sebuah genre, “kuliah penerimaan penghargaan” tidak lebih dari sekedar formalitas dan banalitas. Namun setidaknya ada satu pengecualian menarik terhadap aturan ini—ceramah yang disampaikan oleh para ilmuwan komputer terkemuka pada kesempatan mereka Penghargaan Turing.

Beberapa berbunyi seperti manifesto: John Backus’ “Bisakah Pemrograman Dibebaskan dari Gaya von Neumann?” (1977) mengilhami paradigma baru yang melahirkan bahasa fungsional seperti Haskell. Peringatan lainnya: Dalam bukunya “Refleksi tentang Mempercayai Kepercayaan” (1984), Ken Thompson mendemonstrasikan bahaya kompiler pintu belakang, yang kemungkinan besar mencegah banyak kerentanan keamanan. Edsger Dijkstra, dalam “Pemrogram yang Rendah Hati” (1972), mendesak orang-orang sejenisnya untuk mewaspadai kepintaran dan mengakui “keterbatasan intrinsik pikiran manusia.”

Example 300x600

Untuk tujuan kita, pertimbangkan ceramah Kenneth Iverson tahun 1979, “Notasi sebagai Alat Pemikiran.” Di dalamnya, ia mendemonstrasikan bahwa notasi matematika bukan sekadar singkatan yang mudah digunakan—CO2 untuk karbon dioksida, 3.888 untuk MMMDCCCLXXXVIII—hal ini juga membuat wawasan baru mudah ditemukan. Seperti yang pernah dikatakan ahli matematika Alfred North Whitehead: “Dengan membebaskan otak dari semua pekerjaan yang tidak diperlukan, notasi yang baik akan membebaskan otak untuk berkonsentrasi pada soal-soal yang lebih maju.”

Iverson memenangkan Penghargaan Turing untuk APL, bahasa pemrograman tampak menyeramkan yang memulai kehidupannya sebagai sistem notasi untuk menjembatani antar bahasa. Pada masa awal komputasi ilmiah, pemrogram harus berpikir dalam satu bahasa (notasi matematika) tetapi kemudian memprogram dalam bahasa lain (misalnya Fortran). APL dirancang agar operasi yang berat dapat ditulis sekompak persamaan—baris kode dipecah menjadi beberapa simbol seperti + atau ×. APL ternyata lebih berpengaruh daripada yang diadopsi, tapi tidak masalah: APL menunjukkan bahwa dua bahasa bisa digabungkan menjadi satu.

Tahun 2026 menandai 60 tahun sejak diperkenalkannya APL, dan masalah dua bahasa jenis baru mengganggu bidang komputasi ilmiah. Bahasa pemrograman yang berkuasa adalah ular pitontetapi ia tidak memerintah sebagai penakluk yang berotot, melainkan sebagai raja yang mengelak. Python, dengan kata lain, sangat lambat—sebuah kelemahan yang bahkan para pembelanya yang paling gigih pun tidak akan menyangkalnya.

Oleh karena itu masalah dua bahasa: Para peneliti membuat prototipe dengan Python yang lambat dan ramah, tetapi, untuk bagian yang kinerjanya penting, menulis ulang dalam bahasa yang lebih cepat dan kurang ramah seperti C++ atau Rust. Keterbatasan ini tidak dapat diatasi dengan mengerahkan satu peleton agen pengkodean AI, karena tidak peduli seberapa banyak Anda mengoptimalkan bahasa yang lambat, bahasa yang lebih cepat akan mengunggulinya.

Pertukaran biner ini terjadi di domain lain. Bisa dibilang konstruksi, misalnya, mempunyai masalah dua material. Kayu adalah bahan yang lentur untuk membuat prototipe suatu struktur—bahkan seorang amatir pun dapat menggergaji dan memaku sebuah bangunan fungsional. Tapi tidak ada gunanya mendirikan gedung pencakar langit. Hal ini menimbulkan pertanyaan yang jelas: Bagaimana jika ada material yang dapat dimanipulasi seperti kayu namun sekuat baja? Bagaimana jika ada bahasa yang ergonomis seperti Python tetapi secepat C?

Pada tahun 2012, empat ilmuwan komputer dengan bonafid matematika yang kuat bersatu untuk mengatasi masalah dua bahasa modern. Dalam esai singkat berjudul “Mengapa Kami Menciptakan Julia,” mereka mengatakan bahwa mereka mengambil proyek ini “karena kami serakah.” Teks mereka dimulai seperti hari valentine untuk bahasa pemrograman:

Kami adalah pengguna kuat Matlab. Beberapa dari kita adalah peretas Lisp. Ada yang Pythonista, ada yang Rubyist, ada pula yang hacker Perl… Kami telah menghasilkan lebih banyak plot R daripada yang seharusnya dilakukan oleh orang waras mana pun. C adalah bahasa pemrograman pulau terpencil kami.

Namun setiap bahasa tersebut, tulis mereka, “sempurna untuk beberapa aspek pekerjaan dan buruk untuk aspek lainnya.” Meskipun mereka serakah, mereka menginginkan “sebuah bahasa yang open source, dengan lisensi liberal… Sesuatu yang sangat mudah dipelajari, namun membuat para hacker paling serius senang.” Julia akan menjadi satu-satunya bahasa yang menyatukan mereka semua.

Saya pertama kali bertemu Julia secara kebetulan pada tahun 2017—setahun sebelum sintaksisnya stabil—ketika saya menghadiri ceramah Sebastian Seung, seorang ahli saraf yang menggunakannya untuk memetakan penghubung, peta lengkap jalur saraf di otak. Kesan pertama saya adalah nama yang menyenangkan dan menawan, yang menentang nomenklatur kikuk yang umum di bidang ini: yang tidak elegan (PL/I), yang jelek (Erlang), yang secara tipografi kaku (C++), dan yang secara harafiah patologis (MUMPS—yang, jika Anda percaya, merupakan tulang punggung sistem layanan kesehatan Amerika).

Saya juga dapat melihat bahwa pemikiran serius telah dicurahkan untuk mendesain Julia. Setelah mempelajari banyak kendala yang dialami oleh bahasa-bahasa lain, para pencipta menyusun ide-ide bagus dari berbagai bahasa—sebuah bukti bahwa observasi yang cermat harus dilakukan sebelum memulai usaha yang bagus seperti menciptakan usaha baru.

Pada tahun 2026, Julia berhasil menarik komunitas orang dewasa yang sadar—hal yang tidak bisa dikatakan di banyak komunitas bahasa. Para kutu buku bahasa adalah kelompok yang emosional dan penuh keributan (banyak persahabatan yang putus karena perbedaan pendapat mengenai sintaksis), namun komunitas Julia belum pernah terguncang oleh drama besar apa pun. Hal ini lebih bersifat akademis dan lebih menarik perhatian para ilmuwan dibandingkan peretas. Namun tidak seperti bahasa lain yang juga digunakan oleh akademisi, Julia tidak terlalu berfantasi (seperti Haskell), juga tidak menarik penggemar setia (seperti Haskell) atau terlibat dalam permainan intelektual (seperti, katakanlah, Haskell). Di Julia-Con tahunan, Anda akan mendengar kisah-kisah kemenangan menulis ulang kode MATLAB di Julia dan mendapatkan percepatan 60X. Berdasarkan beberapa tolok ukur, kode Julia dapat berjalan 10X hingga 1.000X lebih cepat dibandingkan Python.

Tapi Anda tidak akan menemukan Julia di Stack Overflow’s grafik survei tahunan dari bahasa yang paling populer. Pada akhirnya, itu tidak menggantikan Python—bahkan tidak mendekati. Mengapa tidak? Apa yang salah?

Pertama, sama seperti bahasa manusia yang bergantung pada kumpulan teks yang ditulis di dalamnya, bahasa pemrograman juga akan berguna jika ekosistem dan peralatannya digunakan. Python terlalu kuat untuk dikeluarkan. Kedua, Julia belum diadopsi oleh Big Tech. Di masa lalu, ketika sebuah bahasa kecil diambil dari ketidakjelasan dan menjadi terkenal, hal itu terjadi berkat dukungan perusahaan seperti ini: Objective-C oleh Apple untuk pengembangan iOS, Kotlin oleh Google untuk pengembangan Android.

Tapi yang ketiga, dan inilah jawaban saya: Tidak ada yang salah. Julia adalah bahasa khusus, dan dari segi fungsinya, bahasa ini cukup berhasil. Kemungkinan besar, Julia akan terus hidup, kecil tapi tercinta. Ini digunakan untuk pekerjaan besar-besaran di institusi seperti ASML, CERNDan NASA dan dalam usaha serius seperti penemuan obat Dan pembelajaran mesin tingkat lanjut.

Bahkan jika Julia suatu hari nanti akan menggantikan Python, saya tidak yakin itu bisa menyelesaikan masalah dua bahasa—atau bahasa apa pun bisa. Meskipun permasalahan ini umumnya dirujuk dalam komputasi ilmiah, permasalahan tersebut ada di setiap domain perangkat lunak. Dalam game, mesin ditulis dalam C++ tetapi ditulis dalam Lua. Di backend server, terdapat banyak bahasa yang lebih mudah—Python, Ruby, JavaScript—tetapi ketika kinerja nyata diperlukan, pekerjaan dilakukan di Go atau Rust. Sebaliknya, upaya berani untuk menggunakan Go atau Rust untuk pengembangan frontend telah gagal total.

Tapi siapakah saya yang bisa mengatakan kita akan terjebak di sini selamanya? Mungkin suatu hari seseorang yang berwawasan luas seperti Iverson akan menemukan cara untuk menjembatani kesenjangan tersebut untuk selamanya. Jika itu terjadi, pastikan untuk menyimak ceramah Turing mereka.


Ini adalah angsuran kedua dari tiga bagian Dapat Dibaca Mesin seri tentang bahasa yang mendukung AI.