رؤى

Rust – نظرة عامة موجزة على لغة البرمجة الحديثة التي يحبها المبرمجون

تعرف على طبيعة لغة «Rust»، والأغراض التي تُستخدم من أجلها، والبدائل المتاحة، والاعتبارات التجارية التي يجب أخذها في الاعتبار عند اختيار التطوير باستخدام «Rust»، وسوق الخبرات المتعلقة بـ«Rust»، بالإضافة إلى نصائح حول تعلمها.

جدول المحتويات

تم إطلاق لغة «Rust» في عام 2010 كلغة مفتوحة المصدر على مستوى الأنظمة، صممها غرايدون هور، الذي كان يعمل حينها مهندسًا في شركة «موزيلا». وكان هذا المشروع في البداية مشروعًا جانبيًّا، حيث كان دافع هور هو تطوير لغة جديدة لتكون بمثابة حل لمشاكل إدارة الذاكرة وتخصيصها في لغتي «C» و«C++».

وهذا ما فعله، فولدت لغة «Rust». وبفضل جهود هور الأولية، حظيت اللغة الجديدة برعاية «موزيلا» في عام 2009، وأُطلقت كمشروع مفتوح المصدر بعد عام من ذلك، وأُعلن أنها «مستقرة وناضجة» في عام 2015 — عندما تم إصدار الإصدار 1.0 من «Rust».

وقد اكتسبت منذ ذلك الحين شعبية بين المطورين (حيث يبلغ معدل استخدام هذه اللغة، اعتبارًا من عام 2023، أكثر من 12٪)، وصانعي القرار التقنيين، والشركات، بما في ذلك مايكروسوفت وألفابت ودروبوكس

يُستخدم لغة «Rust» بشكل رئيسي في برمجة:

  • أنظمة الخلفية ذات الأهمية الحاسمة للأداء
  • تطوير أنظمة التشغيل، والرموز المرتبطة بأنظمة التشغيل، والمكونات الأخرى ذات المستوى المنخفض (مثل Android وGoogle Chrome)
  • تطوير الويب من جانب الخادم
  • البنية التحتية لـ«بلوك تشين» وبرمجة العقود الذكية
  • أدوات CLI
  • تطوير الأنظمة المدمجة وإنترنت الأشياء

 

رسم بياني يوضح المجالات الشائعة لاستخدام لغة البرمجة «Rust»

 

في K&C، عملت فرقنا على عدد من المشاريع التي تضمنت لغة Rust ضمن مجموعات التقنيات المستخدمة فيها أو استخدمتها كلغة برمجة أساسية. لكننا شهدنا ارتفاعًا كبيرًا في الطلب على هذه اللغة خلال العام أو العامين الماضيين — لا سيما في مجال تطوير البلوكشين والتطبيقات اللامركزية (dApp).

المطورون أنفسهم يعشقون لغة «Rust»، وقد اختاروها كـ«لغة البرمجة الأكثر إثارة للإعجاب» من بين اللغات الشائعة الاستخدام لمدة 8 سنوات متتالية.

كما أن التطور الذي يشهده قطاع تطوير البرمجيات يزيد من الطلب على المطورين ذوي الخبرة في هذه اللغة.

إن انتشار أجهزة إنترنت الأشياء (IoT)، التي يتطلب تطويرها قدرًا أكبر بكثير من البرمجة على المستويات الدنيا، بالإضافة إلى فائدتها في اتجاهات أخرى مثل تقنية البلوك تشين، كلها عوامل تساهم في زيادة الطلب على مطوري لغة «Rust». وذلك بفضل ما تتمتع به هذه اللغة من استقرار وأمان أكبر مقارنةً بلغات برمجة الأنظمة القديمة مثل C وC++.

ستقدم لك هذه المدونة لمحة موجزة عن لغة البرمجة «Rust». وسأتناول في هذه المدونة ما يلي:

  • ما نوع لغة البرمجة «Rust»؟
  • ما هي فائدته؟
  • الاعتبارات الفنية والتجارية عند اختيار لغة Rust ضمن مجموعة التقنيات المستخدمة
  • سوق مطوري لغة «Rust»
  • تعلم لغة Rust
  • مستقبل لغة «Rust» – الاتجاهات المتوقعة

 

ما نوع لغة البرمجة «Rust»؟

تُعد «Rust» لغة برمجة «منخفضة المستوى» أو لغة برمجة أنظمة. وهذا يعني أنها قادرة على العمل على مستوى قريب من الأجهزة والتفاعل معها مباشرةً، دون الحاجة إلى طبقة تجريد مثل نظام التشغيل أو متصفح الويب، على عكس لغات تطوير الويب مثل JavaScript.

