سنبدأ اليوم سلسلة جديدة هدفها تعليم قراء أبجدية التقنية الأعزاء أساسيات البرمجة بلغة روبي. السلسلة موجهة لمن لا يعرف الشيء الكثير عن هذه اللغة ويريد معرفة المزيد عنها وتعلم أساسياتها. يفضل أن يكون عندك خلفية – ولو بسيطة – عن البرمجة بشكل عام، والبرمجة الغرضية التوجه بشكل خاص. لكن حتى لو لم تكن تعلم شيئا عن البرمجة، فلا داعي للقلق، لأن روبي سهلة التعلم إلى حد بعيد.
بالإضافة إلى هذه التدوينة، تتكون السلسلة من التدوينات التالية:
- تعلم أساسيات البرمجة بلغة روبي – أهلاً بالعالم!
- تعلم أساسيات البرمجة بلغة روبي – ثوابت، متغيرات، وأنواع بيانات
- تعلم أساسيات البرمجة بلغة روبي – بنى البيانات، بعض التكرار، وقليل من المنطق
- تعلم أساسيات البرمجة بلغة روبي – البرمجة غرضية التوجه
- تعلم أساسيات البرمجة بلغة روبي – إرشادات لما بعد اﻷساسيات
تهدف هذه التدوينة إلى تقديم نظرة عامة عن اللغة وميزاتها، وتهيئة الطريق لبقية أجزاء السلسلة.
أولا: تعريف بلغة روبي وتاريخها
روبي (Ruby) هي لغة برمجة مفتوحة المصدر، صممها وطورها في بادئ الأمر الياباني Yukihiro Matsumoto (الملقب بـMatz). بدأ Matz العمل عليها عام 1993، ثم أطلق أول إصدار تجريبي منها للعموم عام 1995. اقتصرت شعبية روبي في البداية على الناطقين باللغة اليابانية لأن الوثائق كانت مكتوبة بها، ثم بدأت تنتشر على نطاق أوسع مع إنشاء مجموعة ruby-talk البريدية الناطقة باللغة الإنجليزية والموقع الإنجليزي الرسمي عام 1999. ساهم إطلاق Ruby on Rails – إطار برمجة الويب مفتوح المصدر – عام 2004 في زيادة شعبية روبي حول العالم بدرجة كبيرة. حاليا، يتمحور حول روبي مجتمع نشط وودود من مستخدمي اللغة ومحبيها، وهو آخذ في الإتساع.
ثانيا: ميزات لغة روبي
قرر Matz تصميم لغته الخاصة لأنه أراد “لغة برمجة نصية (scripting language) أقوى من Perl، وذات منحىً كائني أكثر من Python“. بالإضافة إلى هاتين اللغتين، تأثرت روبي أسلوبا وصياغة بعدة لغات أخرى مثل Smalltalk وLisp بدرجات متفاوتة في محاولة لدمج أفضل المزايا من كل لغة. من أبرز خصائص لغة روبي أنها:
- حرة ومفتوحة المصدر: بيئة اللغة الرسمية متوفرة تحت رخصة جنو العمومية ورخصة روبي المفتوحة المصدر. بما أن الشيفرة المصدرية لمفسّر روبي ومكتباتها متاحة، يمكن للمطورين تحسينها والإضافة عليها.
- غرضية التوجه (أو كائنية المنحى): كل شيء [تقريباً] عبارة عن كائن، حتى الأعداد الصحيحة وغيرها من أنواع البيانات البدائية.
- ديناميكية: التحقق من نوع البيانات يتم وقت التشغيل، لذلك – وخلافاً للغات الساكنة – لا حاجة للإعلان عن نوع المتغير.
- مُفسّرة: في اللغات المُفسّرة، يقوم المفسّر (interpreter) بتنفيذ النص البرمجي سطرا سطرا. أما في اللغات المُصرّفة (أو المُترجمة)، فيقوم المصرّف (compiler) بتحويل الشيفرة المصدرية إلى لغة أخرى (غالبا ما تكون لغة الآلة أو لغة قريبة منها).
- متعددة المنصات (أو محمولة): لغة روبي مدعومة على ويندوز، لينكس، ماك وغيرها من أنظمة التشغيل المختلفة. يعني هذا أنه من الممكن تشغيل البرامج المكتوبة بلغة روبي على أية منصة تدعم اللغة، ودون الحاجة – في معظم الأحيان – إلى أي تعديلات.
بالإضافة إلى ما سبق، ساهمت فلسفة Matz في الجمع بين أبرز الأفكار الموجودة في لغات البرمجة الأخرى في جعل روبي لغة يسهل تعلمها والانتقال إليها. وبسبب كونها ذات صياغة سَلِسة، فإن استخدامها – ومن واقع تجربة شخصية – ممتع بحد ذاته.
ثالثا: تثبيت روبي
شخصيا، سأستخدم الإصدار 1.8.6 من روبي على أوبونتو لكتابة دروس هذه السلسلة. لا أنصح باستخدام أحدث إصدار – 1.9.1 – لأن النسخة النهائية منه لم تصدر بعد (من المخطط إطلاقها في 25 يناير 2009). [تحديث: أطلق الإصدار 1.9.1 في 30 يناير 2009، لكن دروس السلسلة ما زالت تستخدم الإصدار 1.8.6] إذا لم تكن روبي مثبتة على جهازك، فاتبع التعليمات أدناه حسب نظام التشغيل.
ويندوز
هناك عدة طرق لتثبيت روبي في ويندوز، أسهلها استخدام المُثبّت بضغطة واحدة (one-click installer)، والذي يقوم بتثبيت روبي، مجموعة من الإمتدادات، الأدوات، ووثائق المساعدة. لتثبيت روبي بهذه الطريقة، اتبع التعليمات التالية:
- توجه إلى صفحة التنزيل في موقع روبي الرسمي.
- في منتصف تلك الصفحة تقريبا، ستجد قسم Ruby on Windows. اضغط على الرابط الذي يحوي “One-Click Installer” ذو رقم النسخة الأعلى (1.8.6 وقت كتابة هذه التدوينة). احفظ الملف التنفيذي على جهازك.
- بعد انتهاء التنزيل، شغّل الملف التنفيذي لبدء عملية التثبيت، ثم اتبع تعليمات التثبيت المعتادة. من الأفضل ترك المسار والإعدادات الافتراضية كما هي.
- بعد انتهاء عملية التثبيت، توجه إلى قائمة البرامج ضمن قائمة “إبدأ”. من المفترض أن تجد مجلداً جديداً يحوي الأدوات التي تم تثبيتها منذ قليل. للتأكد من أن العملية تمت بنجاح، اضغط على “fxri – Interactive Ruby Help & Console“. إذا تم تحميله بنجاح، فكل شيء على ما يرام.
لينكس
كونها لغة مفتوحة المصدر، تأتي روبي مثبتة مسبقا في بعض توزيعات لينكس. للتأكد من كون اللغة مثبتة على نظامك، توجه إلى سطر الأوامر وأدخل الأمر التالي:
إذا كانت روبي مثبتة على نظامك، سيعطيك الأمر السابق نتيجة كالتالي:
إذا لم تكن روبي مثبتة على نظامك، فاعلم أن عملية التثبيت ستختلف باختلاف التوزيعة المستخدمة. فإذا كنت تستخدم أوبونتو مثلا، أدخل الأمر التالي:
إذا أردت استخدام مدير الحزم Synaptic بدلا من سطر الأوامر، فشاهد الأربع دقائق الأولى من الفيديو التالي:
embedded by Embedded Video
بالنسبة للتوزيعات الأخرى، فمن الممكن تثبيت روبي باستخدام مدير الحزم الخاص بكل توزيعة. من الأفضل مراجعة وثائق المساعدة الخاصة به لمعرفة تفاصيل العملية.
أنظمة التشغيل الأخرى
صفحة التنزيل في موقع روبي الرسمي تحوي على التعليمات اللازمة لأنظمة OS X، Solaris، وOpenSolaris.
رابعا: اختيار بيئة التطوير
في الحقيقة، لن تحتاج إلى أكثر من محرر النصوص الافتراضي لكتابة برامج بلغة روبي، لكن استخدام محرر نصوص متقدم أو بيئة تطوير تدعم روبي سيجعل الأمور أسهل على المدى البعيد. بإمكانك استخدام محرر النصوص المفضل لديك. أنا شخصيا أستخدم gedit مع إضافاته الضرورية للمبرمجين على لينكس، وNotepad++ على ويندوز.
بهذا نكون قد أكملنا تهيئة الطريق للأجزاء القادمة من السلسلة. لا تبخلوا علينا بالأسئلة والاقتراحات، وترقبوا الجزء التالي، حيث سنبدأ أولى خطواتنا العملية مع لغة روبي.


