معرفی زبان برنامه‌نویسی روبی Ruby
برنامه نویسی - 27 شهریور 1401

معرفی زبان برنامه نویسی روبی Ruby

Ruby چیست؟
Ruby یا روبی یکی دیگر از زبانهای برنامه نویسی انعطاف پذیر و شی گرا می باشد .زبان روبی رسماً در روز ۲۴ فوریه ۱۹۹۳ توسط یوکیهیرو ماتسوموتو معرفی شد. او دنبال ساخت زبانی بود که امکانات متعادلی برای برنامه نویسی تابعی و برنامه نویسی دستوری برای برنامه نویس فراهم آورد. ماتسوموتو درباره انگیزهاش برای ساخت روبی میگوید: «در جستجوی زبانی بودم که از پایتون شیءگراتر و از پرل قدرتمندتر باشد. برای همین تصمیم گرفتم خودم آن را بسازم».
روبی ویژگیهای نگارشی پرل و شیگرایی اسمال تاک را با هم در خود دارد. زبان روبی در سالهای میانی دهه ۱۹۹۰ توسط یوکیهیرو ماتسوموتو در ژاپن اختراع شد. ویژگیهای گوناگون زبانهای پرل، لیسپ، اسمالتاک و آیفل الهام بخش ماتسوموتو در ساخت روبی بودند. زبان روبی پارادایمهای گوناگون برنامه نویسی از جمله برنامه نویسی تابعی، شیء گرا و بازتابی را پشتیبانی میکند، دارای گزارهها و متغیرهای پویا و مدیریت حافظه خودکار است. نسخه فعلی این زبان Ruby 1.9.1 است که به زبان سی و بصورت زبانی با مفسر تکگذره پیادهسازی شده است. تا سال ۲۰۱۰، گونههای مختلفی از زبان روبی توسعه یافتهاند که از میان آنها میتوان به جیروبی، روبینوس، مکروبی، آیرنروبی و هاتروبی اشاره کرد.
سازنده زبان برنامه نویسی روبی یوکیهیرو ماتز ماتسوموتو میگوید روبی برای افزایش توان تولید و تفریح برنامه نویسان طراحی شده است و از اصل رابط کاربری خوب پیروی میکند. او تأکید میکند که طراحی سامانهها باید بیشتر روی نیاز انسانها متمرکز باشد تا رایانهها. اغلب مردم، به ویژه برنامه نویسان، روی ماشینها تمرکز میکنند. آنها فکر میکنند ‘با انجام این کار ماشینها سریعتر میشوند، ماشینها در اجرا موثرتر میباشند و …’ آنها بر ماشین تمرکز میکنند، اما در حقیقت ما نیاز داریم که به انسانها توجه کنیم، اینکه چگونه آنها به برنامه نویسی توجه دارند و یا چگونه به اجرای برنامه های ماشین دقت میکنند.
فلسفه
سازنده زبان روبی یوکیهیرو ماتسوموتو میگوید روبی برای افزایش توان تولید و تفریح برنامهنویسان طراحی شدهاست و از اصل رابط کاربری خوب پیروی میکند. او تأکید میکند که طراحی سامانهها باید بیشتر روی نیاز انسانها متمرکز باشد تا رایانهها. اغلب مردم، به ویژه برنامهنویسان، روی ماشینها تمرکز میکنند. آنها فکر میکنند "با انجام این کار ماشینها سریعتر میشوند، ماشینها در اجرا موثرتر میباشند و …" آنها بر ماشین تمرکز میکنند، اما در حقیقت ما نیاز داریم که به انسانها توجه کنیم، اینکه چگونه آنها به برنامهنویسی توجه دارند یا چگونه به اجرای برنامههای ماشین دقت میکنند. روبی برای تعقیب هدف کمترین غافلگیری بیان شدبه این معنی که زبان باید طوری رفتار کند که کمترین گیجکنندگی را برای استفادهکنندههای آن داشته باشد. ماتسوموتو همچنین اظهار میدارد که هدف اولین طراحی او درست کردن زبانی که خودش از آن لذت ببرد بود. این کار با کم کردن کار برنامهنویس و ابهامات منطقی میباشد. اما کمترین غافلگیری هنوز خیلی به بیان زبان برنامهنویسی روبی نزدیک است. افراد ناشی شاید این را به این معنا تعبیر کنند که رفتارهای روبی سعی در متصل کردن اشتراکات رفتارهای دیگر زبانها را دارد. در بحث ماه مه ۲۰۰۵ در روزنامه "کامپ. لنگ. روبی" ماکسوموتو تلاش کرد که روبی را از حداقل غافلگیری دور کند. توضیح اینکه هر شانس طراحی بعضیها را متعجب میکند. او از استاندارد خود برای ارزیابی غافلگیری استفاده کرد. ماتسوموتو این را در یک گزارش مطرح ساخت. "همه یک پیشینه شخصی دارند، بعضیها از جانب پایتون میآیند بعضیهای دیگر از پرل و آنها ممکن است از بعضی از جنبههای متفاوت زبان غافلگیر شوند. سپس آنها به من میگویند ما از بعضی از جنبههای زبان غافلگیر شدیم، بنابرین روبی قانون کمترین غافلگیری را زیر پا گذاشتهاست. صبر کنید… هدف کمترین غافلگیری فقط برای شما نیست. این هدف به معنای کمترین غافلگیری ممکن برای بیان من میباشد. این به معنای کمترین غافلگیری بعد از آموزش کامل زبان است. برای مثال من قبل از اینکه روبی را طراحی کنم یک برنامهنویس سی پلاس پلاس بودم. من منحصراً دو، سه سال در سی پلاس پلاس برنامه نوشتم و بعد از دو سال برنامهنویسی با آن، هنوز مرا متعجب میکرد."
معنیشناسی
روبی شی گراست: همه انواع داده شی هستند، از جمله کلاسها و خیلی از انواع دادهای که بهطور معمول در بقیه زبانها نیز هست مانند داده صحیح، دودویی و …. تابع به صورت متد میباشد. روبی ارث بری را با فرستادن پویا و متدهای یکتا پشتیبانی میکند (متعلق به، تعریف شده برای، یک نمونه تک به جای تعریف شدن در کلاس) همچنین روبی از ارث بری چندگانه پشتیبانی میکند. نحو رویهای پشتیبانی میشود، اما همهٔ متدها که خارج از حوزه یک شی خاص تعریف میشوند همه آن در حقیقت متدهای شی یک کلاس هستند. تا زمانی که این کلاس والد کلاس دیگر است تغییرات برای همه کلاسها و شیها ممکن است. روبی به عنوان یک زبان برنامهنویسی چند مدلی تشریح شده. در روبی اجازهٔ برنامهنویسی رویهای، شیءگرا و تابعی داده شده. بر طبق سوالات متداول روبی «اگر تو به پرل علاقهمند باشی روبی را هم دوست خواهی داشت و میتوانی از نحو آن استفاده کنی. اگر اسمالتالک را دوست داری روبی را هم دوست خواهی داشت و میتوانی از معنای آن لذت ببری و اگر طرفدار پایتون هستی تو ممکن است تفاوت عمدهای بین پایتون و روبی پیدا کنی یا که نه.»
مزایای برنامه نویسی روبی
برخورداری از فریمورک محبوبی تحت عنوان Ruby on Rails
کدنویسی سریع با استفاده از RoR
کاملاً شییٔگرا
معایب زبان برنامه نویسی روبی
فریمورک RoR اساساً بر پایهٔ مجموعهای از میانبرها است و به خاطر سپردن همین میانبرها تاحدودی کار را برای مبتدیها دشوار میسازد.
روبی در مقایسه با پایتون
یکی از زبان هایی که روبی اغلب با آن مقایسه می شود پایتون است. Ruby و Python اشتراکات زیادی دارند و می توانند برای اهداف مشابه بسیاری استفاده شوند. این می تواند تصیم را برای توسعه دهندگانی که قصد دارند یکی از آنها را یاد بگیرند یا برای یک پروژه خاص استفاده کنند، دشوار کند. Ruby و Python هر دو زبان های اسکریپت نویسی سطح بالا، از سمت سرور با نحو واضح و خوانا هستند، اما تفاوت های فنی مهمی بین آنها وجود دارد که نمی توان آنها را نادیده گرفت.
تفاوت های روبی و پایتون
برخی از تفاوت های روبی و پایتون عبارتند از:
پایتون از چندین IDE پشتیبانی می کند، در حالی که روبی فقط از EclipseIDE پشتیبانی می کند.
با پایتون شما به چارچوب Django محدود می شوید. با روبی، به Rails محدود هستید.
روبی از ویژگی بلوک های قدرتمند استفاده می کند، اما پایتون کتابخانه های بیشتری را ارائه می دهد.
روبی یک زبان شی گرا واقعی است، اما پایتون در میان دانشمندان داده محبوبیت بیشتری دارد.
البته تفاوت های ظریف تری نیز بین آنها وجود دارد.
برخی از توسعه دهندگان اشکال زدایی Ruby را دشوارتر اما به طور کلی انعطاف پذیرتر می دانند.
در ابتدا یادگیری پایتون آسان تر به نظر می رسد اما در ادامه اینطور نخواهد بود.
از بسیاری جهات، یک تفاوت اساسی فلسفی بین این دو وجود دارد: در روبی، راه های زیادی برای انجام کارها و راه حل های بسیاری برای حل یک مشکل وجود دارد. در پایتون، تنها یک راه (بهترین راه) برای انجام کارها وجود دارد.
برخی از امکانات Ruby
کاملاً شی گرا
داینامیک
انعطافپذیر
پشتیبانی از iterators و closures
پشتیبانی محلی از regular expressions
سربارگزاری عملگرها
قابلیت حمل بالا
در تمام سیستمعامل های اصلی پیادهسازی می شود
اتصال بومی API ها در C
کتابخانه استاندارد بزرگ
جمع بندی کلی از برنامه نویسی روبی
زبان برنامه نویسی روبی ، یک زبان متن باز بوده و بطور رایگان در وب در دسترس می باشد.
زبان برنامه نویسی Ruby ، یک زبان برنامه نویسی همه منظوره و تفسیر شده می باشد .
زبان برنامه نویسی روبی ، یک زبان برنامه نویسی شی گرا می باشد .
زبان برنامه نویسی Ruby ، یک زبان اسکریپت نویسی سمت سرور همانند زبان پرل و زبان پایتون می باشد .
از زبان برنامه نویسی روبی می توان برای نوشتن اسکریپت های ” رابط دروازه عمومی ” ( CGI ) استفاده نمود .
زبان برنامه نویسی Ruby را می توان در زبان نشانه گذاری فرا متنی ( HTML ) استفاده نمود .
زبان برنامه نویسی روبی ، سینتکس بی نقص و آسانی دارد که امکان یادگیری بسیار سریع و آسان زبان برنامه نویسی Ruby را برای یک توسعه دهنده جدید فراهم می آورد.
سینتکس زبان برنامه نویسی Ruby شبیه سینتکس بسیاری از زبان های برنامه نویسی از قبیل زبان برنامه نویسی C++ و پرل می باشد
زبان برنامه نویسی روبی ، بسیار مقیاس پذیر بوده و برنامه های بزرگ نوشته شده در زبان برنامه نویسی روبی به آسانی قابل نگهداری می باشند .
از زبان برنامه نویسی Ruby می توان برای توسعه برنامه های کاربردی اینترنت و اینترانت استفاده نمود .
زبان برنامه نویسی روبی را می تواند در محیط های ویندوز و POSIX نصب نمود .
زبان برنامه نویسی Ruby از بسیاری از ابزارهای GUI از قبیل Tcl / TK ، GTK و OpenGL پشتیبانی می کند .
زبان برنامه نویسی روبی می تواند به سادگی به DB ، MySQL ، Oracle و Sybase متصل شود .
زبان برنامه نویسی Ruby دارای مجموعه ای غنی از توابع داخلی بوده که می توانند مستقیما در اسکریپت های زبان برنامه نویسی روبی مورد استفاده قرار گیرند .

دیدگاه ها

بیان دیدگاه

تمام حقوق مادی و معنوی سایت محفوظ می باشد