تُستخدم لغات برمجة الأنظمة، مثل Rust — ومن الأمثلة الأخرى على ذلك لغات C وC++ وGo ولغة التجميع (Assembly) — عادةً لكتابة برامج مكونات النظام ذات المستوى المنخفض، مثل أنظمة التشغيل والمتصفحات التي تعمل عليها لغات البرمجة ذات المستوى الأعلى مثل JavaScript، وبرامج تشغيل الأجهزة، وأدوات النظام المساعدة، ومحركات الألعاب ومحاكاة الواقع الافتراضي، وأجهزة إنترنت الأشياء.

توفر لغات النظام إمكانية الوصول إلى مستوى قريب من مستوى الأجهزة، مما يتيح للمطورين التحكم في موارد الأجهزة لتنفيذ المهام التي تتطلب أداءً عاليًا بدقة أكبر.

 

رسم بياني يوضح لغات البرمجة المختلفة مصنفة من المستوى المنخفض إلى المستوى العالي جدًّا

 

تُعتبر هذه اللغة أكثر لغات البرمجة منخفضة المستوى حداثةً في الاستخدام التجاري السائد (فقد تم تطوير لغة «Rust» في عصر الإنترنت)، وقد تم إصدار أول نسخة مستقرة منها في عام 2015 — وقد تم تطوير هذه اللغة كحل لمواجهة قيود البدائل الأقدم مثل لغتي C وC++.

مع تزايد تعقيد أنظمة البرمجيات المدمجة مع الأجهزة، تزايدت أيضًا أوجه القصور في لغات البرمجة الحالية ذات المستوى المنخفض — لا سيما فيما يتعلق بإدارة الذاكرة.

جاءت لحظة الإلهام الخاصة بلغة «Rust» عندما عاد مبتكر اللغة، هوار، إلى شقته في فانكوفر بعد يوم من العمل في مكاتب شركة «موزيلا»، عملاق البرمجيات مفتوحة المصدر. وشعر الشاب، الذي كان يبلغ من العمر 29 عامًا آنذاك، بالإحباط عندما وجد أن مصعد المبنى معطل مرة أخرى بسبب تعطل برمجياته – مرة أخرى.

بصفته مهندس برمجيات، كان بإمكانه أن يرجح بقوة أن تكرار تعطل نظام برمجيات المصعد يرجع إلى الأخطاء في الذاكرة التي غالبًا ما تنتج عن اللغات المستخدمة في برمجة برامج مستوى النظام — وعادةً ما تكون لغة C أو C++.

فقد أطلق مشروعًا جانبيًّا لابتكار لغة جديدة تجمع بين جميع مزايا الإيجاز والسرعة التي تتميز بها لغات الأنظمة القديمة — دون الأخطاء المتعلقة بالذاكرة.

اقرأ دليل المقارنة التفصيلي الخاص بنا لمعرفة المزيد عن الاختلافات بين لغة Rust ولغات البرمجة الأخرى مثل C وC++ وGo.

 

لماذا يُعد نهج «Rust» في تخصيص الذاكرة في مرحلة التحويل البرمجي أمرًا مهمًا للأمن؟

تنسب شركتا التكنولوجيا العملاقتان «مايكروسوفت» و«جوجل» ما يصل إلى 70% من جميع الثغرات الأمنية الخطيرة في مشروعي «ويندوز» و«كروم» التابعين لهما إلى مشاكل في الذاكرة.

يتغلب لغة «Rust» على هذه المشكلة من خلال توفير كود آمن من حيث استخدام الذاكرة، دون أن يتسبب ذلك في انخفاض الأداء الناجم عن عملية جمع القمامة أثناء وقت التشغيل، أو إلقاء العبء على عاتق المطور لمسح الكائنات الزائدة التي تستهلك الذاكرة. فهذا الأخير يفتح الباب أمام الأخطاء البشرية ونوع الأخطاء البرمجية التي تؤدي إلى تعطل البرامج وظهور الثغرات الأمنية.

 

«في لغتي C أو C++، ينتابك دائمًا هذا الخوف من أن ينهار كودك فجأة وبشكل عشوائي»مارا بوس، المؤسِّسة المشاركة لشركة Fusion Engineering ورئيسة فريق مكتبة Rust.

 

تتغلب اللغات الأحدث مثل جافا وجافا سكريبت وبايثون على هذه المشكلة من خلال استخدام مكونات تُسمى «مجمعات القمامة» لأتمتة عملية التنظيف الدوري لتخصيص الذاكرة أثناء تشغيل البرنامج. وهذا يحل مشكلة تخصيص الذاكرة، ولكن على حساب التحكم الدقيق والأداء، وذلك بسبب الوقت الذي تستغرقه عملية جمع القمامة.

كانت لغة «Rust» محاولة من «Hoare» للجمع بين أفضل ما في العالمين في لغة برمجة جديدة واحدة. فهي تعمل على أتمتة تخصيص الذاكرة، مما يزيل خطر حدوث أخطاء متعلقة بالذاكرة، لكنها لا تزال توفر مستوى عالٍ من التحكم مثل لغتي C وC++ — مع ما تتميز به اللغات التقليدية على مستوى النظام من إيجاز وسرعة.

