با تولد بشر کنجکاوی او درباره ی شناخت پیرامونش نیز متولد شد. او شروع به کشف طبیعت نمود و با الگو پذیری از آن کم کم به فکر ایجاد مدل هایی از طبیعت افتاد.
به سرعت پیشرفت کرد تا این که کامپیوتر و زبان های برنامه نویسی را ایجاد کرد. در این میان زبان های زیادی پا به عرصه وجود گذاشتند که هر کدام مزایا و معایبی داشتند و با این وجود بسته به نیاز برنامه نویس مورد استفاده قرار می گرفتند.
تا اینکه نمونه ای از بشر تکامل یافته به فکر ایجاد زبانی افتاد تا استفاده از آن نسبت به سایر زبان های برنامه نویسی راحت تر و با بیان بهتر دوست برنامه نویس باشد، زبانی به نام Ruby.
طراح این زبان معتقد است که:معمولاً افراد و بخصوص مهندسان کامپیوتر بر روی ماشینها تمرکز میکنند. آنها چنین فکر میکنند که با انجام این کار ماشین سریعتر،موثرتر و... عمل خواهد کرد. اما در اصل ما باید بر روی انسانها تمرکز کنیم، بر روی اینکه انسانها ترجیح می دهند چطور برنامه نویسی کنند یا اینکه انسانها ترجیح می دهند چگونه ماشینها را مدیریت کنند. ما ارباب هستیم وماشینها غلامند.
من در این ارائه سعی کردم تا جنبه هایی از این زبان را هرچند کم و ناقص بازگو کنم. نا گفته نماند که بیان ویژگی های خوب و جذاب Ruby ذره ای از ویژگی های عالی زبان هایی همچون جاوا و... کم نخواهد کرد و برنامه نویسان بسیاری همچنان از این زبان ها استفاده می - کنند و از نوشتن برنامه هایشان لذت می برند.
قبل از هر چیز خداوند را به خاطر لطف بی نهایتش شکر می کنم و از استاد گرامی جناب آقای مهندس احمد خادم زاده که درسهای بسیاری به من آموخته اند کمال تشکر را دارم و از خداوند متعال برای ایشان و خانواده ی محترمشان سلامتی و طول عمر با برکت خواستارم.
روبی،دوست برنامه نویس
1-1: تاریخچه
این زبان توسط یوکیهیرو ماتسوموتو ماتز ایجاد شد. او کار بر روی روبی را در 24 فوریه سال 1994 آغاز کرد و در سال 1995 آن را بصورت عمومی منتشر کرد.
در این اثنا چند پیاده سازی رقیب از روبی بوجود آمد. بخصوص جی روبی که یک تلاش برای اتصال روبی به سکوی جاوا است و رابینیوس که یک مفسر است و بهعنوان یک زیر پروژه توسط ایوان فونیکس ایجاد شده توجه زیادی را به خود جلب کرده است.
روبی برای مدت چند سال موفقیت چندان زیادی کسب نکرد و تقریبا به یک پروژه شکست خورده تبدیل می شد که از اواسط 2006 به طرز عجیبی مورد استقبال قرار گرفت.
بر اساس آمار رسمی سایت www.tiobe.com زبان روبی از رتبه 19 بین محبوبترین زبان- ها به رتبه 10 صعود کرد. نمودار صعودی این تغییرات بصورتی است که احتمال افزایش محبوبیت این زبان بسیار زیاد است.
شکل 1-1 این تغییرات را نشان می دهد که از سایت نامبرده تهیه شده است.
-2: فلسفه به وجود آمدن روبی
ایده اصلی ماتز در طراحی روبی خشنود کردن برنامه نویسان با کمترکردن کارهای تکراری بود که آنها بایستی انجام می دادند، همراه با پیروی ازاصول طراحی خوب رابط کاربر . او تاکید داشت که طراحی سیستمها باید بر نیاز انسانها تاکید داشته باشد، نه نیاز کامپیوتر.
معمولاً افراد و بخصوص مهندسان کامپیوتر بر روی ماشینها تمرکز میکنند. آنها چنین فکر میکنند که با انجام این کار ماشین سریعتر،موثرتر و... عمل خواهد کرد. اما در اصل ما باید بر روی انسانها تمرکز کنیم، بر روی اینکه انسانها ترجیح می دهند چطور برنامه نویسی کنند یا اینکه انسانها ترجیح می دهند چگونه ماشینها را مدیریت کنند. ما ارباب هستیم وماشینها غلامند.
روبی از اصل کمتر غافلگیر کردن پیروی میکند، به این معنی که زبان اصولاً قابل پیش بینی رفتار میکند، همانند چیزی که برنامه نویس انتظارش را دارد و آنرا بسیار نزدیک به طرز تفکر خود یافته است.
هرکس پیشینه خود را دارد. ممکن است یک نفر از پایتون آمده باشد، دیگری از پرل و... آنها با دیدن ابعاد مختلف زبان ممکن است غافلگیر شوند. آنها به من می گویند: من با دیدن این امکان زبان بسیار غافلگیر شدم، بنابراین روبی اصل عدم غافلگیری را نقض میکند. صبر کنید. اصل عدم غافلگیری تنها برای شما نیست. اصل عدم غافلگیری به معنی کمتر کردن غافلگیری من است. و این به معنی کمتر کردن غافلگیری شما بعد از اینکه روبی را بطور کامل یاد گرفتید. برای مثال من یک برنامه نویس C++بودم قبل از اینکه روبی را طراحی کنم. من بطور اختصاصی دو یا سه سال با C++ برنامه نویسی کردم و بعد از دو سال همچنان من را غافلگیر میکرد.
این روزها زبان روبی بیش از پیش به عنوان یک زبان اسکریپتی محبوب میشود. به خصوص با آمدن محیط های کاری مختلف از جمله ریلز .
پشتیبانی از برنامه نویسی شیگرا با قابلیتهای بسیار زیاد، روبی را به زبانی برای کارهای تجاری و تولید نرمافزارهای سریع تبدیل کرده است. زبان روبی تلفیقی از زبان های جاوا، اسماتاک، لیسپ و پایتون می باشد که از مزیت های عمده آن سادگی برنامه نویسی، سادگی آموزش و امکان انجام خودکار و سریع بخش های تکراری برنامه نویسی در سیستم های شی- گرا می باشد.