7 أسباب لما يجب عليك البدئ في تعلم لغة البرمجة RUST

7 أسباب لما يجب عليك البدئ في تعلم لغة البرمجة RUST

أخبرني صديقي، ما اللغة او التقنية البرمجية التي خططت لتعلمها هذه السنة ؟ هل هي بايثون ؟ ام Clojure كونها واحدة من أكثر اللغات دخلا في العالم ؟ مهما تعددت الأسباب فربما لن تختار لغة البرمجة RUST كلغة برمجة لها آفاق تعليمية جيدة هذه السنة، و إن كان حقا إختيارك هو لغة البرمجة RUST فأحب ان احييك على إختيارك الفريد من نوعه و المميز هذا. 

لإنه من الجيد تعلم تقنيات برمجية تدرك جيدا أن آفاقها غير محدودة كالبايثون، فلم يخسأ اليوم أي شخص تعلم لغة البرمجة بايثون كونها أصبحت من اللغات البرمجية المستخدمة بكثرة في شتى المجالات، الى جانب السهولة التي توفرها هذه اللغة. إلا ان حديثنا اليوم ليس عن بايثون بل عن لغة البرمجة راست (RUST) التي بدأت تعرف أوجها كذلك في السنوات الأخيرة و بدأت الكثير من الشركات تتعاطى لها. إلا ان أصدقائنا في العالم العربي غافلون كثيرا على هذه اللغة، و قد حان دورنا نحن أكوا ويب الى إيقاظ الشعلة و لو قليلا حول لغة البرمجة RUST بتوفير 10 أسباب تجعلك تبدأ في تعلم و إستخدام RUST فور إنهائك لهذا المقال. 

- ما هي لغة البرمجة RUST ؟

7 أسباب لما يجب عليك البدئ في تعلم لغة البرمجة RUST


أول الأشياء أولاً، كيف لنا ان نقنعنك بتعلم RUST ان كنا لا نعرف الفائدة منها أصلا؟!
قبل عقود، إعتقدنا انه لا يمكن تعويض لغة البرمجة C او تحسينها لكونها لغة برمجة تجلب شيئا جديدا لا يمكن لأي لغة أخرى التعامل معه مثل جافا و غيرها و هو إمكانية التعامل مع الـ Embedded System و التعامل مع الهاردوير الخاص بالحاسوب، يوجد الكثير من الأشياء الأخرى التي تستطيع لغة البرمجة C فعله بالطبع لكن يبقى هذا بطاقة الجوكر الخاصة بها. بعد سنوات ظهرت الـ C++ التي توفر نفس خصائص الـ C قليلا مع بعض الأشياء الجديدة كإضافة نمط الـ OOP و الكلاسات، و منذ ذلك الحين لم يظهر بديل لهذين اللغتين إطلاقا. 

حتى ظهرت RUST سنة 2015 التي تأتي بنفس خصائص الـ C++  مع تطويرات أفضل في التعامل مع ذاكرة الحاسوب و الهاردوير و توفير قابلية التطوير و السرعة مقارنة مع الـ C++، الى جانب ذلك توفير برمجيات ضخمة و كبيرة يمكنها الإشتغال على أقل المقومات للحاسوب و على مختلف الأنظمة، كما يمكن دمج الـ RUST ( مثل الجافاسكربت كما تفعل Mozilla )  مع لغات برمجية أخرى للحصول على تطوير أفضل. 
في البداية لم تلقى حقا ذلك الإهتمام الا بعد بدئ إستخدامها من طرف شركات كبرى مثل Mozilla التي يبقى لها الفضل في رفع قيمة RUST كثيرا. 

إذن صديقي، لما يجب عليك أنت أيضا البدئ في إستخدام RUST ؟ إليك الإجابة : 

- لأنها أكثر اللغات المحبوبة لدى المطورين في السنوات الأخيرة : 