إلا أن وجود مكون «جمع القمامة» أثر سلبًا في البداية على سرعة لغة «روست». ومع ذلك، بحلول عام 2013، تمكن فريق «موزيلا» المكلف بتسريع تطوير مشروع «روست» الذي أصبح مفتوح المصدر حديثًا من إزالة هذا المكون.

 

لغة «Rust» كلغة «ذات أنواع قوية»

يعود جزء كبير من السبب الذي جعل من الممكن تطوير النواة الأساسية للغة «Rust» بطريقة ألغت الحاجة إلى عملية جمع القمامة إلى أنها أصبحت لغة ذات أنواع قوية للغاية.

تفرض اللغات ذات الأنواع القوية قيودًا على خلط أنواع البيانات والقيم المختلفة. وهذا يجبر المطورين على تعلم القواعد الصارمة المتعلقة بكيفية كتابة الكود في لغة «Rust» والالتزام بها — لكنه يقلل إلى حد كبير من احتمالات الوقوع في الأخطاء.

قدم مجتمع «Rust» مفتوح المصدر وفريق «Mozilla» العامل على هذه اللغة نظام«الملكية» الذي ينظم كيفية إدارة اللغة للذاكرة. وهذا يعني أنه لا يمكن الإشارة إلى أي جزء من البيانات إلا بواسطة متغير واحد فقط — مما يمنع خيوط البرمجة المختلفة التي تعمل بالتوازي من محاولة تعديل نفس الجزء من الذاكرة في وقت متقارب تقريبًا.

يتم تطبيق قواعد الملكية هذه بواسطة مُجمِّع يرفض ترجمة الكود إلى برنامج قابل للتشغيل في حالة عدم الالتزام بقواعد أنواع البيانات.

 

«لغة Rust تفرض الانضباط على المطور» – تيم ريزنيتشينكو، رئيس الفريق والقسم التقني، ومهندس TypeScript متكامل الخبرة ومطور Web3 في شركة K&C.

هذه القواعد الصارمة لتحديد أنواع البيانات تعني أن مطوري البرمجيات الذين يستخدمون لغة «Rust» لا يمكنهم ارتكاب الأخطاء التي من شأنها أن تتسبب في حدوث أخطاء في الذاكرة. فإذا وُجدت أي أخطاء من هذا القبيل، فلن يتم ترجمة الكود ببساطة. وهذا يعني أنه يمكن الاستغناء عن مكون «جمع القمامة»، مع بقاء آثار مثل «نظام عد المراجع» مما يسمح لـ Rust بالعمل بسرعة أكبر.

أصبح بإمكان لغة «Rust» الآن الاقتراب من مستوى الأداء المباشر للأجهزة بقدر ما تفعل لغتا «C» و«C++» – حيث توفر نفس مستوى الأداء دون أن تعاني من أخطاء الذاكرة.

وقد أدى ذلك إلى ازدهار شعبية هذه اللغة بين مطوري البرمجيات وممولي المشاريع.

 

ما هي استخدامات لغة «Rust»؟

«تعتبر الشركات، من مايكروسوفت إلى أمازون، لغة البرمجة «Rust» مفتاحًا لمستقبلها. فقد استخدمت منصة الدردشة «Discord» لغة «Rust» لتسريع نظامها، وتستخدمها «Dropbox» لمزامنة الملفات مع جهاز الكمبيوتر الخاص بك، بينما تستخدمها «Cloudflare» لمعالجة أكثر من 20% من إجمالي حركة المرور على الإنترنت... حتى الحكومة الأمريكية تروج بشغف للبرمجيات المكتوبة بلغة «Rust» كوسيلة لجعل إجراءاتها أكثر أمانًا.»كلايف طومسون، مجلة MIT Technology Review.

تُستخدم لغات البرمجة منخفضة المستوى، مثل «Rust»، لكتابة البرامج التي تعمل عليها الأجهزة التي لا تحتوي على نظام تشغيل مثل «ويندوز» أو «لينكس». ويشمل ذلك كل شيء بدءًا من أجهزة غسيل الكلى وصولاً إلى آلات تسجيل النقد و... المصاعد.

تُستخدم لغات النظام أيضًا في البرامج التي تحتاج إلى التواصل مع الأجهزة، مثل أنظمة التشغيل. وقد كُتبت نوى أنظمة التشغيل «ويندوز» و«لينكس» و«ماك أو إس» جميعها في الماضي بلغة «سي» – على الرغم من أن الانتقال إلى لغة «راست» أصبح الآن اتجاهًا رئيسيًّا لدى أكبر شركات التكنولوجيا.

