منبع برای یاد گیری زبان راست


#1

سلام دوستان کسی منبع فارسی برای یاد گیری راست میشناسه معرفی کنه


#2

به نظرم قبل اینکه مستقیم برید سراغ این زبان اگر روی زبان low level تر مثل c کار نکردید حتما یه پیش ذهنیتی از مدیریت حافظه تو این زبان داشته باشید تا بتونید مفاهیم مدیریت حافظه تو زبان rust رو بهتر درک کنید چون این زبان یکی از اهداف بزرگش در راستای بالا بردن امنیت و مدیریت حافظه بوده منابع آموزشی زیادی به زبان انگلیسی داره و داکیومنت خودش خیلی خوبه

https://doc.rust-lang.org/book/second-edition/

کتب آموزشی لاتین هم داره

Beginning Rust: From Novice to Professional
Rust Standard Library Cookbook: Over 75 recipes to leverage the power of Rust
Rust Essentials
Network Programming with Rust
Rust Cookbook
Learning Rust: A comprehensive guide to writing Rust applications
و…

در youtube هم آموزش های زیادی ازش هست کاربردی در کانال زیر


#3

هنوز کتاب فارسی من ندیدم، اما بهترین مرجع یادگیری راست rust book هست. البته من یک کتاب دیگه هم خودنم به نام programming rust که اونم خیلی عالیه اما ای کاش نسخه فارسی هم وجود داشت.
خبر خوب اینه که mozilla در حال جذب داوطلب برای ترجمه rust book هست اما کی نوبت فارسی بشه یا اصلا کی زبان دومی اضافه بشه دیگه باید دید.
با این حال اگر سوالی در این زمینه داشتی یا اگر شروع به خوندن کردی و چیزی سخت بنظر اومد حتما توی سایت بپرس چون بدون شک نتیجه می گیری.


#4

من با تم Ayu مطالعه میکنم که چشمم کمتر خسته بشه


#5

خیلی با اینکه بهتره اول c یاد گرفت موافق نیستم هرچند یادگیری دو‌تا زبان بهتر از یکیه‌‌ پس خیلی هم خوبه که c رو‌یاد گرفت‌ (خودمم نفهمیدم موافقم یا مخالف):hugs:.
در مورد امنیت حافظه حق با شماست اما این مورد در بیشتر زبانهای برنامه نویسی وجود داره، تمرکز راست روی طراحی خوب، امنیت حافظه و thread safty بدون از دست دادن بازدهی و همچنین داشتن کمپالریه که خطاهای زیادی از جمله حافظه های نشت کرده یا بدون استفاده رو در زمان کمپایل بگیره و دیگه نیازی به GC نداشته باشه‌ اما قدرت دسترسی به حافظه رو هم از توسعه دهنده نگیره، البته راست یک زمانی وقتی در مراحل آزمایشی بود GC هم داشت ولی الان دیگه نداره، یا جالبه بدونید که اصلا با OCaml نوشته شده بود اما اون روزگار سپری شده و راست خیلی زیاد در production استفاده میشه.

یک مورد کوچک دیگه هم هست که امیدوارم پوزش منو ببخشید، میخواستم بگم که C یک زبان high level هست با امکان دسترسی به low level. زبان سطح بالا یا HLL تعریف مشخصی داره که C در اون تعریف میگنجه برای همین C یک زبان High Level هست😈

image


#6

وقتی کسی مباحث پایه ای مدیریت حافظه رو ندونه به طبع اون مباحث پیشرفتش و توسعه یافتش رو هم خوب درک نخواهد کرد مثلا در نظر داشته باشید کسی با زبانی که مدیریت حافظش داینامیکه مثل پایتون کار کرده باشه چه ذهنیتی از مدیریت حافظه و مباحثش می تونه داشته باشه؟ (شخصا این ایراد رو تو خیلی از برنامه نویسا دیدم ) و شخصا اعتقادم بر اینه که برنامه نویسی رو باید با زبان c شروع کرد چون خیلی از مباحث پایه ای رو باعث می شه برنامه نویس درک کنه و همین قضیه در زبان سی خیلی مفاهیم رو یاد میده هر چند کسی نخواد با این زبان کار کنه اما یاد گرفتنش خیلی مفید خواهد بود
در مورد اینکه زبان c رو شما high level میدونید این بستگی داره که شما با چه زبانی مقایسه کنید بله در مقابل اسمبلی سطح بالاست ولی این فقط یدونه زبان هست در صورتی که ما جامعیت خیلی بالایی از زبان های دیگه داریم که هم پایه پیاده سازی خیلی از این زبان ها c بود از جمله rust و هم سطح پایین به حساب میاد در مقابل همه اونا بر همین خاطر در ویکی پدیا هم ازش به عنوان زبان میانی یاد کردن بنابراین مقایسه یه زبان از لحاظ سطح نسبت به زبان های دیگه آزموده میشه و اینجا هم چون منظور زبان rust هست بنده به این موضوع اشاره کردم چون نسبت به این زبان ها low level هست


