Rust ka Introduction
Rust ek systems programming language hai jo ek central idea ke around bani hai: garbage collector ke bina memory safety. Python ya JavaScript ki tarah memory ko runtime par track karne ke bajaye, Rust ka compiler aapke code ka memory usage compile time par check karta hai, ownership naam ke rules ke set ka use karke.
Rust code run hone se pehle hi ek native binary mein compile ho jaata hai — compiler (rustc) har type aur har ownership rule ko pehle hi check kar leta hai. Agar aapka code in mein se kisi ko bhi violate karta hai, to kuch bhi run nahi hota: aapko crash, memory leak, ya data race ke bajaye ek compile error milta hai.
Ownership kyun matter karta hai
- Koi garbage collector nahi, koi manual free() nahi — compile time par enforce hone wale ownership rules ka matlab hai ki memory automatically aur deterministically clean ho jaati hai, bina us runtime overhead ke jo ek garbage collector add karta hai
- Koi null pointer dereferences nahi — Rust mein null hota hi nahi hai; ek value jo absent ho sakti hai use Option<T> se represent kiya jaata hai, aur compiler aapko dono cases handle karne par majboor karta hai
- Koi data races nahi — borrow checker guarantee karta hai ki mutable data kabhi bhi do jagah se ek saath access nahi ho sakta, ek aisi problem jo zyadatar languages sirf runtime par pakadti hain, agar pakad bhi paayein
- C aur C++ ke barabar performance — in guarantees mein se koi bhi runtime par kuch cost nahi karta; yeh sab sirf ek baar, compile time par check kiye jaate hain
Ek jaldi sa preview
Yeh raha ek real Rust program, jo is page ke apne compiler par actually run hua hai — koi mockup nahi:
fn main() {
let message: &str = "Hello from Rust!";
println!("{}", message);
}Hello from Rust!
Bas itna hi — ek explicit type wala variable, println! se print kiya gaya. Agla lesson aapka pehla poora program run karta hai aur exactly samjhaata hai ki kya ho raha hai.
Practice Exercise
Ek variable version ko type i32 ke sath 5 par set karke declare karo, phir "Rust version:" ke baad version print karo, println!("Rust version: {}", version) ka use karke.