لم يكن مفاجئًا أن تكون «موزيلا» أول شركة برمجيات كبرى تستخدم على نطاق واسع اللغة البرمجية الجديدة من المستوى المنخفض التي ابتكرها أحد مهندسيها، ثم طورها فريق من «موزيلا». وقد تنحى «هوار» نفسه عن المشروع الذي أطلقه في عام 2013، واثقًا من أن فريق «موزيلا» ومجتمع البرمجيات مفتوحة المصدر الذي كان ينمو بسرعة حول لغة «راست» سيواصلان تطويره.

أدركت «موزيلا» الإمكانات التي تنطوي عليها لغة «روست» في مساعدتها على تحسين محرك متصفح هذه الشركة المفتوحة المصدر. ومن المعروف أن المتصفحات هي أنظمة برمجية معقدة تتيح فرصًا متعددة لظهور أخطاء في الذاكرة.

في عام 2016، أطلقت «موزيلا» محرك المتصفح الجديد «سيرفو» (Servo)، الذي تمت برمجته بلغة «روست» (Rust). وفي عام 2017، تم ترحيل الجزء المسؤول عن عرض CSS في متصفح «فايرفوكس» إلى لغة «روست»، مما أدى إلى تحسن كبير في أداء المتصفح.

 

  • استخدمت شركة «ميتا» لغة البرمجة «روست» لإعادة تصميم البرامج التي يستخدمها مهندسوها لإدارة شفراتهم البرمجية الداخلية.
  • استخدمت Dropbox لغة البرمجة Rust لتطوير إصدار جديد من البرنامج الذي يعمل على مزامنة الملفات بين أجهزة المستخدمين ومساحة التخزين السحابية الخاصة بالشركة.
  • أعاد مهندسو «ديسكورد» كتابة أجزاء كبيرة من كود التطبيق بلغة «Rust»، بعد أن انتقلوا من لغة «Go» (التي تستخدم مكونًا لجمع القمامة)، وحققوا بذلك سرعة أعلى بعشرة أضعاف.
  • أنشأت AWS فريقًا متخصصًا في لغة Rust في عام 2022 بهدف كتابة كود أكثر أمانًا وسرعة لمنصتها وأدواتها الخاصة بالحوسبة السحابية. وتوصلت إحدى مجموعات البحث التابعة لـ AWS إلى أن الكود المكتوب بلغة Rust يستهلك كهرباءً أقل بمقدار الضعف مقارنةً بالكود المكتوب بلغة Java. ومن شأن ذلك أن يضاعف سعة مراكز البيانات أو يتيح إنشائها في المناطق الحضرية.

 

لا يقتصر استخدام لغة «Rust» على عمالقة التكنولوجيا فحسب. بل إنها أصبحت جزءًا أساسيًا من البنية التقنية لأجهزة إنترنت الأشياء، بما في ذلك المركبات الحديثة وقطاع الطيران والفضاء.

في منشور مدونتنا حول حالات استخدام لغة «Rust»، يمكنك التعرف على المزيد عن التطبيقات المتنوعة لهذه اللغة البرمجية في مجالات مثل تطوير الويب، وتطوير الألعاب، والشبكات، وما إلى ذلك، وكذلك معرفة الشركات الكبرى التي تستخدمها.

 

لغة «Rust» لتطوير البلوكشين

تحظى هذه اللغة بشعبية كبيرة أيضًا في مجال تطوير البلوكشين، وتُستخدم لبرمجة العقود الذكية وسلاسل البلوكشين نفسها، بما في ذلك «سولانا» و«بولكادوت» و«هايبرليدجر فابريك» — وهي سلسلة بلوكشين خاصة للمؤسسات طورتها مجموعة شركات بقيادة مؤسسة لينكس. وإجمالًا، هناك ما يزيد عن 50 سلسلة بلوكشين وإطار عمل للبلوكشين تم إنشاؤها باستخدام لغة «روست» أو تدعمها.

 

تحظى لغة «Rust» بشعبية كبيرة بين المطورين

قد لا تكون لغة «Rust» من بين لغات البرمجة الأكثر استخدامًا، حيث لا يتجاوز عدد المطورين الذين يستخدمونها 12٪ بقليل. لكنها تُعدّ «الأكثر إثارة للإعجاب» من بين جميع اللغات التي شملها استطلاع «Stack Overflow Developer Survey 2023»، وهو لقب تحتفظ به منذ 8 سنوات حتى الآن.

تستند هذه الفئة إلى النسبة المئوية للمطورين الذين يستخدمون لغة برمجة معينة ويرغبون في الاستمرار في البرمجة بها. 80% من المطورين الذين يستخدمون لغة «Rust» يرغبون في الاستمرار في استخدامها.

كما أن شعبيتها تتزايد بسرعة فائقة. يشير تقرير «حالة مجتمع المطورين» الصادر عن SlashData إلى أن عدد مطوري لغة Rust بلغ حوالي 2.8 مليون مطور في عام 2023. وقد تضاعف هذا العدد ثلاث مرات تقريبًا خلال العامين الماضيين.

 

