Ruby چیست؟ + مزایا و معایب روبی
زبان برنامه نویسی روبی Ruby، یک زبان شی گرا (Object-Oriented)، داینامیک و دارای گرامر بسیار کاربردی است که فردی به نام Yukihiro Matsumoto در سال 1993 در کشور ژاپن طراحی و معرفی شد و در سال 1994 اولین نسخه آلفای این زبان برنامه نویسی در دسترس عموم قرار گرفت.
زبان برنامه نویسی Ruby در هسته خود دارای کتابخانه ای سرشار از API های قدرتمند می باشد. این زبان در اصل با الهام گرفتن از زبان هایی مانند Lisp ،Perl و Smalltalk طراحی شده است. البته این در حالی است که گرامر آن برای برنامه نویسان C و JavaScript ساده و قابل فهم می باشد.
با اینکه زبان روبی به صورت شی گرا تدوین شده است اما برای برنامه نویسی رویه ای (Procedural) و عملکردی (Functional) نیز بسیار مناسب است. علاوه بر این زبان Ruby قابلیت هایی فراتر از حوزه برنامه نویسی دارد و برای طراحی زبان های خاص دامنه یا همان DSL که مخفف Domain-Specific Languages است بسیار کاربردی می باشد. در ادامه این مقاله از Danup به بررسی ویژگی های این زبان می پردازیم و معایب و مزایای آن را نیز به طور کامل مورد بررسی قرار می دهیم. پس با ما همراه باشید.
ویژگی های زبان برنامه نویسی Ruby
زبان برنامه نویسی Ruby، بسیاری از ویژگی های خود را از زبان هایی دیگر مانند Perl ،Lisp ، Ada ، Python و Eiffel وام گرفته است. در واقع ابداع کننده آن با مطالعه و ترکیب چندین زبان برنامه نویسی، Ruby را توسعه داده است. آقای Yukihiro Matsumoto بر این باور بود که در طراحی و توسعه یک زبان برنامه نویسی، مهم ترین فاکتور توجه به نیازهای برنامه نویسان است، در حالی که بیشتر توسعه دهندگان به رایانه ها و سیستم ها توجه می کنند. به همین زبان برنامه نویسی Ruby را برای افزایش راحتی و لذت کاربری برنامه نویسان طراحی کرد. در ادامه برخی از ویژگی های اساسی این زبان را مورد بررسی قرار خواهیم داد :
- شی گرایی (Object-Oriented) :
Ruby صد درصد شی گرا است. به گونه ای که تمامی داده ها و توابع بر روی آن در واقع یک شی (Object) محسوب می شوند. برای مثال داده های عددی ساده یا True ،False همگی به این صورت هستند. به علاوه هر شی دارای یک Class، و هر Class دارای یک Super Class است که ریشه هر کدام از آنها در واقع کلاس مبتنی بر Object می باشد.
در بسیاری از زبان های دیگر، برای پیاده سازی و اجرای متدها (Methods) نیازمند استفاده از پرانتز هستیم. اما در عوض استفاده از ( ) در زبان برنامه نویسی Ruby اختیاری است و می توان گفت عملا از آن حذف شده اند. در واقع حذف پرانتزها به این دلیل است که زبان Ruby در مورد کپسوله کردن Object های خود بسیار سختگیر است به گونه ای که هیچ راه دسترسی از بیرون یک Object نباید به درون آن وجود داشته باشد.
در واقع هر Object حاوی مجموعه ای از متغیرهای نمونه (Instance Variable) است که به کمک آنها هیچ Class و Object دیگری قادر به مشاهد آن نمی باشند.
- قابلیت Mixins :
علاوه بر Class ها، زبان روبی دارای ماژول نیز می باشد. در حقیقت ماژول ها قابلیت Included (گنجانده شدن) دارند در حالی که Class ها به خاطر وجود متغیرهای نمونه قابلیت وراٍثت (Inherited) دارند. Mixin ها در واقع مانند سلسله مراتب Class سخت، پیچیده و نامحدود نیستند.
- قابلیت Dynamic :
زبان برنامه نویسی Ruby قابلیت پویایی (Dynamic) دارد به گونه ای که مانند زبان C یا JavaScript، خبری از کامپایل کردن آن نیست. تمامی کلاس ها، متد ها و ماژول ها در زمان اجرای برنامه، ساخته می شوند. حتی ابتدایی ترین Class های این زبان مانند String و Integer قابلیت گسترش و توسعه را دارند.
تمامی متغیرها در این زبان به صورت Dynamic نوشته می شوند. یعنی هر متغیر می تواند یک Object بخصوص را دارا باشد. در حقیقت هنگام جستجوی متُدهای مختلف، زبان Ruby بدون توجه به نوع آن، فقط به دنبال نام آن متُد می گردد.
- کلاس های Singleton :
هر Object در زبان برنامه نویسی Ruby، دارای کلاس های Singleton می باشد. در واقع Ruby برای هر کدام از شی های خود یک کلاس منحصر بفرد ایجاد می کند که در اصل خالی می باشد اما شما می توانید متُدهایی به آن اضافه کنید.
- ویزگی های فرا برنامه نویسی (MetaProgramming) :
در زبان برنامه نویسی روبی، تمامی کلاس ها، ماژول ها و شی ها در واقع Object هستند! به عبارت ساده تر شما می توانید در محیط Ruby و با استفاده از کدهای آن ،Class و Module تولید کنید. در حقیقت این ابزار حقه آمیز زبان برنامه نویسی Ruby به تکنیک MetaProgramming معروف است.
- انعطاف پذیری :
در زبان برنامه نویسی Ruby همه اجزا انعطاف پذیری بسیاری دارند. برای مثال بدون انجام عملیات فرعی می توانید Methodها را به Class های موجود اضافه کرده یا استانداردهای کتابخانه را به راحتی تغییر دهید.
- متغیر ها و دامنه (Scope) :
برای تعیین دامنه هر متغیر نیازی به انجام کارهای پیچیده و خاصی نیست به گونه ای که نام هر متغیر در حقیقت تعیین کننده دامنه آن است. برای مثال X یک متغیر بومی است درحالیکه $x متغیر جهانی، @X متغیر نمونه و @@X متغیر Class هستند.
- قابلیت Block :
منحصر بفردترین ویژگی زبان برنامه نویسی Ruby قابلیت کدهای Block در آن است، که در حقیقت باعث می شود برنامه نویسان از توابع بستار (Closures) نیز استفاده کنند.
- فریم ورک های متنوع :
زبان برنامه نویسی Ruby با فریم ورک های بسیاری از قبیل Ruby on Rail ، Sinatra ، Padrino و … قابلیت همکاری دارد. در حقیقت استفاده از این فریم ورک ها ، قابلیت های شگفت انگیز و جدیدی را در اختیار برنامه نویسان می گذارد.
ویژگی های دیگر زبان برنامه نویسی Ruby
- این زبان به صورت منبع باز، در دسترس عموم قرار دارد.
- همانند Python، زبان Ruby نیز یک زبان سمت سرور (Server-Side) است.
- برای نوشتن اسکریپت های CGI یا همان Common Gateway Interface مورد استفاده قرار می گیرد.
- زبان برنامه نویسی Ruby قابلیت تبدیل به کدهای HTML را دارد.
- سینتکس این زبان همانند زبان های برنامه نویسی C++ یا Perl، بسیار ساده است.
- از رابط های گرافیکی مختلف مانند Tcl/Tk یا GTK پشتیبانی می کند.
- به آسانی به برنامه های مدیریت دیتابیس مانند MySQL یا Oracle، متصل می شود.
ابزار مورد نیاز برای کار با زبان Ruby
برای اینکه برنامه نویسی با زبان Ruby را شروع کنید نیاز به یک سیستم کامپیوتری مانند Intel Core i3 یا i5 ، مجهز به 3 گیگابایت RAM دارید. در کنار این سیستم باید از نرم افزارهای زیر نیز استفاده کنید :
- سیستم عامل لینوکس یا ویندوز 95/98/2000/NT/7
- وب سرور Apache 1.3.19-5
- مرور گراینترنتی بروز شده Internet Explore، گوگل کروم یا فایر فاکس
- دانلود برنامه Ruby 1.8.5
فواید و معایب زبان Ruby
مزایای زبان روبی :
- خوانایی بالا و Syntax دقیق نسبت به سایر رقبا :
این مزیت باعث می شود که کدنویسی در آن به صورت ساده و مستقیم الخط انجام شود. برای مثال :
نمونه کد نوشته شده در زبان Ruby :
1 2 3 |
x = readline.to_i print "#{x} is positive" if x > 0 |
نمونه کد نوشته شده در زبان Haskell :
1 2 3 4 5 6 7 |
mport Control.Monad main = do x <- readLn when (x > 0) . putStrLn $ show x ++ " is positive" |
- چند الگویی (Multi-Paradigm) :
برای نوشتن اسکریپت های دستوری، ساده و Bash-Like می توان از زبان برنامه نویسی Ruby استفاده کرد. در واقع مبتدیان می توانند با استفاده از یک سینتکس چندین الگو و تکنیک را اجرا کنند به گونه ای که نیازی به یادگیری Pascal و C++ نخواهند داشت.
- مدیریت حافظه و Garbage-Collector :
مدیریت دستی حافظه برای برنامه نویسان کمی زمان بر می باشد بنابراین با تکیه به این قابلیت، زبان Ruby به خوبی از پس پاکسازی حافظه بر می آید.
مزایای دیگر زبان Ruby
- مناسب برای ساخت اپلیکیشن های تحت وب
- متن باز و رایگان بودن
- Dynamic بودن و عدم نیاز به کامپال کردن کدها
- فریم ورک های بسیار مانند Ruby on Rails
- رضایت بالا و یادگیری سریع برای مبتدیان
- جامعه کاربری پر جمعیت
- کتابخانه های سرشاز از API
معایب زبان روبی :
- سرعت پردازش کمتر نسبت به همتای خود مانند Java یا PHP
- اشکال زدایی (debug) کدهای نوشته شده در Ruby، برخی اوقات با ارور مواجه شده و امکانپذیر نیست.
- زبان های تفسیری (interpreted) نسبت به زبان های گردآورنده (Compiled)، سرعت کمتری دارند.
- پیدا کردن Gem ها و کتابخانه های زبان Ruby دشوار است.
- نسخه های بروز رسانی شده کمی از آن منتشر شده است.
کلام آخر
اگر علاقمند به برنامه نویسی و توسعه اپلیکیشن های موبایل یا کامپیوتر هستید، یکی از ساده ترین زبان های برنامه نویسی، زبان Ruby است. این زبان با ویژگی های بسیار، به صورت منبع باز در دسترس شما بوده و یادگیری آن نسبت به زبان های دیگر آسان تر است. همچنین هر ساله به تعداد طرفداران این زبان افزوده می شود. بنابراین با اگر این زبان می تواند نیازهای شما را برآورده کند نباید در یادگیری آن شکی کنید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.