Rust for Python developers – Telegram
Rust for Python developers
2.22K subscribers
23 photos
1 video
2 files
84 links
Rust programming language for python developers

یک توسعه دهنده پایتون هستم که سعی میکنم rust یاد بگیرم.
تو این مسیر منابع و نظرات شخصی خودم رو با آیندگان هم به اشتراک میذارم

اگر به هوش مصنوعی و پایتون علاقه دارید به کانال :
@pytens
@pyhints
سر بزنید.
Download Telegram
قطعا شما هم همچین کدی رو دیدید :

use rand::Rng;

fn main() {
let rand_num = rand::thread_rng().gen_range(1..21)
}


برای من همش سوال بود؛ چرا از rand میریم Rng رو میاریم ولی موقع استفاده Rng رو بیخیال میشیم و از خود rand باید thread_rng رو بیاریم و بعد می‌توینم به متد دسترسی بگیریم ؟

چیزی پیدا نکردم (چون سوالم طولانی میشه و اومدم داکیومنت‌های Rust رو دادم به مدل هوش مصنوعی و این جوابی بود که بهم داد)

You're right to be curious! Let's break down why Rust code uses `Rng` and `rand::thread_rng()` for generating random numbers.

**1. Traits: The Power of Abstraction**

In Rust, traits define shared behavior. Think of them like blueprints or contracts that types can adhere to.

- The `Rng` trait represents anything capable of producing random numbers. It outlines methods like `gen()`, `gen_range()`, and others for generating different kinds of random values.
- By importing `Rng`, you gain access to this blueprint, allowing your code to work with any type that implements the `Rng` trait.

**2. Thread-Local Random Number Generators (RNGs): Ensuring Safety and Efficiency**

* `rand::thread_rng()` is a function that gives you a thread-local RNG. This means each thread in your program has its own independent random number generator, preventing conflicts and ensuring reproducibility within a thread's context.
* Using a thread-local RNG is generally preferred for performance and safety reasons:

* **Performance:** Accessing a global RNG can introduce contention (threads waiting for access) which slows things down. Thread-local RNGs avoid this bottleneck.
* **Safety:** Guarantees that random sequences generated within a thread are independent of other threads, important for scenarios requiring deterministic behavior.


**3. Chaining Methods: Building Randomness**

`rand::thread_rng().gen_range(1..101)` demonstrates method chaining.

* `rand::thread_rng()` returns an instance (a specific realization) of a type that implements the `Rng` trait.
* `.gen_range(1..101)` calls the `gen_range()` method on this RNG instance, specifying a range from 1 to 101 (inclusive). This generates a random integer within that range.

**Key Takeaways:**

- **Traits (`Rng`)**: Provide abstraction for random number generation capabilities.
- **Thread-Local RNGs (`rand::thread_rng()`)**: Ensure thread safety, performance, and independent randomness within threads.
- **Method Chaining**: Allows you to combine methods on the returned `Rng` instance to generate specific types of random values.



قبلتر هم گفتم این ابزارها وقتی بهشون داکیومنت یا اینترنت بدی؛ برای تمرین مصاحبه و یا یادگیری بسیار کاربردی هستند. اما باید با دقت بسیار ازشون استفاده کرد.
👍18😁3👌3
چون ما از پایتون به راست اومدیم من ترجیح میدم همه چیز رو با پایتون map کنم تا جایی که اجازه میده:

توی دوره‌های آموزشی که می‌بینم؛ تقریبا اکثرا
.iter(), .into_iter()

رو میگن iterator در حالی که بعدا میگن که رفتار متفاوتی داره؛ اما با توجه به رفتارهاشون
.iter() = iterable in python
.into_iter() = iterator in python

شما می‌تونی یک iterable رو چندین بار روش for بزنی و یک رفرنس بهش داری توی راست (دیتا رو نمی‌تونی تغییر بدی مستفیم)
ولی iterator رو می‌تونی تغییر بدی اما بعد از تبدیل شدن به iterator دیگه متغییر اولیه رو از دست دادی .into_iter() میره برای owner شدن.

