Mengapa bahasa Rust sedang naik daun

Anda mungkin belum pernah menulis apa pun di Rust, sumber terbuka, bahasa pemrograman tingkat sistem yang dibuat oleh Mozilla, tetapi kemungkinan besar Anda akan melakukannya. Pengembang menobatkan Rust sebagai bahasa "yang paling disukai" dalam survei pengembang Stack Overflow 2019, sementara peringkat bahasa tengah tahunan Redmonk membuat Rust berada dalam jarak yang sangat dekat dari 20 teratas (peringkat # 21).

Hal ini, meskipun pengguna Rust “menemukan kesulitan dan frustrasi dengan fitur bahasa yang sangat dipuji untuk keamanan dan ketepatan memori”.

Mengapa bahasa yang dikenal agak sulit dipelajari begitu disukai? Dalam percakapan dengan pengembang, tampaknya jawabannya adalah gagasan bahwa Rust adalah “pemrograman sistem dengan rel pengaman,” seperti yang dijelaskan oleh Oso CTO Sam Scott, dengan salah satu “rel pengaman” tersebut merupakan komunitas yang sangat ramah.

Pemrograman sistem dengan rel pengaman

Sebagian besar pengembang biasanya tidak melakukan perjalanan ke wilayah pemrograman sistem. Pengembang aplikasi, misalnya, cenderung tidak perlu mendekati perangkat keras yang mendasarinya. Mereka juga kemungkinan tidak perlu membangun platform tempat perangkat lunak lain akan berjalan, elemen definisi inti dari pemrograman sistem.

Bagi para pengembang yang bekerja dengan bahasa pemrograman tingkat rendah seperti C atau C ++, Rust adalah sebuah wahyu, sesuatu yang saya bahas pertama kali pada tahun 2015. Namun, beberapa tahun kemudian, Rust terus menjadi lebih baik.

Diminta untuk merinci nilai jual utama Rust, pengembang David Barsky menawarkan yang berikut:

  • Performant.  Rust mampu menggantikan C / C ++ di ruang yang biasanya berkembang. Misalnya: "Untuk layanan jaringan yang sensitif terhadap latensi, kurangnya pengumpulan sampah waktu proses Rust menyebabkan latensi ekor yang hampir tidak ada".
  • Andal.  “Sistem jenis dan pemeriksa peminjam — pengumpul sampah statis waktu kompilasi — mencegah seluruh kelas bug yang diterima sebagai 'normal' di Python, Java, dan C ++.”
  • Produktivitas pengembang.  “Cargo, alat pembuatan dan pengelola paket, adalah salah satu sistem pembangunan dan pengelola paket terbaik yang pernah saya gunakan.” Rust juga dilengkapi dengan dokumentasi built-in yang sangat baik, dan pengujian unit, integrasi, dan dokumentasi yang hebat dan terintegrasi.

Pengalaman Barsky sepertinya mirip dengan Scott. Berasal dari bahasa pemrograman tingkat tinggi (Java, Ruby on Rails), Scott mengatakan pengalamannya dengan C kurang menyenangkan: “C sangat buruk karena saya terus-menerus mengalami masalah memori, segfault, dll. Dan saya kurang lebih merasa seperti saya bertengkar dengan kode sepanjang waktu. "

Rust, sebaliknya, adalah "pemrograman sistem dengan rel pengaman". Scott menjelaskan:

Kemudian saya mencoba Rust (baru saja berubah menjadi 1.0), dan rasanya seperti pemrograman sistem dengan rel pengaman. Semua hal yang saya perlukan untuk melakukan pemrograman sistem tingkat rendah, tetapi dengan banyak bantuan untuk men-debug dan membuat kode aman - seperti pemeriksa peminjam dan kompiler, dan kemudian perkakas seperti linters ("clippy"). Itu telah menawarkan banyak aspek familiar dari pemrograman fungsional dan berorientasi objek, dan sepertinya cocok dengan model mental saya tentang bagaimana saya ingin membangun sistem.

Sebagai salah satu pendiri Oso, Scott tidak dapat menghindari pemrograman tingkat rendah. Oso, dengan misi untuk membuat keamanan infrastruktur back-end tidak terlihat oleh pengembang dan sederhana untuk operasi, ”membutuhkan kinerja yang ditawarkan oleh bahasa tingkat sistem. “Kami tidak dapat menggunakan bahasa pengumpulan sampah seperti Go, karena kinerjanya tidak akan cukup konsisten untuk apa yang kami lakukan, karena kami berada di jalur kritis lalu lintas pelanggan,” kata Scott. 

Semuanya terdengar bagus, sampai kita kembali ke masalah potensial dalam mencari bakat pengembang yang fasih dalam bahasa yang relatif baru. Namun, bakat yang dapat diakses mungkin merupakan fitur terbaik Rust dari semuanya.

Pemrogram Rust ingin

Komponen penting dalam mempelajari sesuatu yang baru adalah membuat orang-orang bersedia membantu transisi. Di sini Rust bersinar. Seperti yang dikatakan Barsky,

Komunitas Rust penuh dengan orang-orang yang bersemangat, baik hati, dan cerdas. Ini memiliki kode etik yang ditegakkan dengan kuat, yang berarti bahwa perilaku kasar atau melecehkan tidak akan ditoleransi. Secara anekdot, ini memiliki konsentrasi orang LGBTQA tertinggi yang pernah saya lihat di komunitas teknologi mana pun.

Komunitas ini adalah alasan utama yang, menurut Scott, developer bisa mendapatkan Rust dalam beberapa bulan. Rust “membutuhkan sedikit perubahan pola pikir,” katanya. "Anda perlu melakukan lebih banyak pekerjaan di depan dengan alasan tentang hal-hal seperti jenis dan masa hidup." Tapi begitu Anda sampai di sana "itu membayar dividen di telepon."

Tidak mengherankan jika begitu banyak developer menyukai Rust. Keuntungannya besar dan sisi negatifnya diminimalkan oleh komunitas Rust yang ramah dan inklusif.