نیما حبیب خدا
نیما حبیب خدا
خواندن ۴ دقیقه·۶ سال پیش

شروع برنامه نویسی با Rust - لذت همراه با قدرت

در مورد زبان های برنامه نویسی زیادی میشه صحبت کرد .

از c++ گرفته تا جاوا ، یا زبان های interpreted مثل php و جاوا اسکریپت ( که پلتفورم node.js رو میشه معروفترینش دونست ) تا زبان های مولتی پارادایم مثل Rust .

منظور از مولتی پارادایم چیه؟

زبان های برنامه نویسی در ذات خودشون ، برای حل یک مسئله نوشته میشن و برای حل این مسائل پارادایم خاصی رو رعایت میکنن . مثلا در جاوا ، بهترین پارادیم به این شکل بود که با استفاده از OOP ، مسائل حل بشن و نتیجه مطلوبتری هم میگیرن . یا در Haskell نظر بر این بود که حتما به شکل Functional باشه تا نتیجه بهتری بگیرن .

بعضی از زبان ها متناسب به نیازشون ، میتونن هم OOP باشن هم functional یا هر پارادایم دیگه . به این مدل زبان ها میگن multi paradigm . زبان Rust هم یکی از قوی ترین زبان های مولتی پارادایم در حال حاظر است .

خوب بریم سر نصب کردن و شروع برنامه نویسی .

اول از همه ، محیطی که من داخلش کد میزنم ، اوبونتو 18.04 . اگر موردی توی روند کار برای شما پیش اومد حتما مطرح کنین . چون ممکنه روی سیستم من دیده نشده به علت سیستم عامل یا کانفیگ هایی که دارم .

خوب برای نصب و شروع کد نویسی ، مثل همیشه از سایت مرجع کمک میگیریم .

Rust یک فایل باینری برای نصب داره که اول از همه باید اون رو دانلود کنیم و نصب رو انجام بدیم .

به دلیل اینکه سیستم عامل ها زیادن ، یک فایل bash نوشته شده و با دستور ساده میشه نصب رو انجام داد بدون اینکه بخوایم خودمون دانلود کنیم و بریم بیبینم معماری سیستم چیه و بر اساس اون معماری یک سری کارا کنیم . پس کارمون راحته . ترمینال رو باز کنین و دستور زیر رو بزنین .

curl https://sh.rustup.rs -sSf | sh

دستور بالا یک فایل رو دانلود میکنه ( همون فایل bash script ) و بعد از پایپ ، روی فایل دستور sh رو میزنه و shell رو اجرا میکنه تا نصب انجام بشه .

بعد از اینکه عملیات نصب تموم بشه با دستور rustc --version میتونین چک کنین که با موفقیت نصب شده یا نه .

اگر zsh دارید باید حتما ~/.cargo/bin رو به PATH داخل zshrc اضافه کنین .

خوب این فقط نصب بود . اما تازه شروع داستانه .

Rust برای اینکه کار رو خیلی راحت کنه یک مدیریت پکیج یا همون package management به اسم cargo نوشته .

کارگو خیلی کارا رو برای ما انجام میده . از نصب پکیج ها تا ایجاد یک پروژه bootstrap خوب و جامع . شبیه به npm داخل node.js اما با امکانات خیلی زیاد و قدرت خیلی بیشتر در نصب و تنظیم پکیج ها .

خوب حالا شروع میکنیم یکک پروژه hello world میسازیم تا ببینیم نحوه کار چجوریه .

میریم به مسیری که دوست داریم و اونجا دستور زیر رو میزنیم .

cargo new helloWorld

همونطور که دیدید من camelCase نوشتم . کارگو این مورد رو تشخیص میده و helloWorld رو به hello_world تغییر میده.

حالا وارد hello_world میشیم .

یک ساختار میبینیم به شکل زیر :

.

├── Cargo.toml

└── src

└── main.rs


خوب اول از Cargo.toml شروع میکنیم .

این فایل همون شناسنامه پروژه ما میشه . مثل requirements.text در پایتون یا package.json نود یا composer.json پی اچ پی . اما کمی تفاوت داره .

شما داخل بلوک dependencies مثل همه زبان هایی که یک پکیج منیجر دارن ، میتونین پکیج هایی که نیاز دارید بنویسید و مدیریت کنین .

داخل کارگو هم به همین شکله اما با تغییراتی اندک که در مقاله های دیگه حتما توضیح میدم . ( الان وقتش نیست ) . فقط همینقدر بدونیم که چیزایی که میبینیم به علت جدید بودن خیلی جالب و هیجان انگیزن .

پوشه src اصلیترین پوشه برای ما میشه . چون اینجا قراره کد بزنیم .

فایل main.rs رو که باز کنین میبنین یک hello world نوشته شده .

حالا اجرا کردن مهمه .

دستور زیر رو وارد کنین :

cargo build

حالا بعد از اتمام این قسمت میبینیم که ساختار پوشه تغییر کرد .

یک پوشه به اسم target ایجاد شده که داخل اون پوشه ، پوشه debug هست و داخل این پوشه ، فایل hello_world بدون پسوند . ( یا exe برای ویندوزی ها ) . خوب این یک فایل باینری اجراییه . میتونین ران کنین .

./target/debug/hello_world

میبینید که hello world چاپ میشه . در واقع کد داخل main.rs اجرا شد .

این شروعه . اما شاید یک پله هم نرفتیم بالا .

Rust زبان خیلی قوی و کاملیه . برای اینکه بخواین خوب یاد بگیرید باید واقعا عمیق مطالعه کنین .

به این منظور چندین کتاب رایگان نوشته شده که کامل و جامع توضیح داده . من لینکشون رو میزارم و هر سوالی باشه در حد توانم پاسخگو هستم .

https://doc.rust-lang.org/cargo/getting-started/
https://doc.rust-lang.org/stable/rust-by-example/
https://doc.rust-lang.org/stable/book/


rust programming languageزبان برنامه نویسی راستزبان برنامه نویسی rust
یه برنامه نویس معمولی لینوکس کار
شاید از این پست‌ها خوشتان بیاید