مورد بعدی:
اکثرا closure رو anonymous function تعریف می‌کنند.
که با چیزی که توی پایتون داریم متفاوت هست (توی پایتون این دو مورد تعاریف مختلفی دارند و یکسان نیستند.)
جالب شد closure هم anonymous هست هم دسترسی به متغیر nonlocal رو داره (هر دو حالت جون یک سینتکس رو داره کلا بهش میگن closure)
👍111
Rust for Python developers
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…
ویدئو اول و دوم تموم شد.
پلی لیست (مورد سوم رو باید شروع کنم) که خب با کتاب همزمان پیش خواهم رفت.

روز خوبی بود ولی سرعتم خیلی کم بود؛ برنامه داشتم حداقل ۸ ساعت اول پلی لیست رو هم ببینم؛ ولی خب با توجه به اینکه چندتا حواس‌پرتی داشتم و البته کمی کسالت دامن گیرم شده بود.

فکر نمی‌کنم بد باشه؛ قطعا فردا با انرژی بیشتر شروع می‌کنم و سعی می‌کنم ۱۲ فصل اول کتاب و ویدئو‌ها رو همزمان پیش برم.


اما برای دوستانی که میخوان بعدا بخونند:
هر دو ویدئو اول و دوم رو به ترتیب پیشنهاد می‌کنم
ویدئو اول بعضی از موارد رو توضیح نمیده؛ ویدئو دوم شاید یک خطی ولی بهشون اشاره می‌کنه و میره جلو.
که اگر با دقت ولی حتی با سرعت 2x ببینید هم متوجه‌اش خواهید شد و می‌تونید راجبش جستجو کنید ( یا اینکه مثل من مواردی که سوال بیشتر دارید رو یادداشت کنید و موقع خوندن کتاب اصلی بهش توجه کنید)
8👏8👍3
Rust for Python developers
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…
خیلی وقتا به محض اینکه پلن می‌کنی یک کاری رو جلو جلو دنیا برات دردسر میسازه ولی خب من ادامه میدم پلن رو؛
با وجود کسالت شدید
تونستن ۶ تا ویدئو اول و تا فصل ۷ داکیومنت‌ها رو بخونم.
هرچند چون زیادی روی استراحت بودم؛ فکر نمی‌کنم امشب زودتر از ساعت ۳-۴ خوابم ببره پس اگر دوباره وضعیت بد نشه قطعا ادامه خواهم داد.

حدود ۵ فصل دیگه بخونم؛ به هدفی که شب قبل گذاشتم میرسم.

اما برای افرادی که بعد از این میخوان بخونند :

ویدئو‌های شماره ۳ ؛ طرف ی مقدار بیش از حد چرت و پرت میگه و حاشیه میزنه و بنظرم جلف هم هست که من نمی‌پسندم اما خوبیش اینه که می‌تونید بذارید روی 2x-3x و ویدئو رو ببینید بعد خیلی روانتر و سریعتر کتاب رو بخونید.

بعضی بخش‌های کتاب یک سری مثال‌ها فرق کرده و یا نکاتی بهش اضافه شده ولی بطور کلی ویدئوها هنوز ولید هست.

پس بازم پیشنهاد میدم همین RoadMap رو برای یادگیری ادامه بدید؛ اگر در آینده چیز بهتری دیدم حتما جایگزین می‌کنم.
👍12👏32
Rust for Python developers
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…
هنوز روی ۳-۴ هستم
امروز تا عصر تقریبا نتونستم کار کنم و چندتا ویدئو رو بیشتر ندیدم
فصل ۱۰ تمام شد.

می‌دونم از برنامه عقب هستم؛ اما از عصر نشستم هم تمرینات رو کد زدم هم بخش زیادی از منطق کدهای Python رو آوردم توی Rust و بهم انگیزه داد که با این حال و اوضاع و احوالی که دارم ادامه بدم داستان رو.

یکسری بخش‌ها رو البته دست نزدم و با todo! فعلا ازش گذشتم؛ مثل database connection , ...

تصمیم بدی نبود؛ باعث شد خستگی و حال بدی کسالت ازم دور بشه ولی یک اشتباهی که کردم این بود که صبر نکردم؛ چون بعد از فصل ۱۰ ویدئوهای لایو هم میره روی تمرینات ( یک پلی‌لیست دیگه هم روی یوتبوب هست که فقط همین تمرینات رو انجام میده و با این تمرینات Rust رو میخواد آموزش بده؛ البته برای یک شخص دیگری هست)