هل إطلعت على إحصائيات أفضل اللغات البرمجية لسنة 2019 ؟ إن لم تفعل فلا تتردد في النقر مرتين على الرابط السابق الذي سيطلعك على كل هذه الإحصائيات و التي تتخذ فيه لغة البرمجة RUST المركز الأول في قائمة بعنوان " Most loved programming languages " أي اكثر اللغات البرمجية المحبوبة من طرف المطورين. 
لم تحصل RUST على ذلك اللقب من فراغ، بل سلاسة كتابة الكود الخاص بها و قوتها في التعامل مع مختلف البرمجيات يجعلها لغة برمجة مثالية لتعويض لغات برمجية أخرى نسبيا مثل الـ C++ في صناعة البرمجيات الكبرى او حتى تطوير هياكل الأنظمة. 
بعد إطلاقها سنة 2015 لم تحظى RUST بتلك الشعبية، لكن مع تطويرها و إطلاق آخر تحديث لها ( في الـ 19 من ديسمبر ) صارت مطلوبة بشدة و بكثرة، و أصبح أي مطور C++ و C يتجه تلقائيا الى التطوير بإستخدام RUST لسهولة التعامل بها. 

- لأن كبرى الشركات تستخدمها و تنصحك بإستخدامها : 

لا بد انك لاحظت مؤخرا سرعة في آداء برمجيات Mozilla مثل متصفح FireFox Quantum مثلا الذي يتفوق على متصفح FireFox العادي من حيث الآداء و العمل بل و يتفوق بدوره على متصفحات أخرى مثل Chrome من حيث هذه الناحية. إستغلت Mozilla لغة البرمجة RUST لبناء جزء كبير من هذا المتصفح، بل و بدأت تعتمد عليها FireFox في تطوير أقوى و أشهر البرمجيات و المواقع الخاصة بها الآن، حتى ان Mozilla بدأت في تطوير جزء من Rust بنفسها لجعلها أقوى و أقوى. 
شركات أخرى مثل Dropbox لم تفكر مرتين في البدئ في إستخدام لغة RUST و بدأت بإدراجها في مختلف برمجياتها الشهيرة كذلك. 
ان هذا دليل على ان RUST بديل مثالي للغات برمجية عالمية مختصة في مجال تصنيع البرمجيات المختلفة بإحترافية، و هذا سبب وجيه يدعوك لتجربتها و صناعة برنامجك القادم بإستخدام RUST. 

- لأنها ذات كود سهل الكتابة و الإستخدام و التعديل : 

إن قمنا بمقارنة البايثون مثلا مع الجافا من حيث الأسطر البرمجية و طريقة كتابة الكود، سنجد ان البايثون يمكنها آداء المهمات في أسطر برمجية أقل بكثير من المتوقع و هذا ما يجعلها ذات قابلية في التعلم و الإستخدام و التعديل مقارنة مع الجافا. 
الـ RUST أشبه بالبايثون هنا حين يتم مقارنتها مع لغات برمجية تؤدي نفس المهمة كالـ C++ او GO، فالكود الخاص بـ RUST أسهل بكثير من حيث القراءة و الكتابة و العمل من باقي اللغات البرمجية الأخرى، و قابل للتعديل أيضا حتى و إن كان المشروع ذو أسطر برمجية بالألوف، و يمكن لأي مستخدم الشروع مباشرة في فهم الكود الخاص بك في RUST فكل ما يحتاجه هو المبادئ الأولية و الأساسية فقط، على عكس لغات برمجية أخرى التي يتوجب عليك خوض كورسات و دورات متعمقة حتى تستطيع فهم أكواد الآخرين. 
هذه السهولة التي توفرها لن RUST تدفعك لتعلمها أيضا، بحيث لن يستغرق منك الأمر أقل من أسبوع حتى تجيد إستخدامها و تبدأ في تطوير برمجيات إحترافية و قوية و صلبة بإستخدام RUST. 


- لأنها صالحة للتطوير على مختلف المستويات : 