يستخدم 12% من مطوري البرمجيات لغة «Rust» بشكل فعّال

 

رسم بياني يوضح لغات البرمجة مرتبة حسب الشعبية استنادًا إلى النسبة المئوية لمطوري البرمجيات الذين يستخدمونها

 

يُشير تقرير «أفضل لغات البرمجة لعام 2022» الصادر عن GitHub إلى أن لغة Rust كانت لغة البرمجة التي شهدت أكبر نمو في الاستخدام خلال العام الماضي، حيث ارتفعت بنسبة 50.5٪. وهذا يعكس تجربتنا في تزايد الطلب على خدمات التطوير والتوظيف المتعلقة بلغة Rust.

كما صنّف موقع Github لغة «Rust» في المرتبة الثانية بين لغات البرمجة الأسرع نموًّا خلال الفترة من 2021 إلى 2022، حيث سجلت زيادة في استخدامها بنسبة 50.5%.

 

جدول يوضح لغات البرمجة حسب النسبة المئوية لنمو استخدامها بين عامي 2021 و2022

المصدر: GitHub

 

ليس الجميع يحبون لعبة «Rust»

على الرغم من أن هذه المقالة قد تحولت إلى ما يشبه «تعبيرًا عن الحب» تجاه لغة «Rust»، وأن مطوري «Rust» لدينا في K&C يحبون استخدام هذه اللغة، إلا أنه من المهم تحقيق بعض التوازن — فليس الجميع يحبون «Rust».

قد يكون من الصعب حتى على المطورين ذوي الخبرة تعلم القواعد الصارمة لهذه اللغة والتكيف معها، مما يسبب الإحباط. فهي ليست من اللغات التي يسهل تعلمها.

شارك أحد المطورين المتمرسين إحباطه من لغة «Rust» على موقع «Reddit»، حيث قال:

«أعمل في مجال البرمجة منذ ما يزيد عن ثلاثين عامًا. وأنا أجيدها (في العادة). وقد أخبرني العديد من زملائي في العمل ومدرائي أنني سريع جدًّا. حسنًا، لكن ليس في لغة Rust!»

"والآن، ها أنا ذا، مجبر على استخدام لغة Rust في أحد مشاريع العمل. الأمر أكثر من مؤلم."

«بشكل عام، لغة Rust هي كابوس. فهي مفرطة في التفاصيل، ومعقدة، وصعبة القراءة، وبطيئة في الترجمة، كما أن مسألة «دورات الحياة» (lifetimes) هي حقًّا مزحة قاسية. ونادرًا ما أسفر البحث في جوجل عما أحتاجه عن إجابات مفيدة.»

 

«أنا مقتنع تمامًا بأن كل من يدعي أن لغة «Rust» رائعة إما يكذب على نفسه أو على الآخرين، أو أنها مجرد هواية بالنسبة له. لا ينبغي أن يكون تعلم لغة برمجة بهذه الصعوبة. تبدو لغة «Rust» وكأنها خطوة كبيرة إلى الوراء مقارنة بلغة «Java».»

لقد تجاهلت تفاصيل المشكلات التقنية التي كان المساهم يواجهها — لمزيد من التفاصيل، يرجى اتباع الرابط المؤدي إلى سلسلة المناقشة أعلاه. وهناك أيضًا جهد مجتمعي مثير للإعجاب لمساعدة المساهم على فهم ما يواجهه من صعوبات — على الرغم من لغته الانتقادية الحادة إلى حد ما.

يبدو أن المشكلات التي واجهها المطور تتلخص في مدى قوة آراء لغة «Rust» مقارنةً باللغات الأخرى التي عمل بها المطور سابقًا، وهما «C» و«Java».

هناك رد واحد يلخص الأمر:

«أنت تحاول كتابة الكود بطريقة تختلف جذريًّا عن الطريقة التي تريدها لغة Rust، وهذا هو جوهر الأمر. ابدأ بخطوات صغيرة، وتعلم ما تريده منك...»

قد يعارض المطورون الذين لا يرغبون في إدراك الحاجة إلى تكييف أسلوب البرمجة الذي اعتادوا عليه عند استخدام لغات أخرى القواعد الصارمة التي تفرضها لغة «Rust».

هذا الفيديو الساخر بعنوان«10 أسباب لعدم استخدام Rust» من قناة «fasterthanlime» على يوتيوب مسلٍّ، وإن كان متحيزًا بعض الشيء:

 

تكاليف تطوير لغة «Rust» ورواتب مطوري «Rust»

قد لا يحصل مطورو لغة «Rust» على أعلى الرواتب في هذا المجال، لكنهم يحتلون مراكز متقدمة في سلم الرواتب، حيث يبلغ متوسط الراتب السنوي 87,102 دولارًا. ويرتفع هذا الرقم إلى 105,000 دولار في الولايات المتحدة الأمريكية، بينما يقترب من 55,000 دولار في أسواق الاستعانة بمصادر خارجية في مجال تكنولوجيا المعلومات، مثل أوكرانيا.

 