اینم خلاصه وضعیت امروز بود؛ با توجه به کمبود زمان احتمالا از کتاب
Rust in a month of launch
میگذرم و مستقیم میرم سراغ
Zero to production in Rust

توقع هم دارم بعد از خوندن کتاب اصلی سایت نهایتا ۴-۵ ساعته این کتاب رو بخونم ولی خب فعلا از ذهنم بیرونش می‌کنم و تمرکز روی کتاب اصلی و ویدئوها هست.

در نهایت
ترجیح میدم تو مسیری که پیش میرم اشتباه کنم و درس بگیرم؛ تا اینکه از ترس اشتباه کردن هیچوقت شروع نکنم.

برای همین زودتر شروع کردم کدها رو به Rust تبدیل کردن.

توی گروه‌های pyhints نگید؛ ولی بیش از حد جذب Rust شدم.
15👍4🔥1👏1
Rust for Python developers
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…
فصل ۱۲ کتاب هم تموم شد + ویدئو‌های تا این بخش

همزمان یکسری هم به باقی کدها زدم و چندتا تمرین دیگه‌ای که دیده بودم رو انجام دادم.

بطور کلی امروز هم خوب پیشرفت.
تا قبل از فصل ۱۰ همه چیز خوب بود و سرعت بالایی داشت ولی بعد از فصل ۱۰ کتاب فقط خوندن کافی نیست بلکه تمرین مهمتر هست.

یک مشکل دیگه که دارم اینه که برای خیلی از کارها Rust چندین روش رو ارائه میده و نه فقط ۱ روش که خیلی خوبه؛ اما الان میفهمم وقتی می‌گفتند learning curve داره و سخت میشه و ... منظورشون چی هست.
مسئله اینه که خیلی وقتا نمی‌تونی تصمیم بگیری کاری که کردی روش درست هست یا نه (مخصوصا وقتی صحبت بهینه کد زدن میشه) و هر دو روش هم جواب میده.

استفاده از cargo clippy رو هم به کارهام اضافه کردم تا از همین ابتدا استاندارد کامیونیتی رو رعایت کنم.

البته اضافه کنم من سختی توی یادگیری Rust نمی‌بینم؛ شاید چون توی رزومه‌ام در گذشته با C, C++ و از همه بدتر کد زدن با Assembly X86-64 تقریبا عادت داشتم.

سعی کردم یک فروم معروف رو پیدا کنم تا یک عکس به پیوست بفرستم که متاسفانه جمع شده بود؛ خیلی سال پیش نوشته بودم:

این احمقانه‌اس که بیشتر از اینکه وقت کد زدن داشته باشم؛ باید کدهام رو دیباگ کنم.
خداحافظ C

و خب اون زمان خیلی جوان بودم و برای تست ایده‌هام نیاز داشتم سرعت توسعه بیشتری داشته باشم؛ این قدم اول من به سمت Perl بود که باعث شد بعدش با Python آشنا بشم و ...

ولی بنظرم Rust این مسئله رو نداره؛ چون قبل از تحویل کد باگ رو تو صورت آدم می‌کوبه و البته منی که بزرگتر و صبورتر شدم.

به هرحال هرچی جلوتر میرم به این نتیجه میرسم؛ که بیشتر باید با Rust کد زد و تجربه کرد. کتاب اصلی به تنهایی نمی‌تونه بهت بگه که چی رو توی چه شرایطی باید استفاده کنی و تو چه شرایطی نباید که اگر اینطوری بود قطعا ۳-۴ برابر این حجم داشت و هیچکس هم سراغ Rust نمی‌رفت.

با این همه حتی یادگیری همین مقدار هم برای کد زدن کفایت می‌کنه ولی من شخصا کد optimize رو سمتش کشش دارم حتی اگر اینطوری کد نزنم باید بلدش باشم.
16👍4🔥1
یک نکته دیگه وقتی روی چندزبان برنامه نویسی و چندین پروژه تو در تو کار می‌کنیم فقط نصب rust-analyzer روی vscode کافی نیست و ممکنه گیج بزنه

توی این شرایط بهتره این تنظیمات رو هم به settings.json اضافه کنید.

"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer",
"editor.formatOnSave": true,
"editor.tabSize": 4
},
👍133🔥3
بیشترین سوالی که ازم شده راجب سرعت خوندن هست؛

