محمد طاها رضازاده  

18 دی، 1400  

همه چیز راجب روبی

سازنده زبان روبی یوکیهیرو ماتسوموتو می‌گوید روبی برای افزایش توان تولید و تفریح برنامه‌نویسان طراحی شده‌است و از اصل رابط کاربری خوب پیروی می‌کند. او تأکید می‌کند که طراحی سامانه‌ها باید بیشتر روی نیاز انسان‌ها متمرکز باشد تا رایانه‌ها. اغلب مردم، به ویژه برنامه‌نویسان، روی ماشین‌ها تمرکز می‌کنند. آن‌ها فکر می‌کنند "با انجام این کار ماشین‌ها سریعتر می‌شوند، ماشین‌ها در اجرا موثرتر می‌باشند و …" آن‌ها بر ماشین تمرکز می‌کنند، اما در حقیقت ما نیاز داریم که به انسان‌ها توجه کنیم، اینکه چگونه آن‌ها به برنامه‌نویسی توجه دارند یا چگونه به اجرای برنامه‌های ماشین دقت می‌کنند. روبی برای تعقیب هدف کمترین غافلگیری بیان شدبه این معنی که زبان باید طوری رفتار کند که کمترین گیج‌کنندگی را برای استفاده‌کننده‌های آن داشته باشد. ماتسوموتو همچنین اظهار می‌دارد که هدف اولین طراحی او درست کردن زبانی که خودش از آن لذت ببرد بود. این کار با کم کردن کار برنامه‌نویس و ابهامات منطقی می‌باشد. اما کمترین غافلگیری هنوز خیلی به بیان زبان برنامه‌نویسی روبی نزدیک است. افراد ناشی شاید این را به این معنا تعبیر کنند که رفتارهای روبی سعی در متصل کردن اشتراکات رفتارهای دیگر زبان‌ها را دارد. در بحث ماه مه ۲۰۰۵ در روزنامه "کامپ. لنگ. روبی" ماکسوموتو تلاش کرد که روبی را از حداقل غافلگیری دور کند. توضیح اینکه هر شانس طراحی بعضی‌ها را متعجب می‌کند. او از استاندارد خود برای ارزیابی غافلگیری استفاده کرد. ماتسوموتو این را در یک گزارش مطرح ساخت. "همه یک پیشینه شخصی دارند، بعضی‌ها از جانب پایتون می‌آیند بعضی‌های دیگر از پرل و آن‌ها ممکن است از بعضی از جنبه‌های متفاوت زبان غافلگیر شوند. سپس آن‌ها به من می‌گویند ما از بعضی از جنبه‌های زبان غافلگیر شدیم، بنابرین روبی قانون کمترین غافلگیری را زیر پا گذاشته‌است. صبر کنید… هدف کمترین غافلگیری فقط برای شما نیست. این هدف به معنای کمترین غافلگیری ممکن برای بیان من می‌باشد. این به معنای کمترین غافلگیری بعد از آموزش کامل زبان است. برای مثال من قبل از اینکه روبی را طراحی کنم یک برنامه‌نویس سی پلاس پلاس بودم. من منحصراً دو، سه سال در سی پلاس پلاس برنامه نوشتم و بعد از دو سال برنامه‌نویسی با آن، هنوز مرا متعجب می‌کرد


روبی شی گراست: همه انواع داده شی هستند، از جمله کلاس‌ها و خیلی از انواع داده‌ای که به‌طور معمول در بقیه زبان‌ها نیز هست مانند داده صحیح، دودویی و …. تابع به صورت متد می‌باشد. روبی ارث بری را با فرستادن پویا و متدهای یکتا پشتیبانی می‌کند (متعلق به، تعریف شده برای، یک نمونه تک به جای تعریف شدن در کلاس) همچنین روبی از ارث بری چندگانه پشتیبانی می‌کند. نحو رویه‌ای پشتیبانی می‌شود، اما همهٔ متدها که خارج از حوزه یک شی خاص تعریف می‌شوند همه آن در حقیقت متدهای شی یک کلاس هستند. تا زمانی که این کلاس والد کلاس دیگر است تغییرات برای همه کلاس‌ها و شی‌ها ممکن است. روبی به عنوان یک زبان برنامه‌نویسی چند مدلی تشریح شده. در روبی اجازهٔ برنامه‌نویسی رویه‌ای، شیءگرا و تابعی داده شده. بر طبق سوالات متداول روبی «اگر تو به پرل علاقه‌مند باشی روبی را هم دوست خواهی داشت و می‌توانی از نحو آن استفاده کنی. اگر اسمالتالک را دوست داری روبی را هم دوست خواهی داشت و می‌توانی از معنای آن لذت ببری و اگر طرفدار پایتون هستی تو ممکن است تفاوت عمده‌ای بین پایتون و روبی پیدا کنی یا که نه.»


سینتکس روبی بسیار شبیه سینتکس پرل و پایتون است. اعلان کلاس‌ها و متدها توسط کلمات کلیدی انجام می‌شود. در مقایسه با پرل متغیرها الزاماً با یک علامت خاص شروع نمی‌شوند. (وقتی از چنین علائمی استفاده شود علامت حوزه دید متغیر را تغییر می‌دهد) بارزترین تفاوت روبی از سی و پرل آنست که کلمات کلیدی (بجای براکت) برای تعریف بلوک‌های کد استفاده می‌شوند. سطر جدید به‌عنوان پایان یک جمله بکار برده می‌شود در عین حال که برای اینکار می‌توان از یک سمی کالون (;) نیز استفاده کرد. تورفتگی‌ها معنی خاصی ندارند (برعکس پایتون). نمونه‌هایی از سینتکس روبی را می‌توانید در بخش مثال‌ها ببینید.


مثال کلاسیک Hello world:


  puts "Hello World!"


 


روبی یک زبان برنامه نویسی انعطاف پذیر،وب،تست و نفوذ،پویا و شئی‌گرا است.روبی


ویژگی های نگارشی پرل و شئی‌گرایی اسمال‌تاک را باهم دارد.زبان روبی دراسل های میانی دهه 1990 توسط یوکیهیو ماتسوموتو در ژاپن اختراع شد. ویژگی های گوناگون زبان های پرل،لیسپ،اسمال‌تاک و انیل الهام بخش ماتسومو در ساخت روبی بودند.


زبان روبی پارادایم های گوناگون برنامه نویسی از جمله برنامه نویسی تابعی و شئیگرو بازتابی را پشتیبانی میکند، دارای گزاره ها و متغیر های پویا و مدیریت حافظه خودکاراست.


نسخه فعلی زبان روبی 3/3/2 است که به زبان سی و به صورت زبانی با مفسر تک گذره پیاده سازی شده است. تا سال 2010 گونه های مختلفی از زبان روبی توسعه یافتند از میان آنها می توان به جی روبی و مک روبی و روبینوس و آیرن روبی و حتی هات روبی و ام روبی ایز اشاره کرد.