ستخبرني الآن ان لغة البرمجة RUST جيدة لتطوير برمجيات سطح المكتب ذات آداء عالي و يمكن تعويضها بلغات مثل Go/C/C++ و إنتهى الكلام. لكن RUST صالحة لفعل أكثر من ذلك بكثير، بل تطوير مواقع الويب بإستخدام RUST يعد شيئا مثاليا إن كنت في صدد العمل على تطبيق ويب يعتمد على الآداء العالي و الإستهلاك الكبير للموارد. 
يمكن فعل ذلك بالإعتماد على الـ WebAssembly التي تسمح لنا بتجربة صناعة تطبيقات الويب بالإعتماد على لغات مثل C و C++ و RUST الآن، و لأن RUST تجيد التعامل مع الآداء الخاص بالحواسيب فستكون خيارا أكثر من مثالي لتطوير موقع ويب يقوم بمهمة صعبة او ذو إستخدام عالي كفيسبوك، تخيل ان فيسبوك يدمج بين كل من RUST و React أيضا الى جانب لغات الشركة الشهيرة مثل Hake، الن يكون استخدام فيسبوك أسهل ؟ 

- ذات عدد من المكتبات و الحزم لتطوير أي شيئ كان : 

قد تقف الآن عند هذه النقطة و تقول ان الـ RUST قوية لصناعة برمجيات سطح مكتب آمنة و ذات فعالية و سرعة، لكن لا أعتقد انه يمكن لهذه اللغة ان تطور البرنامج الذي أنوي تطويره إذ يحتاج الى مكتبات و حزم (Packages) خاصة موجودة في لغات أخرى مثل C++ او C# قد لا تكون موجودة في RUST. 
هنا سنستعرض عليك إذن Cargo، هل سمعت بها من قبل ؟ هي عبارة عن مدير الحزم الخاص بلغة البرمجة RUST، يمكننا تشبيهه بالـ Npm الخاص بالجافاسكربت او الـ Pip الخاص بالبايثون، يسمح لنا Cargo بالتعرف على آلاف المكتبات التي تساعدك كل واحدة منها على تحقيق أقوى و أصعب البرمجيات بسهولة كبيرة و بكفاءة، كما انه يتم تطوير حزم جديدة كل يوم في RUST، و يمكنك الإطلاع عليها كلها عبر مستودع RUST على جيتهاب. 

- لها بعض الأفضلية حين يتم مقارنتها مع لغات مثل Python, Go, C++, Java : 

من أجل إستيعاب قوة لغة برمجة معينة لا بد من مقارنتها مع لغات برمجية أخرى، و لأن الـ RUST تتمثل كثيرا في مجالات تشغلها لغات مثل Python, Java, C++, Go فإننا سنقارنها في هذ هالفقرة مع هذه اللغات و كيف تتفوق Rust عليها : 
  • مقارنة Rust مع C++ : حين نقارن الـ C++ مع RUST فإن أفضل شيئ توفره RUST هنا هو الأمان، إذ ان أبسط خطأ برمجي في الـ C++ قد تجعل كل عملك ينهار بالكامل على عكس RUST إذ توفر كود أكثر هيكلة و يمكن حمايته، كما انها لا تعطي نتائج عشوائية عكس الـ C++. من حيث الآداء أيضا فـ RUST أسرع لكونها تتعامل بشكل مثالي مع الذاكرة مما يقوي آداء برمجيتك. 
  • مقارنة Rust مع Go : لغة البرمجة GO من جوجل قوية حقا و توفر آداء عالي بدورها و من الصعب ان تتفوق RUST على Go هنا، لكن يوجد ميزة جيدة في Rust لا تحملها Go و هي إمكانية كتابة كود برمجي أكثر بساطة و مفهوم بشكل أكبر مقارنة مع Go، إنشاء نفس البرمجية بكل من Go و Rust لن يتباين كثيرا من حيث الآداء، لكن من حيث قابلية التعديل على الكود و سهولة كتابته ف Rust لها يد عليا هنا. 

  • مقارنة Rust مع Python : لغة البرمجة بايثون واسعة الحيلة و يمكن القيام بأي شيئ تقريبا بإستخدام بايثون، Rust لازالت متأخرة نسبيا على البايثون في الشعبية و حيلولتها لإستخدامها في أي شيئ كان، أيضا إن لم تكن عاشقا للأقواس البرمجية {} فـ Rust تعتمد عليها كثيرا، لكن لـ Rust أشياء لا تستطيع البايثون القيام بها مثل الـ Anonymous Functions مثلا التي يجب عليك صناعتها في بايثون بإستخدام الـ Lambda، و الكثير من التقنيات الأخرى البرمجية. من حيث الآداء فبايثون أفضل أيضا هنا على Rust لكن ليس بالفارق الكبير، أيضا Rust بدأت تحصد شعبية على منصات مختلفة مثل Github على عكس البايثون. 
  • مقارنة Rust مع Java : الأخطاء التقنية في الجافا لا تطاق حين يكون الكود البرمجي يفتقد للمنطق كثيرا، الى جانب ان الجافا تعتمد على Virtual Machine للعمل يجعلها أبطأ في العمل على مختلف المنصات، هنا تتفوق Rust على الجافا في هذين السلبيتين كون ان Rust أسرع من الجافا و كما الحال بالنسبة للـ C++ فـ Rust توفر لك إمكانية التركيز على المشكلة الحقيقية في الكود و ليس الإهتمام بالأخطاء المنطقية ( مثل خطأ NullpointerException الشهير في الجافا ) . 
