Penyelenggara Git Patrick Steinhardt telah mengumumkan rancangan untuk memperkenalkan Rust ke dalam kod teras Git , dengan Git 3.0 ditetapkan untuk menjadikan Rust sebagai keperluan binaan mandatori. Cadangan ini telah mencetuskan perbincangan sengit dalam komuniti mengenai keserasian platform dan hala tuju masa depan salah satu alat pembangun yang paling penting di dunia.
Pengumuman ini datang sebagai belon ujian - satu cara untuk mengukur reaksi komuniti sebelum komited sepenuhnya kepada perubahan tersebut. Steinhardt , yang bekerja sebagai pengurus kejuruteraan di GitLab dan merupakan penyumbang kerap Git , telah memulakan dengan penukaran mudah subsistem varint Git kepada Rust sebagai bukti konsep.
Perubahan yang Dirancang untuk Git 3.0:
- Rust menjadi wajib untuk membina Git
- SHA-256 menjadi algoritma hash lalai
- Perubahan keserasian yang melanggar dijangkakan
- Garis masa belum dimuktamadkan
Kebimbangan Keserasian Platform Mendorong Perdebatan Besar
Perbincangan paling hangat berpusat di sekitar platform yang tidak dapat menyokong kompilasi Rust . Beberapa sistem proprietari, terutamanya platform NonStop IBM yang digunakan dalam perkhidmatan kewangan, bergantung pada kompiler C khusus vendor tanpa sokongan LLVM atau GCC . Ini mewujudkan cabaran yang ketara kerana Rust bergantung pada backend kompiler moden ini.
Ahli komuniti berpecah mengenai cara menangani batasan ini. Ada yang berpendapat bahawa platform lama harus menyesuaikan diri atau berisiko ditinggalkan, manakala yang lain bimbang tentang implikasi yang lebih luas terhadap aksesibiliti universal Git . Pergantungan sektor kewangan pada sistem ini menambah kerumitan kepada perdebatan, kerana infrastruktur pemprosesan kad kredit dan perbankan sering berjalan pada platform sedemikian.
Malang untuk platform tersebut? Serius, saya rasa mereka terpaksa hidup tanpa git jika mereka tidak bersedia untuk mengambil sokongan bagi rantaian alat tersebut.
Penyelesaian teknikal sedang diterokai, termasuk backend Rust eksperimen yang mengkompil kepada kod C dan alat terjemahan WebAssembly -ke-C. Walau bagaimanapun, penyelesaian sementara ini sebahagian besarnya masih tidak diuji untuk kegunaan produksi.
Peringkat Sokongan Platform Rust:
- Peringkat 1: Dijamin berfungsi ( x86-64 , ARM64 pada OS utama)
- Peringkat 2: Dijamin boleh dibina (banyak platform tambahan)
- Peringkat 3: Sokongan usaha terbaik (termasuk sasaran eksperimen seperti PlayStation , N64 )
- Tidak Disokong: Platform pengkompil proprietari ( NonStop , sesetengah sistem terbenam)
Kesan Pengalaman Pembangun dan Keluk Pembelajaran
Perubahan ini menimbulkan persoalan tentang aksesibiliti Git kepada penyumbang. Pada masa ini, Git menggunakan pelbagai bahasa termasuk C, Shell, Perl, dan Python , tetapi C kekal sebagai bahasa utama untuk fungsi teras. Menambah Rust sebagai komponen mandatori bermakna penyumbang masa depan akan memerlukan kebiasaan dengan kedua-dua bahasa.
Sesetengah pembangun menyatakan kebimbangan tentang peningkatan kerumitan dan masa binaan yang lebih lama. Yang lain berpendapat bahawa ciri keselamatan Rust dan perkakas moden akhirnya akan memberi manfaat kepada kebolehselenggaraan dan keselamatan jangka panjang projek.
Peralihan nampaknya direka untuk beransur-ansur, dengan cadangan semasa hanya mempengaruhi infrastruktur binaan berbanding memerlukan semua kod baharu ditulis dalam Rust dengan serta-merta.
Komposisi Bahasa Semasa Git:
- C: 50%
- Shell: 38%
- Perl: 4%
- TCL: 4%
- Python: 1%
- Lain-lain: 3%
Masa Strategik dan Konteks Industri
Langkah ini datang ketika Git bersiap untuk versi 3.0, yang juga akan menjadikan SHA-256 sebagai algoritma hash lalai. Masa ini menunjukkan penyelenggara Git melihat ini sebagai peluang untuk memodernkan keseluruhan rantaian alat sementara pemecahan keserasian sudah dijangka.
Keputusan ini mencerminkan trend industri yang lebih luas ke arah bahasa selamat memori, serupa dengan inisiatif dalam kernel Linux dan projek infrastruktur kritikal lain. Walau bagaimanapun, peranan Git sebagai perkakas pembangun penting menjadikan keserasian platform amat penting berbanding perisian yang lebih khusus.
Respons komuniti berkemungkinan akan mempengaruhi sama ada cadangan ini bergerak ke hadapan seperti yang dirancang atau memerlukan pengubahsuaian untuk menangani kebimbangan keserasian. Sebagai salah satu alat pembangun yang paling banyak digunakan secara global, pilihan bahasa Git mempunyai implikasi yang meluas untuk keseluruhan ekosistem pembangunan perisian.
Rujukan: [PATCH RFC 0/3] Introduce Rust and announce that it will become mandatorty