Rust (bahasa pemrograman)
Rust adalah sebuah bahasa pemrograman sistem[12] yang pengembangannya didukung oleh penelitian dari Mozilla.[13] Bahasa ini dirancang agar menjadi pemrograman yang "aman, konkuren (bekerja bersamaan) dan praktis".[14] Bahasa ini mendukung paradigma pemrograman fungsional dan prosedural-imperatif. Sintaksis bahasa Rust serupa dengan bahasa C++ namun dirancang dengan keamanan memori yang lebih baik sembari tetap menjaga performa kerja.
Rust | |
---|---|
Paradigma | Bahasa pemrograman berparadigma jamak, Terkompilasi, Konkuren, Fungsional, Imperatif, Terstruktur, dan Generik |
Dirancang oleh | Graydon Hoare |
Pengembang | Rust Project Developers |
Rilis perdana | 2010 |
Rilis stabil | 1.83.0[1]
/ November 28, 2024 |
Tipe sistem | Statis, Kuat, Terinferensi, Nominal, dan Linear. |
Implementasi dari | Rust |
Platform | Lintas platform[2][note 1] |
Sistem operasi | Linux, macOS, Windows, FreeBSD, Android, iOS (sebagian)[3] |
Lisensi | Lisensi Apache 2.0 dan MIT[4] |
Ekstensi nama berkas | .rs , .rlib |
Situs web | www |
Repositori | www |
Terpengaruh oleh | |
Alef,[5] C#,[5] C++,[5] Cyclone,[5][6] Erlang,[5] Haskell,[5] Hermes,[5] Limbo,[5] Newsqueak,[5] NIL,[5] OCaml,[5] Ruby,[5] Scheme,[5] Standard ML,[5] Swift[5][7] | |
Mempengaruhi | |
Sunting kotak info • L • B |
Bahasa Rust ini tergolong pada peranti lunak sumber terbuka. Desainnya merupakan perbaikan bedasarkan pengalaman-pengalaman yang dialami ketika mengembangkan Servo, sebuah perangkat layout untuk peramban web dan kompilator Rust.[15]
Kebanyakan commit kode program yang masuk pada proyek Rust saat ini berasal dari kontribusi anggota komunitas.[16] Bahasa Rust mendapatkan posisi pertama dengan predikat sebagai "Bahasa pemrograman paling disukai" pada survei pengembang di Stack Oveflow tahun 2016 dan 2017.[17][18]
Sejarah
suntingRust adalah bahasa pemrograman yang diciptakan oleh Graydon Hoare sebagai proyek pribadi pada tahun 2006 saat ia bekerja di Mozilla. Bahasa ini diumumkan kepada publik pada tahun 2010, dan versi stabil pertamanya, Rust 1.0, dirilis pada tahun 2015.
Pada awal peluncurannya, Rust menghadapi beberapa kritik, yang merupakan hal yang umum dalam dunia pemrograman. Kritik tersebut terutama berfokus pada kompleksitas bahasa ini, kurva pembelajaran yang curam, verbosity (adanya banyak kode boilerplate), dan kurangnya kematangan serta ekosistem yang masih terbatas.
Sejak saat itu, Rust telah mengalami banyak perbaikan signifikan. Komunitas pengguna dan pengembang Rust telah berkembang pesat, dan banyak kritik awal mengenai bahasa ini telah diatasi. Rust kini dikenal sebagai bahasa pemrograman yang lebih matang dan memiliki ekosistem yang lebih luas.[19]
Contoh kode
suntingHello World
suntingBerikut ini adalah contoh baris kode sederhana untuk menampilkan Hello World
fn main() {
println!("Hello World");
}
Fungsi Faktorial
suntingRekursif
suntingfn factorial(i: u64) -> u64 {
match i {
0 => 1,
n => n * factorial(n-1)
}
}
Iteratif
suntingfn factorial(i: u64) -> u64 {
let mut acc = 1;
for num in 2..=i {
acc *= num;
}
acc
}
Lihat pula
sunting- Redox (sistem operasi), Sistem Operasi menggunakan bahasa Rust,
- Rocket (web framework), kerangka kerja pembangun aplikasi web menggunakan bahasa Rust.
- Carbon (bahasa pemrograman)
- Quantum (Mozilla), proyek yang dikembangkan oleh Mozilla untuk menggantikan Gecko sebagai mesin utama peramban Firefox.
Catatan
suntingRujukan
sunting- ^ "Announcing Rust 1.83.0" (dalam bahasa bahasa Inggris). 28 November 2024. Diakses tanggal 28 November 2024.
- ^ a b Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaCrossPlatform
- ^ "Rust on iOS". GitHub. 2015-01-09. Diarsipkan dari versi asli tanggal 2014-07-23. Diakses tanggal 2017-06-22.
- ^ "Copyright". Rust compiler source repository. Diakses tanggal 2015-11-09.
- ^ a b c d e f g h i j k l m n o "The Rust Reference: Appendix: Influences". Diakses tanggal July 14, 2017.
Rust is not a particularly original language, with design elements coming from a wide range of sources. Some of these are listed below (including elements that have since been removed): SML, OCaml [...] C++ [...] ML Kit, Cyclone [...] Haskell [...] Newsqueak, Alef, Limbo [...] Erlang [...] Swift [...] Scheme [...] C# [...] Ruby [...] NIL, Hermes
- ^ "Note Research: Type System". 2015-02-01. Diakses tanggal 2015-03-25.
Papers that have had more or less influence on Rust, or which one might want to consult for inspiration or to understand Rust's background. [...] Region based memory management in Cyclone [...] Safe memory management in Cyclone
- ^ "RFC for 'if let' expression". Diakses tanggal December 4, 2014.
- ^ "Uniqueness Types". Idris 1.3.3 documentation. Diakses tanggal 2022-07-14.
They are inspired by ... ownership types and borrowed pointers in the Rust programming language.
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaJaloyan
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaLattner
- ^ Kesalahan pengutipan: Tag
<ref>
tidak sah; tidak ditemukan teks untuk ref bernamaProject Verona
- ^ "Rust is a systems programming language". Rust-lang.org. Diakses tanggal 2017-07-17.
- ^ Noel (2010-07-08). "The Rust Language". Lambda the Ultimate. Diakses tanggal 2010-10-30.
- ^ "FAQ - The Rust Project". Rust-lang.org. Diarsipkan dari versi asli tanggal 2016-02-23. Diakses tanggal 2 March 2016.
- ^ Peter Bright (2013-04-03). "Samsung teams up with Mozilla to build browser engine for multicore machines". Arstechnica.com. Diakses tanggal 2013-04-04.
- ^ "Contributors to rust-lang/rust · GitHub". Github.com. Diakses tanggal 2016-11-03.
- ^ "Stack Overflow Developer Survey 2016 Results". Stack Overflow. Diakses tanggal 2017-03-22.
- ^ "Stack Overflow Developer Survey 2017". Stack Overflow. Diakses tanggal 2017-03-22.
- ^ "Data With Rust". Data With Rust (dalam bahasa Inggris). 2023-01-21. Diakses tanggal 2024-05-21.
Pranala luar
sunting- Situs web resmi
- Dokumentasi Rust
- Rust by Example – Contoh program kecil di Rust
- Blog Rust
- Belajar Rust
- Forum Rust
- Portal komunitas Rust
- Milis Rust-dev
- Komunitas Rust di Reddit
- Komunitas Rust di Discord
- Repositori Rust di GitHub
- Repositori rust-rosetta di GitHub – Implementasi dari algoritme-algoritme umum dan penyelesaiannya
- Rust diperbandingkan dengan bahasa-bahasa pemrograman lain – Perbandingan interaktif