Drama Rust di Linux Mengundang 'Ketegasan Linus'
Rust, bahasa pemrograman modern yang jauh lebih aman dalam pengelolaan memori dibandingkan C, pernah berada pada pendekatan yang mantap, tenang, dan bertahap ke dalam kernel Linux.
Pada tahun 2021, para leader pengembang kernel Linux terkesan dengan Rust tetapi memilih untuk "menunggu dan melihat" perkembangannya. Setelah Rust mendapatkan dukungan dan momentum, Linux Torvalds akhirnya menyetujui pull request yang menambahkan dukungan kode Rust di kernel Linux pada bulan Oktober 2022.
Namun, pada akhir tahun 2024, para penggemar Rust merasa frustasi karena lambatnya dan terhambatnya usaha mereka dalam menambahkan dukungan kode Rust di kernel Linux, hingga pemimpin proyek Rust for Linux mengundurkan diri dengan alasan "omong kosong nonteknis". Pada saat itu, Linus Torvalds memberi pernyataan yang menggambarkan bahwa para pengembang kernel yang ada sudah terbiasa dengan bahasa C dan tidak terlalu bersemangat untuk mempelajari bahasa baru. Walaupun demikian, perdebatan pada waktu itu masih tergolong perdebatan yang wajar.
Lalu, dalam dua bulan terakhir ini, salah satu bagian di Linux Kernel Mailing List kembali terjadi ketegangan tentang Rust. Saat ini, ketegangan tersebut mungkin sudah mulai mereda dengan sebagian besar pemimpin pengembangan kernel Linux berpendapat bahwa Rust dapat dan harus masuk ke dalam kernel, tetapi tidak ada seorangpun dipaksakan untuk menanganinya jika ada yang ingin terus mengelola kode bahasa C.
Percikan-percikan ego
Pada awal bulan ini, pemimpin proyek Asahi Linux, Hector Martin, mengundurkan diri sebagai maintainer kernel Linux sekaligus keluar dari proyek Asahi Linux. Dia memberikan alasan berkaitan dengan kelelahan dan hambatan yang didapatkan dalam mengimplementasikan Rust di kernel Linux.
Bagi Hector, Rust sangat penting dalam pembuatan driver perangkat yang efisien dan aman untuk chipset terbaru dari Apple. Tetapi, Christoph Hellwig sebagai maintainer API Direct Memory Access (DMA) menentang masuknya Rust ke dalam API DMA dengan alasan bahwa penggunaan kode lintas bahasa menjadikan proyeknya sulit untuk dikelola.
Linux pada awalnya mengkritik Hector yang mengungkapkan masalahnya ke media sosial dan tidak cukup toleran terhadap proses pengembangan kernel Linux.
Namun, kemudian Christoph posting pesan yang lebih panjang, menguraikan penentangannya terhadap binding Rust dan terus mengungkit penggunaan kode multi bahasa sebagai "kanker". "I'd like to understand what the goal of this Rust "experiment" is: If we want to fix existing issues with memory safety we need to do that for existing code and find ways to retrofit it," tulis Christoph.
Dinding pelindung
Tanggapan Linus menawarkan beberapa klarifikasi tentang binding Rust dalam kernel, dan juga tentang apa yang dapat dan tidak dapat dikontrol oleh pembuat kode C garis keras.
Maintainer seperti Christoph yang tidak ingin mengintegrasikan kode Rust dalam proyeknya tidak perlu melakukan hal tersebut. Namun, mereka tidak boleh mendikte bahasa atau gaya kode yang hanya menyentuh tetapi tidak mengubah kode yang ada di ruang lingkup kendali mereka.
Linus menyatakan bahwa maintainer boleh terlibat dalam Rust dan dapat mempengaruhi pembuatan binding Rust. Bagi maintainer yang memilih untuk tidak terlibat juga diberikan kebebasan untuk melakukannya tetapi tidak bisa mempengaruhi kode Rust yang dibangun pada antarmuka C mereka.
Put another way: the 'nobody is forced to deal with Rust' does not imply 'everybody is allowed to veto any Rust code'.
Linus Torvalds
Maintainer mungkin juga dapat menemukan jalan tengah, menyadari adanya binding Rust dan bekerja dengan para pengembang Rust, tetapi tidak terlibat secara aktif.