#7

مفاهیم حافظه رو در rust هم میشه یاد گرفت اما خب همونطور که عرض کردم دونستن c هم بهتر کمک‌میکنه.
در مورد دوم نه من از مقایسه حرف نزدم، اصلا با چیزی مقایسه نکردم، دیدم که بعضیا در مقایسه c با روبی یا پایتون گفتند که… اما اصلا high level بودن c ربطی به نظر من یا یک عده دیگه که توی stack پست میزارن نداره. اینکه شما میگید rust یک زبان سطح پایین هست خب باید بگم که درست نیست و‌حدس میزنم در این‌مورد بیشتر نیاز به تحقیق دارید. اگر منظور شما دسترسی به سطح پایین هست بله درسته اما اگر منظورتون LLL باشه باید بگم متاسفانه یا خوشبختانه اینطور نیست


#8

راستش من دیگه اینجا بحث LLL vs HLL رو ادامه نمیدم چون این تاپیک مربوط به منابع راست بود، اگر دوست دارید پیشنهاد میکنم تاپیک جدید باز کنید


#9

شما این جمله بنده رو یه بار دیگه بخونید فکر کنم اصلا مطلبی که یه نفر می نویسه رو درست نمی خونید کجای این بحث من نوشتم rust سطح پایینه؟ بنده c رو گفتم که پایه پیاده سازی خیلی زبان هاست

در مورد اینکه زبان c رو شما high level میدونید این بستگی داره که شما با چه زبانی مقایسه کنید بله در مقابل اسمبلی سطح بالاست ولی این فقط یدونه زبان هست در صورتی که ما جامعیت خیلی بالایی از زبان های دیگه داریم که هم پایه پیاده سازی خیلی از این زبان ها c بود از جمله rust و هم سطح پایین به حساب میاد در مقابل همه اونا

بحث رو ادامه ندیم بهتره چون وقتی کسی پیامی می ده و درست نمی خونیم و برداشت اشتباه داریم این باعث میشه بحث ادامه پیدا کنه و منحرف بشه


#10

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

در مورد راست درسته من اشتباه خوندم پوزش میخوام.
فعلا شما رو با google تنها میزارم


#11

این زبانها اکثر اوقات با سی نوشته شدن چون هیچ آدم دیوانه ای دوست نداره این کار رو در اسمبلی بکنه مگر اینکه واقعا علافه و بیکار باشه یا سرعت به قدری مهم باشه که عمرش رو بزاره پای اسبملی
بیشتر بخاطر مدیریت دستی حافظه ، لینک شدن راحت اسمبلی ، نبود مسائلی مثل شی گرایی و gc و … که باعث افت شدید سرعت و … میشن از سی برای ساخت سایر زبان ها استفاده کردند ، یه مساله دیگه ای هم که هست اینه که اون زمون زبان سی خیلی محبوبتر از رقباش مثل پاسکال و … بقیه بود و برای همین اکثریت زبان های جدید با سی توسعه داده شدن وگرنه شما هرکاری که داخل سی میتونید انجام بدید در داخل پاسکال هم میشه انجام داد ولی من تابحال ندیدم کسی به سی یا پاسکال بگه چون زبان جدیدی با اینها نوشته شده پس اینها سطح پایین هستند ! متاسفانه شما فکر میکنید مدیریت حافظه یعنی برنامه نویسی سطح پایین که این درست نیست ! اگر کسی بخواد تا عمق مفاهیم برنامه نویسی پیش بره باید اسمبلی یاد بگیره نه سی ! پیشنهاد میکنم در مورد مفهموم سطح پایین کمی مطالعه مجدد کنید ! مفهوم سطح پایین با سخت افزار گره خورده نه حافظه

