Ruby on rails زبان جديد است كه به طور مخفف RoR و يا فقط Rails مي گويند . اين زبان در واقع در برگرفته از يك زبان جديد به نام Ruby است . Ruby امكانات برنامه نويسي تحت وب ندارد و به همين دليل Ruby on rails از روي اين زبان و براي كار بر روي وب تهيه شده است .
اين زبان به صورت اپن سورس و بر اساس يك تكنولوژي و يا ساختار Model-view-Controller به وجود آمده است . اين ساختار داراي فلسفه خاصي است . با اين صورت كه برنامه بايد با كمترين كد و به ساده ترين شكل ممكن و در زمان اندك نوشته شود . اين فلسفه به نوعي آرزوي برنامه نويسان زبان هاي قبل از آن بوده است .
اين برنامه از نظر نگاه افراد حرفه اي تر خوب نبوده و نمي توان از آن در پروژه هاي بزرگ استفاده كرد و هنوز به حد كافي رشد نكرده است .
پنج دليل براي اثبات اين موضوع :
1) در صدر اخبار بودن
اين زبان يك زبان جديد است كه كاملاً رشد نيافته است . بسياري از افراد مي خواهند از آن استفاده نمايند اما به خاطر جديد بودن فقط در مجلات مختلف در مورد آن و ويژگي هاي آن بحث شده است . اما اگر يك زبان در صدر اخبار محلات تخصصي باشد ، باز هم دليل نمي شود كه در همه جا و در همه پروژه اي بتوان از آن به خوبي استفاده كرد .
2) جديد بودن
همانطور كه در بالا اشاره شد ، اين زبان جديد است . هنوز به طور كامل در همه موارد جواب پس نداده است . در ماه جولاي 2004 اين زبان معرفي شده است . شما مي توانيد اين موضوع را با PHP كه اولين معرفي آن در سال 1994 مي باشد مقايسه كنيد . در اين مقايسه معلوم مي شود كه PHP بيشتر در موارد خاص جواب داده است و افراد بيشتري از آن استفاده مي كنند . اين موضوع در پروژه هاي بزرگ بيشتر به چشم مي خورد . PHP به اندازه قدمت وب قدمت دارد .
3) پشتيباني كمتر از IIS
بسياري از مردم حتي در حسرت استفاده از PHP ، اين كار را در سرورهاي ويندوز و وب سرور IIS انجام مي دهند ROR پشتيباني كمتري در اين زمينه دارد و به خوبي نمي تواند با ISS كار كند . حتي با وجود مقالات زيادي در مورد چگونگي استفاده از ROR در IIS به علت پيچيدگي نسبي كار تعداد افراد كمتري جذب آن مي شوند .
4) نوع كدها
به اين كد كه در واقع برنامه فاكتوريل مي باشد توجه كنيد :
اين نحوه نگارش نشان مي دهد كه براي كدهاي كوچك طراحي شده است . در يك پروژه بزرگ اگر همه كدها به نحوه ي نگارش نوشته شوند ، شما نمي توانيد در زمان بروز خطا به درستي منبع خطا را پيدا كنيد .
Def fact(n)
If n == 0
1
Else
n * fact(n-1)
end
end
5)
هيچ سايت بزرگي با اين زبان نوشته نشده
اين سوال خود يك دليل مهم است . فعلاً كه هيچ سايتي بزرگي توسط اين زبان به وجود نيامده است . شايد با رشد سريعي كه اين زبان دارد ، در آينده نزديك بتوانيم اين نوع سايتها را ببينيم . اما امروز به نظر نمي رسد اين زبان به حدي رسيده باشد كه قابليت اين كار را داشته باشد .