Rust Ka Taaruf
Rust ek systems programming language hai jo ek central idea ke gird bani hai: garbage collector ke baghair 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 istemal kar ke.
Rust code chalne 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 nahi chalta: 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 ke memory khud ba khud aur deterministically clean ho jaati hai, us runtime overhead ke baghair 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 ke mutable data kabhi bhi do jagah se ek saath access nahi ho sakta, ek aisi problem jo zyadatar languages sirf runtime par pakarti hain, agar pakar bhi paayein
- C aur C++ ke barabar performance — in guarantees mein se koi bhi runtime par kuch cost nahi karta; yeh sab sirf ek martaba, compile time par check kiye jaate hain
Ek jaldi si jhalak
Yeh raha ek real Rust program, jo is page ke apne compiler par waqai chala 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 chalata hai aur theek se samjhaata hai ke kya ho raha hai.
Practice Exercise
Ek variable version ko type i32 ke sath 5 par set kar ke declare karein, phir "Rust version:" ke baad version print karein, println!("Rust version: {}", version) ka istemal kar ke.