رسم بياني يوضح لغات البرمجة، بما في ذلك لغة «Rust»، مرتبةً حسب متوسط راتب المطورين

 

وبالمقارنة، يبلغ متوسط الراتب السنوي لمطور جافا سكريبت 74,034 دولارًا، بينما يبلغ راتب مطوري جافا 72,701 دولارًا.

تعكس الرواتب المرتفعة نسبيًّا لمطوري لغة «Rust» كلاً من الطلب الحالي على هذه اللغة، وحقيقة أن القواعد الصارمة التي تحكم طبيعتها ذات الأنواع القوية تجعل تعلمها يمثل تحديًّا.

ظلت رواتب مطوري لغة البرمجة «Rust» مستقرة خلال العام الماضي، حيث كان المتوسط المالي في عام 2023 مطابقًا تقريبًا لما كان عليه في عام 2022.

 

رسم بياني يوضح التغير في متوسط الراتب السنوي لمطوري لغة «Rust» بين عامي 2022 و2023

المصدر: استطلاع StackOverflow للمطورين لعام 2023

 

للحصول على تفصيل وتحليل شاملين لرواتب وأجور مطوري لغة «Rust» عبر مجموعة من المناطق الجغرافية الدولية، بدءًا من الاقتصادات ذات الأجور المرتفعة وصولاً إلى أسواق المواهب التقنية في مجال الاستعانة بمصادر خارجية لتكنولوجيا المعلومات، سواء في المناطق القريبة أو البعيدة – نطاقات الرواتب والأجور الدولية لمطوري لغة «Rust»

قد يعني ارتفاع تكاليف توظيف المواهب التقنية الماهرة في لغة «Rust»، على سبيل المثال، مقارنةً بلغتي «Java» و«Python»، ارتفاع الفاتورة الشهرية للرواتب أو تكاليف الاستعانة بمصادر خارجية في مجال تكنولوجيا المعلومات على المستوى السطحي. ومع ذلك، فإن مسألة ما إذا كان التطوير بلغة «Rust» «أكثر تكلفة» مقارنةً بالبدائل الأخرى هي معادلة أكثر تعقيدًا بكثير من ذلك.

 

  • قد يعني التطوير بلغة «Rust» تقليل الاستثمار في الاختبار وضمان الجودة بشكل كبير، لأن الكود آمن بطبيعته وخالٍ من الأخطاء.
  • يُعد النظام البيئي لـ Rust، الذي يشمل المكتبات والأدوات ومجتمع مستخدميه، أكثر ثراءً بكثير من نظيره في لغة C++، وهو ما يُسرّع عملية التطوير ويساعد في تحسين أداء البرمجيات – وقد سبق أن ذُكر أن أبحاث AWS كشفت أن مراكز البيانات التي تعمل برموز Rust تستهلك نصف كمية الكهرباء التي تستهلكها المراكز الأخرى التي تعمل بلغة Java – وهو توفير يمثل مبالغ ضخمة، خاصةً عندما يتراكم مع مرور الوقت.
  • فالبرمجيات الأكثر كفاءة إما توفر المال أو تدر المزيد منه — وإذا حققت لغة «Rust» ذلك، فإن ارتفاع رواتب فريق التطوير بشكل طفيف خلال مرحلة التطوير الأولية سيكون بمثابة قطرة في محيط.

 

إن ما إذا كان التطوير بلغة «Rust» سيكلف أكثر أو أقل من اختيار لغة بديلة، فسيتوقف ذلك إلى حد كبير على سياق البرنامج المراد برمجته والغرض من استخدامه. لكن نقاط قوة «Rust» تعني أن رواتب المطورين، في معظم الحالات، لن تكون على الأرجح المعيار الذي يُحكم به على الجدوى التجارية لهذه اللغة.

 

تعلم لغة «Rust» – ما مدى صعوبة ذلك، وهل يمكن للمطورين المبتدئين أو ينبغي عليهم البدء بلغة «Rust» كلغة برمجة أولى لهم، والموارد التعليمية المتاحة

«تشتهر لغة Rust بكونها تتمتع بأحد أكثر منحنيات الصعوبة الأولية انحدارًا. ومع ذلك، فإن ميزة المنحنيات شديدة الانحدار هي أنها تصل بك إلى مستويات أعلى بسرعة أكبر. كما أن المنحنى يتسطح كثيرًا ويظل مستويًا إلى حد كبير حتى الوصول إلى مستوى الخبراء. وهذا على عكس معظم اللغات الأخرى، التي تزداد صعوبةً كلما ازدادت خبرتك.»kohugali، أحد المساهمين في Reddit.

 

