عندما يتعلق الأمر بلغات البرمجة ، فهناك العديد من اللغات للاختيار من بينهم. ولكن لتطوير التطبيقات بسرعة، وباستخدام كود نظيف وسهل الفهم، يلجأ العديد من المطورين إلى لغة البرمجة روبي – Ruby.
روبي هي لغة برمجة شائعة للغاية تُستخدم في العديد من الأشياء، من تطوير تطبيقات الويب إلى تحليل البيانات. إنها أيضًا تعد لغة سهلة الاستخدام جدًا مقارنةً بلغات البرمجة الأخرى، ومن السهل جدًا تعلمها إذا كنت جاهزا لبذل الجهد الكافي.
ربما يكون أفضل ما في الأمر هو أن مهارات برمجة روبي مطلوبة بشدة في السوق، والقدرة على البرمجة باستخدام Ruby يمكن أن تجعلك مبرمجًا متعدد الاستخدامات ومفيدًا للغاية.
ولكن إذا كانت هذه هي المرة الأولى التي تسمع فيها عن روبي ، فقد تشعر ببعض من الارتباك، حيث يوجد ثروة من المعلومات حول البرمجة على الإنترنت، ولكن ليست كلها مفيدة. من أين يجب أن تبدأ إذا كنت مجرد مبتدئ تحاول تعلم روبي؟
في حين أن هناك الكثير من الموارد على الويب لإتقان برمجة روبي، فإن هذه المقالة ستمنحك مقدمة قوية. استمر في القراءة لمعرفة ماهية روبي واستخداماتها.
روبي هي لغة نصية (Scripting language) مصممة لتطوير مواقع وبرمجيات الويب (front-end and back-end web development)، بالإضافة إلى تطبيقات أخرى مماثلة. إنها لغة قوية ومكتوبة ديناميكيًا (Dynamically-typed) وكائنية التوجه (Object-oriented)، مع بنية عالية المستوى (High-level syntax) تجعل البرمجة بها تبدو وكأنها كتابة باللغة الإنجليزية. في الواقع، يشعر البعض أنهم يمكنهم فهم كود روبي عمليًا قبل تعلم كيفية البرمجة من الأساس. بالإضافة الى كونها كائنية التوجه وكونها لغة نصية، فهي أيضا مفتوحة المصدر (Open-source) ومجانية.
الفرق بين اللغة النصية واللغة البرمجية هو أن اللغة النصية لا تحتاج الى تحويل برمجي (Compilation) ويمكن تفسيرها وتنفيذ أوامرها أثناء التشغيل (Run-time) وأيضا لا يمكن تحويلها إلى ملف قابل للتنفيذ (Executable file)، بينما تتم عملية التحويل البرمجي قبل التشغيل في لغات البرمجة، كما أنها قادرة على إنشاء ملف قابل للتنفيذ. من أمثلة اللغات النصية لغة جافاسكريبت ولغة بايثون، أما من أمثلة لغات البرمجة لغة جافا ولغة C++
الفرق بين لغات البرمجة المكتوبة ديناميكيا والمكتوبة ستاتيكيا (Statically-typed) هو أن لغات البرمجة المكتوبة ديناميكيا لا تحتاج الى تعريف أنواع المتغيرات أثناء الكتابة حيث فحص الأنواع يتم في التشغيل ومن مميزات هذا هو سرعة وسهولة الكتابة. أما اللغات المكتوبة ستاتيكيا، فهي تحتاج الى تعريف أنواع المتغيرات قبل التشغيل ومن مميزات هذا هو أن كل أنواع الفحص يتم تنفيذها من قبل المترجم (Compiler) ونتيجة هذا أو أنه يمكن تغاضي العديد من الأخطاء، كما أن هذه الإستراتيجية في كتابة الأكواد تمنح المبرمج تحكما جيدا في النص البرمجي. في الأغلب، نجد أن اللغات النصية تكون في العادة مكتوبة ديناميكيا، أما اللغات البرمجية تكون مكتوبة ستاتيكيا.
تم اختراع روبي بواسطة يوكيهيرو "ماتس" ماتسوموتو – وهو مبرمج ياباني – في منتصف التسعينيات. كان ماتسوموتو خبيرًا في العديد من لغات البرمجة في ذلك الوقت، بما في ذلك Perl وEiffel وSmalltalk وLispوAda، وعند إنشاء روبي، حاول ماتس الجمع بين ما يعتقد أنه أفضل العناصر في كل لغة من هذه اللغات.
تم إصدار روبي علنًا في عام 1995، لكنها لم تحقق قبولًا جماعيًا حتى وقت لاحق في عام 2006. ومنذ ذلك الحين، جذبت روبي قاعدة مستخدمين عالمية ضخمة، حيث استخدمها مبرمجون من العديد من الصناعات المختلفة لإنشاء بعض من أفضل التطبيقات في العالم . حتى أن هناك مجموعات كبيرة من المبرمجين المتفانين الذين يجتمعون في المدن الكبرى لحضور المؤتمرات المتعلقة بروبي.
Ruby هي لغة نصية للبرمجة، بينما Ruby On Rails هي إطار عمل الذي يضع لغة روبي تحت الأضواء، فبدون هذا الإطار، ستفقد لغة روبي الكثير من قيمتها، حيث تم استخدام هذا الإطار في تطوير العديد من مواقع الويب مثل GitHub و Twitch و SoundCloud و Twitter وغيرهم. ومن الوارد أن روبي قد اكتسبت شهرتها بسبب شهرة إطار العمل Ruby On Rails حيث أن هذا الإطار هو أيضا مفتوح المصدر ويحتوي على العديد من الأوامر الجاهزة للتواصل والتعامل مع البيانات والملفات. اذن يمكن تلخيص هذه الفقرة بأن روبي هي "لغة" بينما هي Ruby On Rails هي إطار، وأيضا تمت كتابة لغة روبي بلغة C، بينما تم كتابة Ruby On Rails بلغة Ruby نفسها.
إحدى اللغات التي تُقارن بها روبي في أغلب الأحيان هي لغة بايثون. يوجد الكثير من العوامل المشتركة بين روبي وبايثون ويمكن استخدامهما للعديد من الأغراض نفسها، الأمر الذي يجعله صعبا على المطورين الذين يقررون اللغة التي يجب تعلمها أو اللغة التي يجب استخدامها في مشروع معين. تعتبر كلتا اللغتين لغات نصية ديناميكية عالية المستوى، كما أنهما تمتازان بسهولة القراءة والكتابة، ولكن هناك بعض الاختلافات التقنية المهمة بينهما. تستخدم بايثون إطار العمل Django بينما تستخدم روبي اطال العمل Ruby On Rails، تمتاز فلسفة بايثون "بطريقة واحدة فعالة لفعل وظيفة ما" بينما تمتاز فلسفة روبي "بالعديد من الطرق لفعل وظيفة ما"، كما تدعم بايثون العديد من بيئة تطوير متكاملة (Integrated Development Kit) بينما تدعم روبي بيئة تطوير واحدة وهي EclipseIDE فقط. يجد بعض المبرمجون أن لغة روبي أصعب من لغة بايثون في عملية اكتشاف الأخطاء البرمجية، ولكنهم أيضا يجدونها أكثر مرونة عموما. تستخدم لغة بايثون بشكل واسع في المجالات العلمية والأكاديمية، بينما الاستخدام الأكبر للغة روبي ينتمي الى تطوير مواقع الويب.
مميزات لغة روبي:
لغةٌ ديناميكية سهلة وسريعة في الكتابة.
لغة مفسرة (Interpreted) أي أنها تقوم بتنفيذ الأوامر سطرا بسطر.
لغة مجانية وسهلة التعديل والانتشار لأنها مفتوحة المصدر.
يوجد بها العديد من المكتبات البرمجية المجانية والمتاحة بسهولة للمجتمع البرمجي.
تقديم ميزة فريدة من نوعها يشار لها اختصارًا بـ ROR، أو Ruby on Rails، وتمتاز بأنها وسيلةٌ أو إطار ويب يتم استخدامه من قبل المبرمجين لتسهيل تطوير مواقع الويب.
عيوب لغة روبي:
من عيوب لغة روبي أن بسبب كونها لغة نصية ديناميكية، فعلى الرغم من سهولتها الشديدة في الكتابة والقراءة، إلا أنها لا تعطي تحكما عاليا في البرمجة كما أنها لا تستطيع إنشاء الملفات القابلة للتنفيذ. من العيوب الحالية أيضا للغة روبي هو عدم شهرتها مقارنة بباقي اللغات مثل بايثون وجافاسكريبت، كما أنها ليست مستخدمة على نطاق واسع في عالمنا العربي، ولكن من المحتمل أن تنتشر أكثر في السنين القادمة نظرا لاستخداماتها المعدودة وسهولتها الشديدة في الكتابة.
تعد لغة روبي لغة للأغراض العامة (General-purpose language)، فيمكنها تطوير العديد من الوظائف، فاستخدامها الأكثر هو في برمجة تطبيقات الويب، ولكن هذا لا يعني أنها مقتصرة على ذلك. الاتي هو استخدامات لغة روبي:
تطوير مواقع الويب: توفر Ruby on Rails لمطوري الويب كل ما يحتاجونه لإنشاء تطبيقات ويب. تتيح ROR النصوص التقليدية التي تحدد بنية كل تطبيق من تطبيقات الويب المختلفة، بحيث يمكن للمطورين قضاء وقت أقل في إنشاء مشاريعهم. يحتوي هذا الإطار على مولدات أكواد يمكنها إنشاء أجزاء من تطبيقك بأوامر بسيطة، لذلك يكتب المطورون أكواد أقل.
انشاء المواقع الثابتة (Static Websites): في موقع الويب الثابتة، يتم تحميل جميع صفحات الويب في نفس الوقت. يعمل هذا على تحسين سرعات تحميل صفحات الويب ويسمح بنشر موقع الويب بسرعة وسهولة
التشغيل الالي والأتمتة: من الأمثلة الشائعة على براعة التشغيل الآلي في Ruby هو Chef، وهو تطبيق DevOps ينظم عمليات تثبيت التطبيقات وتكوينها. يمكنك أيضًا كتابة نصوص Ruby السريعة بنفسك لإجراء النسخ الاحتياطية، فرز الصور، تنزيل المقاطع الصوتية، إعداد التقارير، والمهام الأخرى التي يصعب القيام بها يدويًا.
خوادم الويب: يمكنك أيضًا استخدام Ruby لإنشاء خوادم الويب. Passenger و Unicorn و Puma هي خوادم ويب مكتوبة بلغة Ruby. هذه الخوادم تعالج طلبات HTTP، ويرسلونها لتطبيقات الويب الخلفية، ثم يتعاملون مع استجابة HTTP المرسلة من التطبيق. تعمل خوادم تطبيقات الويب Ruby جنبًا إلى جنب مع أطر تطوير الويب المكتوبة بلغة Ruby.
معالجة البيانات: تعتبر Ruby أيضًا لغة رائعة لمعالجة البيانات وتنظيفها وتصفيتها. تعد الوظائف المضمنة في روبي مثل map وreduce وselect أدوات فعالة تستخدم لحل العديد من مشكلات معالجة البيانات.
البحث في الويب (Web Scraping): لدى Ruby مجموعة متنوعة من الحزم المتاحة التي تجعل استخراج البيانات من صفحات الويب أمرًا سهلاً. تُستخدم مكتبات Ruby مثل Vessel للزحف إلى صفحات الويب وتنزيلها. يتم بعد ذلك استخدام Nokogiri، مكتبة Ruby الشهيرة الأخرى، لتحليل أكواد HTML من الصفحات التي تم الزحف إليها لاستخراج أجزاء معينة من الصفحة بطريقة منظمة لجعلها قابلة للاستخدام في تحليل البيانات.
تطوير الألعاب: يمكنك كتابة ألعاب ثنائية الأبعاد مشتركة بين الأنظمة الأساسية بلغة Ruby، كما يمكنك استخدام مكتبات Ruby مثل Gosu أو Ruby2D لإنشاء ألعاب أساسية تعمل على Linux أو macOS أو Windows.
يمكنكم تعلم المزيد عن لغة روبي من خلال التسجيل في الدورة المعتمدة لتطوير تطبيقات الويب باستخدام لغة Ruby باللغة العربية والتي تقودك من الصفر للإحتراف.