موضوع مقاله: روبی (زبان برنامه‌نویسی) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # روبی (زبان برنامه‌نویسی) | مقدمه: روبی (به معنای یاقوت) یک زبان برنامه‌نویسی انعطاف‌پذیر، وب،تست نفوذ، پویا و شیءگرا است. | ## بخش 1: روبی (زبان برنامه‌نویسی) | ویژگی‌های گوناگون زبان‌های پرل، لیسپ، اسمال‌تاک و آیفل الهام‌بخش ماتسوموتو در ساخت روبی بودند. زبان روبی پارادایم‌های گوناگون برنامه‌نویسی از جمله برنامه‌نویسی تابعی، شیء گرا و بازتابی را پشتیبانی می‌کند، دارای گزاره‌ها و متغیرهای پویا و مدیریت حافظه خودکار است. نسخه فعلی این زبان روبی ۲٫۳٫۳ است که به زبان سی و به صورت زبانی با مفسر تک‌گذره پیاده‌سازی شده‌است. تا سال ۲۰۱۰، گونه‌های مختلفی از زبان روبی توسعه یافته‌اند که از میان آن‌ها می‌توان به جی‌روبی، روبینوس، مک‌روبی، آیرن‌روبی و هات‌روبی، ام روبی اشاره کرد. تاریخچه زبان روبی رسماً در روز ۲۴ فوریه ۱۹۹۳ (۵ اسفند ۱۳۷۱) توسط یوکیهیرو ماتسوموتو معرفی شد. او دنبال ساخت زبانی بود که امکانات متعادلی برای برنامه‌نویسی تابعی و برنامه‌نویسی دستوری برای برنامه‌نویس فراهم آورد. ماتسوموتو دربارهٔ انگیزه‌اش برای ساخت روبی می‌گوید: «در جستجوی زبانی بودم که از پایتون شیءگراتر و از پرل قدرتمندتر باشد. نام «روبی» یوکیهیرو ماتسوموتو و همکارش دو نام «روبی» و «کورال» را برای این زبان جدید برگزیده بودند. از آنجاییکه نام کورال پیش از آن برای یکی از زبان‌های برنامه‌نویسی بریتانیایی انتخاب شده بود(کورال)، نام «روبی» به عنوان نام نهایی برگزیده شد. ماتسوموتو گفته که یکی از دلایل انتخاب نام «روبی» این بود که یاقوت نشان ماه تولد یکی از همکاران وی بوده‌است. اولین انتشار نخستین ویرایش روبی با عنوان روبی ۰٫۹۵ در ۲۱ دسامبر ۱۹۹۵ (میلادی) (۳۰ آذر ۱۳۷۴) روی یکی از شبکه‌های تخصصی اینترنتی در ژاپن منتشر شد. روبی ۱٫۰ نخستین نسخه اصلی روبی با عنوان روبی ۱٫۰ در ۲۵ دسامبر ۱۹۹۶ (۵ دی ۱۳۷۵) منتشر شد. پس از انتشار روبی ۱٫۳ در سال ۱۹۹۹، نخستین لیست پست الکترونیک به زبان انگلیسی آغاز بکار کرد. در سپتامبر سال ۲۰۰۰ نخستین کتاب راهنمای برنامه‌نویسی به زبان روبی به انگلیسی به چاپ رسید که به افزایش محبوبیت این زبان در کشورهای مختلف کمک کرد. روبی ۱٫۹٫۱ جدیدترین نسخه پایدار روبی، نسخهٔ ۱٫۹٫۱ است که نسبت به نسخهٔ پیشین (۱٫۸٫۶) چند تغییر عمده در خود دارد. از جمله تغییرات مهم می‌توان به افزودن متغیرهای محلی در «بلوک»‌های روبی، و امکان تنظیم کدگذاری رشته‌ها به صورت مستقل از هم اشاره کرد. | ## بخش 2: روبی (زبان برنامه‌نویسی) | از اکتبر ۲۰۱۱ برنامه‌ریزی شده‌است که کدهای روبی در اکتبر ۲۰۱۲ فریز شود و در فوریه ۲۰۱۲ منتشر شود. نام‌های «روبی» و «روبی آن ریلز» آنقدر با هم استفاده شده‌اند که برای بسیاری شاید تفاوت این دو روشن نباشد. سیناترا یکی دیگر از فریمورک‌های قدرتمند روبی است که ساختار بسیار سبک‌تری نسبت به روبی آن ریلز دارد و ساختار پایه‌ای آن شامل مدیریت کردن مسیرها است (نکته: اما در صورت نیاز می‌توان بسته‌های روبی آن ریلز را در آن وارد کرد). او تأکید می‌کند که طراحی سامانه‌ها باید بیشتر روی نیاز انسان‌ها متمرکز باشد تا رایانه‌ها. آن‌ها فکر می‌کنند «با انجام این کار ماشین‌ها سریعتر می‌شوند، ماشین‌ها در اجرا موثرتر می‌باشند و…» آن‌ها بر ماشین تمرکز می‌کنند، اما در حقیقت ما نیاز داریم که به انسان‌ها توجه کنیم، اینکه چگونه آن‌ها به برنامه‌نویسی توجه دارند یا چگونه به اجرای برنامه‌های ماشین دقت می‌کنند. روبی برای تعقیب هدف کمترین غافلگیری بیان شدبه این معنی که زبان باید طوری رفتار کند که کمترین گیج‌کنندگی را برای استفاده‌کننده‌های آن داشته باشد. ماتسوموتو همچنین اظهار می‌دارد که هدف اولین طراحی او درست کردن زبانی که خودش از آن لذت ببرد بود. افراد ناشی شاید این را به این معنا تعبیر کنند که رفتارهای روبی سعی در متصل کردن اشتراکات رفتارهای دیگر زبان‌ها را دارد. ماتسوموتو این را در یک گزارش مطرح ساخت.همه یک پیشینه شخصی دارند، بعضی‌ها از جانب پایتون می‌آیند بعضی‌های دیگر از پرل و آن‌ها ممکن است از بعضی از جنبه‌های متفاوت زبان غافلگیر شوند. سپس آن‌ها به من می‌گویند ما از بعضی از جنبه‌های زبان غافلگیر شدیم، بنابرین روبی قانون کمترین غافلگیری را زیر پا گذاشته‌است. من منحصراً دو، سه سال در سی پلاس پلاس برنامه نوشتم و بعد از دو سال برنامه‌نویسی با آن، هنوز مرا متعجب می‌کرد. معنی‌شناسی روبی شی گراست: همه انواع داده شی هستند، از جمله کلاس‌ها و خیلی از انواع داده‌ای که به‌طور معمول در بقیه زبان‌ها نیز هست مانند داده صحیح، دودویی و…. روبی ارث‌بری را با فرستادن پویا و متدهای یکتا پشتیبانی می‌کند (متعلق به، تعریف شده برای، یک نمونه تک به جای تعریف شدن در کلاس). نحو رویه‌ای پشتیبانی می‌شود، اما همهٔ متدها که خارج از حوزه یک شی خاص تعریف می‌شوند همه آن در حقیقت متدهای شی یک کلاس هستند. تا زمانی که این کلاس والد کلاس دیگر است تغییرات برای همه کلاس‌ها و شی‌ها ممکن است. بر طبق سوالات متداول روبی «اگر تو به پرل علاقه‌مند باشی روبی را هم دوست خواهی داشت و می‌توانی از نحو آن استفاده کنی. | ## بخش 3: روبی (زبان برنامه‌نویسی) | (وقتی از چنین علائمی استفاده شود علامت حوزه دید متغیر را تغییر می‌دهد) بارزترین تفاوت روبی از سی و پرل آنست که کلمات کلیدی (بجای براکت) برای تعریف بلوک‌های کد استفاده می‌شوند. سطر جدید به‌عنوان پایان یک جمله بکار برده می‌شود در عین حال که برای اینکار می‌توان از یک سمی کالون (;) نیز استفاده کرد. چیزهای غافلگیرکننده با وجود اینکه طراحی روبی بر اصل عدم غافلگیری استوار است، به‌طور طبیعی برخی امکانات آن از زبان‌هایی مانند سی و پرل متفاوت است: نام‌هایی که با حرف بزرگ شروع می‌شوند به عنوان ثابت (constant) در نظر گرفته می‌شوند، بنابراین متغیرهای محلی بایستی با حروف کوچک آغاز شوند. به منظور وضوح مقادیر اعشاری (float)، بایستی با یک صفر بعد از نقطه مشخص شوند (۹۹٫۰) یا اینکه از یک تبدیل صریح (99.to_f) استفاده شود. تنها اضافه کردن یک نقطه بعد از عدد (.۹۹) کافی نیست زیرا در این حالت اعداد مستعد پذیرش به‌عنوان یک متد هستند. در نسخه‌های ماقبل از ۱٫۹ عدم وجود نوع داده کاراکتر (در مقایسه با سی که نوع داده char را برای کاراکترها داراست) ممکن غافلگیرکننده باشد. در ضمن برخی مسائل در مورد خود زبان برجسته است: در مورد سرعت، عملکرد روبی در قیاس با بسیاری از زبان‌های کامپایل شده پایین‌تر است (همانند هر زبان تفسیر شده دیگر) و همچنین در قیاس با زبان‌های اسکریپت‌نویسی اصلی مانند پرل و پایتون همین حالت وجود دارد. در حال حاضر حافظه بکار رفته در برنامه‌های نوشته شده در روبی کمتر از حافظه بکار رفته در همان برنامه‌ها که با پرل و پایتون نوشته شده‌اند، است. حذف پرانتزهای متدها در روبی ممکن است به نتایج غیرمنتظره‌ای در متدهایی با چند آرگومان منتج شود. توجه کنید که توسعه دهندگان روبی اشاره کرده‌اند که حذف پرانتزها در متدهایی با چند آرگومان در آینده ممنوع خواهد شد. پیاده‌سازی‌ها روبی دو پیاده‌سازی اصلی دارید: مفسر رسمی روبی که بیشتر مورد استفاده قرار می‌گیرد، و JRuby که یک پیاده‌سازی براساس جاوا است. سیستم‌عامل‌ها روبی برای سیستم‌عامل‌های زیر ارائه می‌شود: بیشتر انواع یونیکس لینوکس داس (رایانه) ویندوز ۹۵/۹۸/اکس‌پی/ان‌تی/۲۰۰۰/ویستا/۷ مکینتاش OSX بی اواس آمیگا مورف اواس Acron RISC OS اواس/۲ هجا پیاده‌سازی‌های دیگر نیز ممکن است وجود داشته باشد. اجازه‌نامه مفسر روبی و کتابخانه‌های آن تحت مجوز دوگانه آزاد و باز متن GPL و اجازه‌نامه روبی منتشر شده‌است. با اینکه تعداد برنامه‌های موجود قابل قیاس با تعداد برنامه‌های موجود در پرل و پایتون نیست، ولی طیف وسیعی از ابزارهای مختلف برای توسعه سریع روبی موجود است. | ## جمع‌بندی | همچنین، روبی انجمن‌های فعال و گسترده‌ای برای کمک به علاقه‌مندان به این زبان دارد.