يُعتبر لغة «Rust» عمومًا لغة أصعب من معظم اللغات الأخرى بالنسبة للمطورين، وذلك بسبب صعوبة قواعدها النحوية ومنحنى التعلم الحاد. ومن المعروف أن اللغات منخفضة المستوى صعبة بطبيعتها، كما أن القواعد الصارمة التي تتسم بها لغة «Rust» ونهجها المختلف في التعامل مع مشكلات معينة يجعل إتقانها أكثر صعوبة.

تفترض معظم الكتب التي تتناول لغة «Rust» أن القارئ يتمتع بخبرة سابقة في البرمجة، كما أنها أقصر من الكتب الضخمة التي تتناول لغات مثل «Java» و«C» و«C++».

ويعود ذلك أيضًا إلى الطبيعة الشاملة للغة «Rust».

في حين أن الكتب التي تتناول لغات البرمجة الأخرى عادةً ما تتناول تفاصيل كيفية عمل عناصر معينة مثل متغيرات القوالب، وأسماء مستعارة لأنواع القوالب، والوراثة، والوراثة الافتراضية، وما إلى ذلك، فإن نظيراتها في لغة Rust تتبع عادةً نهجًا مختلفًا — على سبيل المثال، تشرح كيفية عمل السمات (traits)، ثم تضع على عاتق المطور مسؤولية التفكير في كل ما عدا ذلك من منظور السمات، واستنباط النهج المناسب انطلاقًا من ذلك.

 

وكما يعلق أحد المشاركين الآخرين على موقع Reddit:

"النتيجة النهائية: بعد هذه الدورة التي تستغرق 4-5 ساعات، أو ربما 10 ساعات، ستكتسب فهمًا جيدًا للأساسيات... لكن دون القدرة على استخدامها بفعالية!"

"لأنه، نعم، لقد تعلمت جميع عناصر اللغة، لكن لاستخدامها عليك ربطها ببعضها بطريقة معينة... لكن هذا لا يُعتبر جزءًا من «تعلم لغة Rust»!"

ويضيف كوهوجالي:

«لا توجد وثيقة شاملة عن لغة Rust تغطي كل شيء.»

«وهذا يعكس الطريقة التي تم بها بناء نظام Rust البيئي. فقد صُممت Rust في عصر الإنترنت — فهي تتمتع بمكتبة قياسية صغيرة الحجم تُكملها أداة إدارة حزم قوية ونظام بناء، بالإضافة إلى سجل مركزي غني بالحزم. وعادةً ما تقع مسؤولية توفير التعليم والتوثيق الشاملين في مجال معين على عاتق القائمين على صيانة الحزم في ذلك المجال.»

«أصبحت المكتبات القياسية الضخمة التي تضم كل شيء تحت الشمس والكتب الشاملة السميكة شيئًا من الماضي إلى حد كبير. ففي عام 2023، تبحث في جوجل عما تريد معرفته، وتتبع الروابط التشعبية لمعرفة المزيد.»

 

نصيحة لتعلم لغة Rust – أعد كتابة الكود الذي كتبته سابقًا بلغات برمجة أخرى من المستوى المنخفض

من النصائح التي يُشار إليها كثيرًا لمن يتعلمون لغة «Rust» أن يقوم المطور بإعادة كتابة الكود الذي سبق له كتابته بلغات برمجة أخرى منخفضة المستوى مثل «Python» أو «Java» أو «C» أو «C++» أو «Go».

سيُظهر ذلك أولاً مدى فعالية لغة «Rust» في زيادة سرعة أحد البرامج. ثانياً، وبما أن المطور قد حدد بالفعل المسار المنطقي لتحقيق الهدف، فيمكنه التركيز حصريًّا على كيفية ترجمة العمل الحالي إلى لغة «Rust».

 

كم من الوقت يستغرق تعلم لغة «Rust» إذا كنت قد أتقنت بالفعل لغات برمجة أخرى؟

لا توجد إجابة مباشرة على هذا السؤال، لأن الأمر يختلف من شخص لآخر ويتأثر باللغات الأخرى التي سبق تعلمها ومدى إتقانها.

ومع ذلك، هناك قاعدة عامة تقريبية للغاية مفادها أن فترة تتراوح بين 3 و6 أشهر من التعلم والبرمجة بلغة «Rust» عادةً ما تكون كافية لمطور متمرس بالفعل ليصل إلى مستوى متوسط قوي ويكون قادرًا على العمل في مشاريع تجارية.

 

هل تُعد لغة «Rust» لغة برمجة جيدة لتكون أول لغة يتعلمها المرء؟

هل ينبغي للمبتدئ تمامًا في مجال تطوير البرمجيات أن يختار لغة «Rust» لتكون لغته الأولى؟ هذا سؤال أثار جدلاً في منتديات مثل منتدى مستخدمي «Rust» نفسه وم وقع «Reddit».

لا توجد، بالطبع، إجابة قاطعة، وهناك آراء متباينة. ويُجمع على أن الانتقال مباشرةً إلى تعلم لغة «Rust» سيشكل تحديًا كبيرًا، لكنه ليس مستحيلًا — على الرغم من أن البدء بلغة «Python» يمكن اعتباره خطوة وسيطة معقولة.