روی ویدئو‌ها به سرعت 2x-3x عادت دارم و کندتر ازین نه تنها باعث یادگیری بهترم نمی‌شه که بی‌حوصله‌ام می‌کنه و تمرکزم رو از دست میدم (توی سخت‌ترین مباحث سرعت رو تا 1.75 نهایتا پایین میارم یه مدت انجام بدید عادت می‌کنید)

برای خوندن کتاب و متن سایت و ... هم اگر سرعت خوندن برام مهم باشه (بعضی کتاب‌ها خوندنش لذت بخش هست اونارو اینکارو نمی‌کنم) مثل همین کتابی که روی سایت هست.
از extension های مربوط به fast read استفاده می‌کنم مثلا
Sprint Reader
یا مواردی که برای متن رو بلند می‌خونه Text to speech شماهم اگر ابزار یا تکنیک بهتری میشناسید خوشحال میشم باهام به اشتراک بذارید.
17👍5🔥4
Rust for Python developers
یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…
تا اواسط فصل ۱۵ رو پیش رفتم و فکر نمی‌کنم بیشتر ازین بتونم ادامه بدم امشب.
یک چندساعتی هم وقت گذاشتم و باقی کدهایی که برای پروژه توی پایتون مونده بود رو هم منتقل کردم.

خوبیش اینه که وقتی کدهای پایتون رو تحویل میدم تا تیم QA, Test, ... هم کارهاش رو بکنه وقت دارم و توی زمانبندی این تایم رو بهم دادند و ازونجایی که کدها به همدیگر وابسته هست و نمی‌تونم روی پروژه ادامه بدم شرکت ازم خواسته توی این تایم‌ها یکسری پروژه دیگه رو بررسی کنم و پیش ببرم.

این بخش خوب و خبر خوبش بود؛ بخش بد این قضیه این هست که بکند پروژه هم به خودم سپرده شده بخش زیادی از قضیه و خب قطعا توی پایتون به Async, Concurrency, ... نیاز داریم و با توجه به پیچیدگی‌های پروژه درحال حاضر هم MongoDB و هم PostgresSql رو داریم بعد از این مرحله دیتابیس گراف و یک Vector DB هم اضافه خواهد شد که احتمالا pgvector باشه.

نگران آینده‌اش نیستم ولی توی همین بخش کارم پیچیده‌تر شده و این یعنی باید بکند دولوپ با Rust رو هم یاد بگیرم که سخت‌ترین بخشش تا جایی که شنیدم درک و کار با Async هست.

بگذریم از کتاب و ویدئو‌ها مورد ۶ ماند متاسفانه
و کتاب هم تا اواسط فصل ۱۵ پیش رفت فصل‌های بعدی ۲ موردش برام واجب هست خوندن دقیقش و باقیش رو باز با سرعت می‌تونم پیش برم.

امروز متاسفانه ۲ ساعت وقتم سر جندمورد lifetime رفت و چون این ارورها رو ندیده بودم درکی از پیام compiler و نحوه تفسیرش نداشتم (به سادگی باقی مباحث نبود)
ولی چون سرم خلوت شده (کدها رو رسوندم تا ۲ هفته دیگه هم که QA , ... درگیر میشه احتمالا ۵-۶ روز هم اونجا سرم خلوت باشه) از فردا با اولویت استفاده از وقت‌های خالی
شبی ۲ ساعت توسعه کد و ۱ ساعت ادامه آموزش برای خودم در نظر گرفتم؛ بازم تو ادامه این مسیر اگر چیز جذاب و نکاتی بود حتما به اشتراک میذارم


ولی حتما Rust رو با کد زدن یاد بگیرید؛ برخلاف پایتون و ... با خوندن و درک کد متوجه جزئیات نمی‌شید؛ حتما به ارور بخورید و حتما قبل از سرچ سعی کنید به کمک کامپایلر حلش کنید.


پ.ن (پینوشت) :
نیم نگاهی هم به تعطیلات شهریور دارم برای یادگیری کار با دیتابیس‌ها و ...
👍25🔥3👎1👏1
از امروز سعی می‌کنم گزارش هفتگی بدم؛ مگر اینکه سورس یا مطلب جذابی پیدا کنم چون بخش زیادی از اندک وقتی که امروز داشتم سر کد زدن رفت