دوست عزیز زبان سی به طور کامل یک زبان high level هست و اصلا ابدا هیچ ربطی به مقایسه نداره ! سی به شما قابیلت هایی مثل اشاره گر و انگولک کردن حافظه ، مدیریت دستی حافظه و … رو میده ولی اینها به هیچ دلیل باعث نمیشه شما به سی یک زبان سطح پایین بگید! اینکه بعضی از کارهای مربوط به سطح پایین رو میشه با سی انجام داد دلیل نمیشه گفت که سی یک زبان low-level هست . محض خدای رضا این چه استدلالی هست که چون سی GC نداره پس سطح پایینه
بهترین راه فیلتر کردن زبان های سطح بالا و سطح پایین نوشتن بوت لودره ! شما تا بحال کجا دیدین با سی بوت لودر بنویسن ؟ سی فقط بعضی قابلیت های سطح پایین رو به شما میده ولی در عمل قدرت نداره به عمق سطح پایین و سخت افزار بره ، برای نفوذ به عمق سیستم تنها راه استفاده از اسمبلی هست که چون در سی براحتی میشه اسمبلی رو لینک کرد متاسفانه خیلی ها به اشتباه فکر میکنن سی یک زبان سطح پایین هست ، زبان های سطح بالایی مثل سی برای این طراحی شدن که دیگه با اسمبلی سر و کله نزنیم و مجبور نشیم برای یک لوپ یا if ساده کله مبارکمون رو به دیوار بزنیم ، همین الانم میتونید برنامه هایی که مرتبط با سطح پایین هستند یا سخت افزارها رو انگولک میکنن و … سورس کدشون رو بررسی کنید قسمت کنترل و نفوذ در سخت افزار با اسمبلی نوشته بعدا به سی لینک میشه و شما دیگه لزومی نداره دستورات پیش پا افتاده ای مثل if,loop و … رو با اسمبلی بنویسید !
زبان ماشین و زبان اسمبلی مشهورترین زبان های سطح پایین هستند و من نمیدونم شما کجا خوندید که سی یک زبان سطح پایین هست ولی متاسفانه اشتباه بوده ! در زبان سی کتابخونه هایی هستند که با زبان اسمبلی نوشته شده و لینک شدن به سی و متاسفانه 99 درصد برنامه نویسها اشتباه برداشت میکنن که چون با سی میشه وقفه 21 بایوس رو صدا زد یا فلان کار رو در سی پی یو کرد پس سی هم سطح پایینه !
در مورد اینکه هر برنامه نویسی بهتره که با زبان سی شروع کنه کاملاً با شما موافقم :wink:


#12

عزیز بنظر من بهتره قبل از یادگیری راست زبان انگلییسی رو تا حدی یاد بگیری که بتونی گلیمت رو از آب بکشی ، برای rust 5 سال بعد هم کتاب و منبع فارسی نمیاد مطمئن باش ! اگر ترک زبان باشی دوسه تا منبع هست به ترکی استانبولی که بد نیستن ولی اول آخر باید نسخه انگلیسی بخونی


#13

مثل اینه که بگیم تربچه در مقابل سیب زمینی میوست اما در مقابل سیب نه, حالا نسبت سیب و انبه چیه؟


#14

:joy::joy::joy::joy: عجب مثالی ، خیلی سعی کردم بگیرم نگرفتم اما


#15

جناب من تو این تاپیک در مورد سطح پایین یا سطح بالا بودن c بحث نکردم که جوابی دریافت کنم همون پیام اول بنده رو بخونید واضحه اما برداشت اشتباه دارید به خاطر اینکه خودم با زبان rust کار کردم در مورد یاد گرفتنش به دوستمون گفتم بهتره قبل اینکه مستقیم برن سراغ زبان rust بهتره مباحث مدیریت حافظه رو با زبان سی یاد بگیرن تا بهتر بتونن تو زبان rust درک کنن چون اتفاقا خیلی از برنامه نویس هاییکه می رن سراغ این زبان قبلا روی سی یا سی پلاس کار کردن تا هضم مباحث جدیدی که تو مدیریت و امنیت حافظش پیاده کردن براشون راحتر بشه
اما در مورد سطح پایین یا سطح بالا بودن شما اگر خود زبان سی رو فقط در نظر بگیرید اینو بنده هم می دونم سطح بالاست در قیاس با زبان اسمبلی و مفاهیمش همه زبان ها سطح بالاست این دیگه جایی برای بحث نداره اما اینجا بنده زبان سی رو در رابطه با زبان rust سطح پایینتر خوندم نه اینکه ادعا کنم زبان c سطح پایینه اینکه شما تمام زبان های سطح بالا رو در یه سطح بدونید من با این مشکل دارم برای مثال شما زبان python یا ruby رو با زبان c نمی تونی از لحاظ سطح بالا بودن در یک ردیف قرار بدی به خاطر همین ویژگی هایی که خود زبان سی داره و برداشت اشتباهی که شما از حرف بنده دارید همینه حتی این موضوع رو شما تو نمونه دیاگرام هایی که از بحث سطح بالا و پایین بودن زبان ها ارایه شده بود ببیند زبان c در کنار زبان هایی مثل پاسکال و فورترن قرار گرفته اما در سطح های بالاتر زبان های oop مثل جاوا و سی شارپ و حتی بالاتر از اون زبان مثل ruby , … حالا اگر شما دید کلی به قضیه داشته باشید همه این زبان ها سطح بالا هستن چون قیاس و نقطه سنجش زبان اسمبلی هست اما وقتی در بین زبان ها قرار میگیریم این سطوح خودشو نشون میده که کدوم زبان سطح بالاتره یا کدوم زبان به مباحث سطح پایین نزدیک تره مثل سی و پاسکال و اینکه خود بنده برنامه نویسی رو با زبان پاسکال شروع کردم و یکی از مزیت هایی که داره تو برنامه نویس با دلفی همین مورد هست که تا حدی قابلیت برنامه نویسی سطح پایین رو داره امیدوارم منظورمو تونسته باشم برسونم


#16

tenor