من عيوب بدء مسيرة مهنية في مجال التطوير باستخدام لغة «Rust» أنه قد يكون من الأصعب الحصول على وظيفة أولية كمطور مبتدئ مقارنة بالفرص المتاحة للغات مثل «Python» و«JavaScript».

ويعود ذلك جزئيًا إلى أن عدد المشاريع التي تستخدم لغتي JS وPython أكبر ببساطة، وجزئيًا إلى أن لغة Rust تُستخدم في الغالب في تطوير برامج ذات أهمية بالغة وغالبًا ما تكون معقدة — وهو المجال الذي تتألق فيه. وغالبًا ما تتألف الفرق التي تعمل على هذا النوع من المشاريع بالكامل من مطورين ذوي خبرة.

من مزايا تعلم لغة «Rust» كمطور مبتدئ أنه على الرغم من أنها قد تمثل تحديًا أكبر مقارنة ببعض اللغات الأخرى، إلا أنه من الأصعب بكثير ارتكاب الأخطاء عند البدء في العمل على مشاريع حقيقية — فالمُترجم لن يسمح لك بذلك.

 

موارد تعليمية لتعلم لغة البرمجة «Rust»

جون جينجسيت

كتاب – «Rust» لمستخدمي Rust

دروس تعليمية على يوتيوب

 

آموس وينجر

قناة «fasterthanlime» على يوتيوب المخصصة لبرمجة لغة «Rust» – مقاطع فيديو عن برمجة لغة «Rust» لا تتطلب معرفة مسبقة

مقالات مدونة مطولة حول موضوعات تطوير لغة «Rust»، بعضها تقني وبعضها مفاهيمي – https://fasterthanli.me/

 

لا توجد نصوص نموذجية

قناة يوتيوب عن لعبة Rust – بدون نصوص نمطية

 

GitHub Copilot

يمكن لـ GitHub Copilot، وهو أداة برمجة ثنائية مدعومة بالذكاء الاصطناعي ، أن تساعدك في تعلم وصقل أساسيات لغة Rust أثناء العمل من خلال تقديم اقتراحات مخصصة للكود، مما يقلل من الوقت الذي تقضيه في البحث عن الوثائق والنصائح من مجتمع Rust.

 

ما الذي يخبئه المستقبل لـ «Rust»؟

شهدت لغة «Rust» طفرة هائلة في شعبيتها خلال السنوات القليلة الماضية، وذلك بعد أن سجلت بالفعل ارتفاعًا ملحوظًا في معدل استخدامها عقب إصدار الإصدار 1.0 من «Rust» في عام 2015. فهل من المرجح أن يستمر هذا الاتجاه؟

تشير التوقعات إلى أن الإجابة على هذا السؤال هي «نعم».

لقد أشرتُ سابقًا إلى العديد من التقنيات الرائجة التي تجعل من «روست» الخيار الطبيعي لها بفضل مزاياها كلغة برمجة، بما في ذلك أجهزة إنترنت الأشياء (IoT) وتكنولوجيا البلوك تشين. كما أن تزايد أهمية أمن البرمجيات كعامل ملحٍ في مشاريع البرمجيات التجارية سيشجع على استخدامها بشكل أكبر.

إن شعبية لغة «Rust» لدى شركات «التكنولوجيا الكبرى» — التي رأيناها تقوم بنقل جزء كبير من برامجها الحيوية إلى هذه اللغة — تجعلها لغة مضمونة للمستقبل، وهو عامل تجاري مهم للمشاريع عند اتخاذ القرارات المتعلقة بمجموعة التقنيات المستخدمة.

كما أن لغة «Rust» أصبحت تُستخدم الآن بشكل متزايد في تطوير الويب، حيث تُستخدم لكتابة واجهات برمجة التطبيقات (APIs) ومكونات الخلفية، ويبدو أن تأثيرها على أكبر فئة من البرمجيات في تزايد مستمر.

 

إذا كنت تخطط لمشروع ما وتفكر في استخدام لغة Rust كعنصر أساسي في مجموعة التقنيات المستخدمة، فلا تتردد في الاتصال بنا. تتمتع شركة K&C بخبرة تزيد عن 20 عامًا كمزود لخدمات الاستعانة بمصادر خارجية في مجال تكنولوجيا المعلومات (near-shore) وكوكالة لتطوير البرمجيات المخصصة.

نقوم بتوظيف مطوري لغة Rust وغيرهم من المتخصصين في تكنولوجيا المعلومات المقيمين في مناطق قريبة من الساحل في أوروبا الشرقية وخارجها، ونقدم 3 مستويات أسعار حسب المنطقة الجغرافية لتلبية الاحتياجات المختلفة للميزانيات.

تواصل معنا!

مقالات المدونة المميزة