عدد التعليقات 8
جميل جدا أخي ياسر ..
شخصيا، كنت كنت أخطط لتعلم لغة Ruby خلال الصيف الفائت. وبالفعل سجلت في الدورة التي يقدمها Satish Talim ولكن -لضغط الوقت- لم أستطع الاستمرار. لعل هذه السلسلة تعوض عن تلك الدورة.
بانتظار جديدك ..
وتقبل شكري واحترامي.
شاكر لك أخ ياسر ,
موفق بأذن الله في الدروس .
السلام عليكم ورحمة الله وبركاته
اولا احب ان اهنيك على المدونة الاكثر من رائعة حاليا ابحر فى امواج معلوماتها عسى ان اخرج سالما من كثرة المعلومات
اما بالنسبة لهذه التدوينة الرائعة
فاستفدت منها كثيرا جعله الله فى ميزان حسناتك
مقدمة اكتر من رائعة
جزاك الله خير
مدونة رائعة …..ربي يوفقك …
بعد انتهائي من لغة البرمجة php
احببت الانتقال الى لغة قوية تفسيرية
ذكر لي بعض الاخوان لغة روبي ..وبعضهم قال بايثون والاخر بيرل ..
قرئت عنهم وعلى ما اعتقد كلهن نفس القوة ….او يمكن بايثون اقوى
لكن ماذا تنصح انت ..
@Zo-Dns
شكرًا لك
مع مرور الأيام، زاد اقتناعي بالتالي:
1- لا توجد لغة برمجة كاملة وتناسب جميع الاحتياجات.
2- لغة البرمجة بحد ذاتها ليست بتلك الأهمية ما دمت تستطيع الإنتاج والإبداع باستخدامها.
بما أنني لا أعلم الشيء الكثير عن بيرل، فكلامي سيكون عن روبي وبايثون. بالفعل، بين هذه اللغات أوجه شبه كثيرة. بالإضافة إلى ذلك، تعلم أساسيات روبي وبايثون سهل إلى حد كبير خصوصًا لمن لديه خبرة في البرمجة. كما يجب أن لا ننسى أن اختيار اللغة يعتمد بشكل أو بآخر على الهدف من استخدامها، فلو كان هدفك مثلًا بناء تطبيق ويب باستخدام إطار روبي أون ريلز بالتحديد، فسيكون من غير المنطقي اختيار لغة غير روبي.
لذلك، فقد يكون من المناسب أن تتعلم أساسيات اللغتين كبداية. بعد ذلك، سيكون بإمكانك – نظريًا على الأقل – المقارنة بينهما واختيار اللغة التي تناسبك وتتماشى مع أهدافك أكثر حتى تتعمق فيها.
على كل حال، قد تساعدك هذه الأداة في عملية الاختيار، حيث تمكّنك من ترتيب عدة معايير حسب أهميتها بالنسبة لك، ثم تقترح اللغة “الأنسب” بناء على ذلك.
اشكرك على جهودك
ولكن انا اهتم بتطبيقات الانترنت والتجارة الالكترونية هل تجد في تعلم هذه اللغة شي مفيد
@ابو الليونه
بالتأكيد. لبناء تطبيق ويب، ستحتاج إلى إطار ويب لتسهيل الأمر وزيادة الإنتاجية. عدم الإلمام باللغة التي بُنِيَ الإطار عليها قد يُعيق الاستخدام الفعال ويقلل الإنتاجية. لذلك، يستحسن أن تتعلم اللغة ذاتها، أو على الأقل، أساسياتها.
هذا ينطبق على روبي أون ريلز، الإطار الذي يمكنك من بناء تطبيقات ويب، ولغة روبي.