Menulis Ulang Rust
- Bahasa pemrograman Rust terasa seperti produk generasi pertama
- Daya tarik awal Rust: tipe aljabar, keamanan memori, tanpa penurunan performa, manajer paket modern
- Setelah digunakan selama 4 tahun, Rust tidak selalu sempurna
- Perkembangan bahasanya melambat secara signifikan
- Banyak fitur tidak stabil yang tidak masuk ke Rust stabil
Bahasa yang fantastis
- Ingin melakukan fork pada compiler Rust dan membuat edisi baru bernama "seph"
- Dapat menambahkan fitur baru sambil mempertahankan fitur Rust yang sudah ada
Trait fungsi (efek)
- Rust mendefinisikan trait pada struct, tetapi juga perlu mendefinisikan trait pada fungsi
- Dapat merepresentasikan berbagai karakteristik fungsi
- apakah fungsi menyebabkan panic
- apakah memiliki ukuran stack tetap
- apakah fungsi berjalan sampai selesai atau menunggu di tengah jalan
- apakah fungsi bersifat murni
- apakah fungsi menjalankan kode unsafe
- apakah fungsi dijamin terminasi
Fitur waktu kompilasi
- Banyak proyek Rust menggunakan banyak crate pihak ketiga
- Crate-crate ini meningkatkan risiko rantai pasok
- Mengusulkan fitur yang mewajibkan izin eksplisit untuk memanggil fungsi yang sensitif terhadap keamanan
- Untuk memanggil fitur seperti
fs_write, harus ada izin eksplisit
Pin, Move, dan peminjaman struct
Pin adalah hack kompleks untuk mengatasi masalah borrow checker di Rust
- Menggunakan marker trait
Move sebagai pengganti Pin terasa lebih masuk akal
- Mengusulkan penambahan sintaks untuk menandai field struct sebagai dalam keadaan dipinjam
- Mengusulkan pengenalan marker trait
Move dan trait Mover
Waktu kompilasi
- Mengadopsi fitur
comptime dari Zig untuk menggantikan bahasa macro Rust
- Menambahkan interpreter kecil yang dapat menjalankan kode pada waktu kompilasi
- Menggunakan Rust itu sendiri alih-alih bahasa macro Rust
Perbaikan kecil
- Memperbaiki
impl<T: Copy> for Range<T>
- Memperbaiki
derive dengan associated type
- Mendukung logical AND dalam ekspresi
if-let
- Meningkatkan kegunaan raw pointer
- Menambahkan argumen
Allocator ke semua tipe koleksi bawaan
Pemikiran penutup
- Fitur async juga perlu diperbaiki, tetapi memerlukan posting terpisah
- Sebagian besar perubahan tidak kompatibel dengan Rust yang ada saat ini
- Mungkin diperlukan edisi Rust yang baru
- Sedang mempertimbangkan untuk langsung melakukan fork pada compiler tanpa lelah dengan proses RFC di GitHub
Ringkasan GN⁺
- Rust tidak sempurna meskipun memiliki daya tarik awal yang kuat
- Perkembangan bahasa melambat dan banyak fitur tidak stabil tidak masuk ke Rust stabil
- Ada berbagai usulan seperti trait fungsi, fitur waktu kompilasi, serta perbaikan Pin dan Move
- Usulan-usulan ini dapat sangat meningkatkan kegunaan Rust
- Bahasa lain dengan fitur serupa adalah Zig
1 komentar
Komentar Hacker News
Pendapat tentang proses Rust RFC
Masalah dependensi Rust
Status Rust saat ini
Pendapat tentang penulisan ulang Rust
Keluhan tentang proses pengambilan keputusan Rust
Komentar Josh Triplett
Pendapat tentang kompleksitas Rust
Pendapat tentang kecepatan Rust
Pendapat tentang peningkatan Mutex
Pendapat tentang kecepatan pengembangan fitur Rust
Pendapat tentang desain fitur Rust
Masalah borrow checker Rust
Fitur compile-time Rust
Fitur tidak stabil Rust
Pendapat tentang kecepatan perkembangan Rust