Kata Pengantar

Itu tidak selalu begitu jelas, tetapi bahasa pemrograman Rust pada dasarnya adalah tentang pemberdayanaan: apa pun jenis kode yang Anda tulis sekarang, Rust memberdayakan Anda untuk menjangkau lebih jauh, memprogram dengan percaya diri dalam berbagai domain yang lebih luas daripada yang Anda lakukan sebelumnya.

Ambil, misalnya, pekerjaan "tingkat sistem" yang berhubungan dengan low-level detail dari manajemen memori, representasi data, dan konkurensi tingkat rendah. Secara tradisional, bidang pemrograman ini dipandang sebagai rahasia, hanya dapat diakses oleh beberapa orang terpilih yang telah mengabdikan tahun-tahun yang diperlukan untuk belajar menghindari jebakannya yang terkenal. Dan bahkan mereka yang mempraktikkannya melakukannya dengan hati-hati, jangan sampai kode mereka terbuka untuk dieksploitasi, macet, atau rusak.

Rust meruntuhkan penghalang ini dengan menghilangkan perangkap lama dan menyediakan seperangkat alat yang ramah dan dipoles untuk membantu Anda di sepanjang jalan. Pemrogram yang perlu "mencelupkan" ke kontrol tingkat rendah dapat melakukannya dengan Rust, tanpa mengambil risiko crash atau lubang keamanan yang biasa, dan tanpa harus mempelajari poin-poin bagus dari rantai alat yang berubah-ubah. Lebih baik lagi, bahasa ini dirancang untuk memandu Anda secara alami menuju kode andal yang efisien dalam hal kecepatan dan penggunaan memori.

Pemrogram yang sudah bekerja dengan kode tingkat rendah dapat menggunakan Rust untuk meningkatkan ambisinya. Misalnya, memperkenalkan paralelisme di Rust adalah operasi yang relatif berisiko rendah: kompiler akan menangkap kesalahan klasik untuk Anda. Dan Anda dapat mengatasi pengoptimalan yang lebih agresif dalam kode Anda dengan keyakinan bahwa Anda tidak akan secara tidak sengaja menyebabkan kerusakan atau kerentanan.

Tetapi Rust tidak terbatas pada pemrograman sistem tingkat rendah. Ini cukup ekspresif dan ergonomis untuk membuat aplikasi CLI, server web, dan banyak jenis kode lainnya cukup menyenangkan untuk ditulis — Anda akan menemukan contoh sederhana dari keduanya nanti di buku ini. Bekerja dengan Rust memungkinkan Anda membangun keterampilan yang ditransfer dari satu domain ke domain lainnya; Anda dapat mempelajari Rust dengan menulis aplikasi web, lalu menerapkan keterampilan yang sama untuk menargetkan Raspberry Pi Anda.

Buku ini sepenuhnya merangkul potensi Rust untuk memberdayakan penggunanya. Ini adalah teks yang ramah dan mudah didekati yang dimaksudkan untuk membantu Anda meningkatkan tidak hanya pengetahuan Anda tentang Rust, tetapi juga jangkauan dan kepercayaan diri Anda sebagai seorang programmer pada umumnya. Jadi selami, bersiaplah untuk belajar—dan selamat datang di komunitas Rust!

— Nicholas Matsakis dan Aaron Turon