روبي أون ريلز
روبي أون ريلز ويرمز لها بالاختصار ROR وأحياناً تختصر باسم ریلز بصيغة الجمع أي قضبان سكة القطار. وهي عبارة عن المنصة البرمجية لتطبيقات الإنترنت مفتوحة المصدر مبني على لغة روبي، ويعتزم استخدامها مع منهجية التطوير الذكية التي يتم استخدامها من قبل المطورين على الشبكة العالمية للتطوير السريع.
تم استخلاص روبي أون ريلز من قبل دافيد هاينماير هانسون من خلال عمله على Basecamp، وهو عبارة عن أداة لإدارة المشاريع من قبل شركة 37 إشارة (تسمى الآن شركة تطبيق الشبكة). في البداية أطلق هانسون هانيمير Railsكمصدر مفتوح في يوليو 2004، ولكن لم يشارك أحدا في الحقوق التنفيذية لهذا المشروع حتى فبراير 2005. وصل فريق العمل إلى حدث مهم في أغسطس 2006 عندما أعلنت شركة Apple أنها ستطلق ROR مع Mac OS X v10.5 "Leopard" الذي تم إطلاقه في أكتوبر 2007.
نظرة عامة على التقنية
Rails تستخدم Model-View-Controller (MVC) لتنظيم برمجة التطبيقات، مثل العديد من أطر الشبكة المعاصرة. Ruby on Rails تتميز بعدة أدوات تهدف إلى جعل مهام التطوير الشائعة أسهل "الخروج من الصندوق". توفر Rails السقالات التي تمكنها تلقائيا من بناء بعض النماذج والآراء اللازمة لموقع أساسي على شبكة الإنترنت. ومدرج إليها خادم الويب Ruby المبسط (WEBrick) ونظام Rake. وفي الحقيقة إضافة هذه الأدوات الشائعة إلى إطار Railsتعطي بيئة تطوير أساسية مع جميع إصدارات البرنامج.
Ruby on Rails تعتمد على خادم الويب لتشغيله. Mongrel هو المفضل عموما على WEBrick حتى وقت كتابة هذا التقرير، ولكن يمكن أيضا أن تدار من قبل لايت باد, Abyss, Apache (إما بوصفها وحدة نمطية—Passenger على سبيل المثال—أو عن طريق CGI,، FastCGI أو mod_ruby) وغيرها الكثير. اعتبارا من عام 2008 فصاعدا، تم استبدال خادم الويب Mongrel بالخادم Passenger باعتباره الأكثر استخداما.
والجدير بالذكر أن Rails تستخدم على نطاق واسع نماذج مكتبات JavaScriptوScript.aculo.us for Ajax في البداية Rails استخدمت SOAP خفيفة الوزن لخدمات الشبكة، واستبدلت لاحقا بخدمات الشبكة RESTful.
منذ الإصدار 2.0 و Ruby on Rails تعرض افتراضيا على حد سواء HTML وXML كتنسيقات إخراج. وهذا الأخير هو مرفق لخدمات الويب RESTful.
تركيبة الإطار
Ruby on Rails تنقسم إلى مجموعات مختلفة، وهي ActiveRecord (عبارة عن نظام يدعى Object-relational mapping يستخدم للوصول إلى قاعدة البيانات)، ActiveResource (تقدم خدمات على شبكة الإنترنت)، ActionPack، ActiveSupport وActionMailer. Rails شملت أيضا قبل الإصدار 2.0 مجموعة Action Web Service والآن تستبدل ب Active Resource. بصرف النظر عن المجموعات القياسية، يمكن للمطورين تقديم الإضافات لتمديد المجموعات الموجودة.
تتلخص فلسفة روبي أون ريلز في عبارتين أي "المتعارف أو العرف أفضل من الإعدادت" و أي "لا تكرر نفس العمل". العرف أفضل من الإعدادت تعني المطور يحتاج فقط لتحديد الجوانب غير التقليدية للتطبيق. على سبيل المثال، إذا كان هناك صنف مبيع في النموذج، والجدول المناظر في قاعدة البيانات يسمى مبيعات افتراضيا. الا إذا كان أحد يحيد عن هذه العرف، مثل تسمية الجدول "المنتجات التي تباع"، سيحتاج المطور لكتابة رمز بشأن هذه الأسماء. عموما، فإن هذا يؤدي إلى رموز أقل وتكرار أقل.
و"لا تكرر نفس العمل" تعني أن المعلومات تقع في مكان واحد لا لبس فيه. على سبيل المثال، باستخدام وحدة ActiveRecord من Rails فإن المطور لا يحتاج إلى تحديد أسماء الأعمدة في قاعدة بيانات تعريفات الفئة. بدلا من ذلك، يمكن أن تسترد Ruby on Rails هذه المعلومات من قاعدة البيانات استنادا إلى اسم الفئة.
التطورات الحديثة
تم إصدار الإصدار 2.3 من Rails في 15 مارس 2009. وتتضمن التطورات الرئيسية الجديدة في Rails: القوالب، والمحركات، وRack والأشكال النموذجية المتداخلة.
في 23 ديسمبر2008 أعلن Merb، وهو اطار تطبيقي آخر على شبكة الإنترنت مع Rails الالتزام بالعمل معا. فريق Rails أعلن أنه سيعمل مع مشروع Merb لتحقيق "أفضل أفكار Merb" في Rails 3، وإنهاء الازدواجية "غير الضرورية" عبر المجتمعين.
في شهر مارس عام 2007 قام ديفيد هاينمير هانسون بتسجيل ثلاثة طلبات لها صلة بالعلامات التجارية إلى مكتب الولايات المتحدة للبراءات والعلامات التجارية. كانت هذه الطلبات تتعلق بعبارة "Ruby on Rails" وكلمة "Rails" والشعار الرسمي لها. ونتيجة لذلك، في صيف عام 2007 رفض هانسون أن يمنح الإذن لصحيفة أمريكا لاستخدام شعار Rails على غلاف كتاب جديد عن Rails مكتوب من قبل بعض أعضاء المجتمع الموثوق بهم. هذه الحادثة أثارت احتجاج مهذب في مجتمع Rails. ردا على هذه الانتقادات، هانسون تقدم بالمطالبات التالية:
تتعرض ریلز لانتقادات بسبب مشكلات مع التوسع هؤلاء النقاد كثيرا ما يذكرون انقطاع موقع شبكات اجتماعية تويتر في عامي 2007 و 2008، مما دفع مطوري الموقع للانتقال إلى لغة Scala (التي تعمل على آلة جافا الافتراضية) لنظام Queuing، على الرغم من أن غالبية الموقع يستمر في العمل على لغة روبي.