لا يمكننا القول ان Rust أفضل من جافا و بايثون و سي بلس بلس و Go، فلكل لغة برمجة ميزاتها الخاصة التي تستثنى بها، لكن يمكننا معرفة الآن نقاط قوة Rust أن قمنا بمقارنتها بهذه اللغات. 

- ذات هيكلة مثالية و تعامل مع أخطاء إحترافي : 

تعتمد RUST على الـ Modules حين يتعلق الأمر بهيكلة الأكواد البرمجية وسط أي مشروع، يمكننا إعتبارها مثل الـ Components في كل واحد هدف او عمل محدد يقوم بها، و هذا يقيك من مشاكل الأخطاء البرمجية المتعددة و الغير مفهومة. ليس هذا فقط، بل لـ RUST نظام رائع في إدارة المشاكل البرمجية يحدد لك بالضبط المشكلة و كيف يمكن حلها، على عكس تقنيات أخرى التي تخبرك ان الخطأ موجود في السطر 325 رغم ان الكود الخاص بك يتكون فقط من 15 سطر برمجي ! 
لهذا في الفقرة السابقة ركزنا على تفوق الـ RUST على كل من Java و C++ في التعامل مع الأخطاء المنطقية بشكل أفضل. 

- ذات مجتمع متعاون و مساند : 


دعني أحكي لك قصة قصيرة مبنية على تجربة شخصية : في إحدى المرات كنت في صدد تطوير قالب ووردبريس بإستخدام تقنية Root/Sage، في خضم العمل واجهني عائق لم أستطع تجاوزه فقررت طرح المشكل في Stackoverflow و لم أتلق أي إجابة، بعدها في منصات عديدة و لازلت لم أتلقى أي إجابة حول المشكل، توجهت الى الـ Community او المجتمع الخاص بالـ Root/Sage و طرحت المشكل، و لازلت لم أتحصل على إجابتي، جعلني هذا في الأخير أغير نمطية المشروع و التخلي عن Sage. 
إن كنت ستستخدم Rust فستود الحصول على الكثير و الكثير من الدعم و التقنيات الجديدة لتعريفك بها، لسوء الحظ منصة Stackoverflow لم تعد بتلك القوة و الإهتمام خصوصا بالنسبة  للمبتدئين و معظم الإستفسارات الآن تصب في إطارات شهيرة مثل الجافاسكربت. و لحسن الحظ يوجد مجتمع كامل لـ RUST ذو تفاعل رهيب و ذو مساعدة و مساندة لا مثيل لها، فأي مشكل مهما كان بسيطا او صعبا ستجد عشرات الأجوبة حوله. بالطبع ستجد هذه المجتمعات على مختلف المنصات مثل Github او الموقع الرسمي للغة. 
هذه الفقرة إضافية لكن حقا أردت مشاركتها مع باقي أصدقائنا المبرمجين ليعرفو ان RUST ذات مجتمع أفضل من باقي اللغات البرمجية الأخرى. 

شاركه على :