آموزش برنامه نویسیزبان های برنامه نویسیمباحث عمومیمهندسی نرم افزارنرم افزار

زبان برنامه نویسی روبی(Ruby)

Ruby

زبان برنامه نویسی روبی(Ruby)

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

روبی ویژگی‌های نگارشی پرل و شی گرایی اسمال‌تاک را با هم در خود دارد. زبان روبی در سال‌های میانی دهه ۱۹۹۰ توسط یوکیهیرو ماتسوموتو در ژاپن اختراع شد. ویژگی‌های گوناگون زبان‌های پرل، لیسپ، اسمال‌تاک و آیفل الهام‌بخش ماتسوموتو در ساخت روبی بودند.

زبان برنامه نویسی روبی از پارادایم های(شیوه های) مختلف برنامه نویسی از جمله تابعی و شیءگرا و بازتابی پشتیبانی می کند.

روبی یک زبان متن باز و رایگان است نه تنها رایگان، بلکه رایگان برای استفاده، کپی، تغییر و توزیع است.

روبی در میان ۱۰ زبان برنامه نویسی برتر از دید شاخص های اندازه گیری مثل TIOBE است.

ساختار کد(Syntax)

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

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

puts "Hello World!"

 

مقداری کد روبی:

# Everything, including a literal, is an object, so this works:
 -۱۹۹.abs                                       # 199
 "ruby is cool".length                          # 12
 "Rick".index("c")                              # 2
 "Nice Day Isn't It?".split(//).uniq.sort.join  # " '?DINaceinsty"

 

Collections

ایجاد و استفاده از یک آرایه:

a = [1, 'hi', 3.14, 1, 2, [4, 5]]

 a[2]                      # 3.14
 a.reverse                 # [[4, 5], 2, 1, 3.14, 'hi', 1]
 a.flatten.uniq            # [1, 'hi', 3.14, 2, 4, 5]

ایجاد و استفاده از یک Hash:

hash = {:water => 'wet', :fire => 'hot'}
 puts hash[:fire]                  # Prints:  hot

 hash.each_pair do |key, value|    # Or:  hash.each do |key, value|
   puts "#{key} is #{value}"
 end

 # Prints:  water is wet
 #          fire is hot

 hash.delete_if {|key, value| key == water}  

ساخت یک کلاس:

class Numeric
  def plus(x)
    self.+(x)
  end
end

y = 5.plus 6

پیاده‌سازی‌ها

روبی پیاده‌سازی های مختلفی دارد:

MRI ("Matz’s Ruby Interpreter")
CRuby (since it is written in C)
JRuby (is Ruby atop the JVM (Java Virtual Machine))
MacRuby (is a Ruby that’s tightly integrated with Apple’s Cocoa libraries for Mac OS X)
Rubinius (Built on top of LLVM)
mruby (for embedded System)
IronRuby (is an implementation “tightly integrated with the .NET Framework)
MagLev is “a fast, stable, Ruby implementation with integrated object persistence and  distributed shared cache”.
Cardinal is a “Ruby compiler for Parrot Virtual Machine” (Perl 6).

 

ویژگی ها:

روبی دارای ویژگی های مدیریت استثناءها مانند Java یا Python است تا بتواند کنترل خطاها را آسان کند.

روبی دارای یک جمع کننده زباله(garbage collector) برای همه اشیاء Ruby است.

بوسیله روبی نوشتن اکستنشن ها برای زبان C ساده تر از پرل یا پایتون است.

روبی بسیار قابل حمل است: بیشتر در گنو / لینوکس توسعه یافته است، اما در بسیاری از انواع UNIX، Mac OS X، ویندوز، DOS، BeOS، OS / 2 و غیره کار می کند.

فریمورک‌ها

۱-روبی آن ریلز فریمورک محبوب و مورد علاقه ی اکثر برنامه نویسان روبی است که در سال ۲۰۰۵ توسط آقای David Heinemeier Hansson یا به احتصار DHH بنیان‌گذاری شد ، به‌طور دیگر میتوان گفت اکثر برنامه نویسان توسط ریلز به روبی کشیده شده‌اند ! نام‌های «روبی» و «روبی آن ریلز» آنقدر با هم استفاده شده‌اند که برای بسیاری شاید تفاوت این دو روشن نباشد.

۲-سیناترا یکی دیگر از فریمورک‌های قدرتمند روبی می‌باشد که ساختار بسیار سبک تری نسبت به روبی آن ریلز دارد و ساختار پایه‌ای آن شامل مدیریت کردن مسیرها می‌باشد ( نکته : اما در صورت نیاز میتوان پکیج‌های روبی آن ریلز را در آن وارد کرد ) ، سیناترا توسط Blake Mizerany و از معماری MVC برخوردار است.

۳-پادرینو یک فریمورک کوچک با helper‌های بسیار کربردی است یکی از مهم‌ترین مزایای پادرینو داشتن generator می‌باشد که به توسعه نرم‌افزار کمک شایانی می کند .

جامعه آماری(Community) و بررسی وب سایت های معروف:

بررسی سایت TIOBE
بررسی سایت TIOBE
تعداد پروژه های گیت هاب
تعداد پروژه های گیت هاب
درآمد ماهیانه سایت Indeed.com البته بیشتر سمت کانادا و آمریکاست آمارهاش
درآمد ماهیانه سایت Indeed.com البته بیشتر سمت کانادا و آمریکاست آمارهاش
درآمد ماهیانه سایت StackOverflow
درآمد ماهیانه سایت StackOverflow
جستجوی گوگل
جستجوی گوگل

کاربرد زبان روبی :

بعد از جواب دادن به سوال روبی چیست به سراغ کاربرد روبی برویم، زبان برنامه نویسی روبی چون یک زبان برنامه نویسی چند منظوره است میتواند در بخش های مختلفی کاربرد داشته باشد مثل موارد زیر :

  • در حوزه وب
  • شبیه سازی
  • مدل سازی سه بعدی
  • رباتیک
  • شبکه بندی
  • علم تلفن
  • سیستم های مدیریت سیستم
  • و . . .

ویژگی های زبان برنامه نویسی روبی :

  • قابلیت حمل بالا
  • کاملاً شی گرا
  • کتابخانه‌های اشتراکی/DLL در اکثر پلتفرمها
  • داینامیک
  • نحو کوتاه و انعطاف‌پذیر
  • مدیریت استثناء
  • اتصال بومی APIها در C
  • چهار سطح از حوزه دید متغیر شامل: global, class ,instance ,local
  • سربارگزاری عملگرها
  • پشتیبانی از iterators و closures (بر اساس تبادل بلوکهای کد)
  • پشتیبانی محلی از regular expressions (شبیه پرل) در سطح زبان
  • پوسته تعاملی روبی (REPL)
  • بسته مدیریت متمرکز از طریق RubyGems
  • کتابخانه استاندارد بزرگ
  • پشتیبانی از تزریق نیازمندی
  • جمع‌آوری زباله خودکار
  • در همه سیستم‌عامل اصلی پیاده‌سازی
  • پردازش استثناء
  • سربار اپراتور
  • پشتیبانی شراکتی از multi-threading در تمام پلتفرمهای با استفاده از green threads
  • پشتیبانی کامل از یونیکد و رمزنگاریهای شخصیت چند گانه (از نسخه ۱٫۹)
  • introspection, reflection و meta-programming
  • continuations و generators

 

منابع :

سایت زبان برنامه نویسی روبی

ویکی پدیا

مصطفی حسین زاده

نظرات