فقط فرصت کردم؛ نیمی از فصل ۱۵ رو بخونم.
موقع کد زدن برای درک بهتر بعضی مفاهیم بسیار سرچ داشتم ولی خب هدف اصلی کتاب هست.
👍132
توضیحات مدل :
The error is because &'static str has a static lifetime, which means the string must be valid at compile time. However, when you return an error, you're trying to store a string that's owned by myfunc and will go out of scope as soon as that function returns.
و راه حلش :
You can fix this by changing return Err(&'static ex) to return Err(ex.into_string().as_str()). This will create a new string from the error message using into_string() and then return it with a lifetime that's tied to the current function, which is what you want.

توضیحات دقیق و درست هست و اگر شبی که کد رو داشتم می‌نوشتم این توضیحات رو داشتم قطعا درجا درستش می‌کردم.
اما
چون ازش خواستم که کد کامل رو بهم برگردونه؛ توی این مرحله fail کرد؛ کد رو نوشت و بخشی که توضیح داده بود رو هم درست کرد ولی باقی بخش‌های وابسته کد رو اینکارو نکرد.

ولی با همه اینها GPT4o بعد از ۵ بار فرستادن ارورهای کامپایل خروجی بهم داد و این مدل فقط بعد از ۲ بار فرستادن ارورها.
نکته مهمتر توضیحات خیلی دقیق و درستی می‌داد که این بیشتر باعث تعجب من شده.

و من فقط دارم از Llama3.1 8b quantize 4 استفاده می‌کنم برای اینکار.

بنظرم لایق trophy هست. 🏆
12
اگر خواستید یکی رو آزار بدید
بهش بگید
Red-Black Tree

رو توی Rust پیاده سازی کنه


فکر کنم این عذاب برنامه‌نویس‌های جهنمی باشه 😂😂
🤣13👍2🤯1
Rust for Python developers
بخش سایبری کاخ سفید یا همون : Office of the National Cyber Director (ONCD) توی یک مقاله که هفته قبل منتشر شده گفته که نرم‌افزارهای آینده باید به سمت memory safe بودن حرکت کنند (لینک مقاله رو میذارم) که همین نکته بازم به نفع جامعه توسعه دهنده Rust شده و خیلی…
DARPA ( Defence Advanced Research Project Agency)

گزارشی رو منتشر کرده و در مورد پروژه‌ای به اسم TRACTOR صحبت کرده حالا داستان چیه

گفتن که مشکلات مربوط به مموری C, C++ ما و برنامه‌نویس‌ها رو پیر کرده با TRACTOR که خلاصه شده
Translating All C to Rust

هدف اینه که بصورت اتومات کدهای C رو به Rust تبدیل کنیم (کیفیت رو از دست ندیم، که احتمال زیاد LLM ها هم نقش خواهند داشت)

https://www.darpa.mil/program/translating-all-c-to-rust
👍16🔥7👏3
Rust for Python developers
از امروز سعی می‌کنم گزارش هفتگی بدم؛ مگر اینکه سورس یا مطلب جذابی پیدا کنم چون بخش زیادی از اندک وقتی که امروز داشتم سر کد زدن رفت فقط فرصت کردم؛ نیمی از فصل ۱۵ رو بخونم. موقع کد زدن برای درک بهتر بعضی مفاهیم بسیار سرچ داشتم ولی خب هدف اصلی کتاب هست.
قرار بود گزارش هفتگی بدم که بسیار بسیار درگیر شدم روی پروژه
بطوری که حتی تایم خود پروژه رو هم نداشتم (۲ تا پروژه با اولویت بالاتر بهم سپرده شد)
شرکتی هم که توی ایران باهاش کار می‌کنم یک سری مشکلات داشتیم که مجبور شدیم چندروز تا ۱۱-۱۲ شب توی شرکت بمونیم.

کتاب اصلی رو تموم کردم؛ فصل ۲۰ مونده که باید پیاده‌سازیش کنم.
پروژه هم تا جایی که پیش رفت نسخه Rust رو هم پیش بردم؛ ولی چون خیلی اون پروژه داره کند پیش میره (سمت‌ها دیگر) و البته با توجه به ماهیت فعلی پروژه تمرین جدی مثل concurrency, async, ... نداره تصمیم گرفتم ۱-۲ تا پروژه دیگه هم اضافه کنم به کارهام

اولیش تمرینی خواهد بود برای کار با لایبراری‌های ترمینال که crate.io بهم میده چون خیلی از مواردی که تو ذهنم هست حتی اگر API هم بزنم باید نسخه ترمینال هم داشته باشه.
و خب چی بهتر از یک task manager تحت ترمینال برای اینکار ؟ تسک‌های شرکت‌های مختلف priority, deadline و از همه مهمتر notification رو بهش بدم.
این پروژه علاوه بر کار با ترمینال؛ database, .... رو هم بهم یاد میده و می‌تونم تمرین کنم باهاش

دوم؛ برای یک ایده که توی ذهنم هست؛ نیاز دارم یک crawler بنویسم (البته این ۲-۳ ماه زمان داره) که خب اینم هدف گذاری کردم روی Rust اگر امکانش باشه بنویسم تا با مفاهیم مربوط به concurrency, caching, parallelization, async, .... دست و پنجه نرم کنم.
علاوه بر اون کار با دیتابیس و ... هم توی اسکیل بالاتر تست میشه
اگر بتونم کار با headless browser , ... هم توش یاد بگیرم که گل رو زدم.

پروژه سوم هم بماند چیه چون اگر بتونم دیزاین و .. اش رو انجام بدم و منطقی باشه برای پیاده‌سازی حتما بصورت open-source منتشرش می‌کنم.
ولی از طرف شرکت که چندتا bonus بگیرم روش.


اگر خواستید شما هم تمرین کنید؛ یا پروژه تمرینی با داکیومنت خوبی دارید.
زیر همین پست گیت‌هاب پروژه خودتون رو به اشتراک بذارید؛ بعضی وقتا حتی یک ابزار کوچیک هم کار خیلی‌هارو راه می‌ندازه

یادتون نره iPadOS تا همین امثال ماشین حساب نداشت.
👍174
Rust for Python developers pinned «یک پروژه بهم داده شده که بعد از سال‌های بسیار (شاید ۸ سال) برای اولین بار پروژه رو از روز اولش هستم. کدها رو باید توی پایتون انجام بدم؛ معمار سیستم اینطوری فکر می‌کنه که پایتون توی اسکیل هم جواب میده برای این پروژه خاص. (قطعا جواب میده اما سخت هست یا سخت‌افزار…»
بوقت استعفا

باید از بعضی کارهام استعفا بدم، که قویتر Rust رو دنبال کنم
بخصوص کارهایی که دیگه چیزی برای یادگیری نداره و فقط دارم به شرکت سود می‌رسونم بدون اینکه خودمم سودی ببرم.


من خیلی از پیشرفت‌هام رو مدیون وقت‌هایی هستم که به درستی تصمیم به استعفا گرفتم‌.
👍51🔥7👎5🤔2🌭2👏1🙉1
با قدرت و سرعتی که دنیای Rust داره پیشرفت می‌کنه
بنظرم خیلی اتفاقات عجیب و غریب و شاید غیر قابل باوری رخ خواهد داد.

اینو با توجه به تعداد افرادی که دارند می‌کوبندش میگم؛ البته شخصا فکر می‌کنند درکش نکردند.
مثل پایتون که وقتی من شروع کردم خیلی‌ها می‌گفتن تهش می‌تونی باهاش todo لیست‌های خودت رو بنویسی و نگهداری البته که الان Rust خیلی بهتر از اون زمان Python هست.

https://github.com/tracel-ai/cubecl
10👍2🎉1🤣1
واقعاً بعد از حداقل ۳-۴ سال Rust اولین زبانی هست که دارم میگم :

۱- خب الان باید این کد رو بزنم؛
۲- کد رو زدم
۳- اوکی چندتا باگ با کامپایلر
۴- درست شد
۵- کار می‌کنه
۶- اوکی حالا چرا کار می‌کنه ؟
۷- چرا اینجوری کد زدم ؟
۸- اصن چیکار می‌خواستم بکنم ؟
۹- هیچی از Rust نمی‌فهمم

عصبی کننده‌ شاید باشه ولی، واقعاً عاشقشم
32😁5👎3