مهندس نرم افزار، توسعه دهنده جاوا، لینوکسی و فقط Open Source، ورزشکار و طبیعت دوست، در کل ساده بخوام بگم یه برنامه نویس دون پایه :)
زبان برنامه نویسی روبی(Ruby)
یک زبان برنامه نویسی انعطاف پذیر و متن باز با تمرکز بر سادگی و بهره وری و شیء گرا است.
روبی ویژگیهای نگارشی پرل و شی گرایی اسمالتاک را با هم در خود دارد. زبان روبی در سالهای میانی دهه ۱۹۹۰ توسط یوکیهیرو ماتسوموتو در ژاپن اختراع شد. ویژگیهای گوناگون زبانهای پرل، لیسپ، اسمالتاک و آیفل الهامبخش ماتسوموتو در ساخت روبی بودند.
زبان برنامه نویسی روبی از پارادایم های(شیوه های) مختلف برنامه نویسی از جمله تابعی و شیءگرا و بازتابی پشتیبانی می کند.
روبی یک زبان متن باز و رایگان است نه تنها رایگان، بلکه رایگان برای استفاده، کپی، تغییر و توزیع است.
روبی در میان ۱۰ زبان برنامه نویسی برتر از دید شاخص های اندازه گیری مثل TIOBE است.
ساختار کد(Syntax)
ساختار کد در روبی بسیار شبیه Syntax پرل و پایتون است. اعلان کلاسها و متدها توسط کلمات کلیدی انجام میشود. در مقایسه با پرل متغیرها الزاماً با یک علامت خاص شروع نمیشوند. (وقتی از چنین علائمی استفاده شود علامت حوزه دید متغیر را تغییر میدهد) بارزترین تفاوت روبی از C و Perl آنست که کلمات کلیدی (بجای براکت) برای تعریف بلوکهای کد استفاده میشوند. سطر جدید بهعنوان پایان یک جمله بکار برده میشود در عین حال که برای اینکار میتوان از یک سمی کالون (;) نیز استفاده کرد. تورفتگیها معنی خاصی ندارند (برعکس پایتون). نمونههایی از Syntax روبی:
مثال کلاسیک Hello world:
puts "Hello World!"
مقداری کد اساسی روبی:
# Everything, including a literal, is an object, so this works:
-199.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 = {: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) و بررسی وب سایت های معروف:
منابع :
سایت زبان برنامه نویسی روبی
مطلبی دیگر از این انتشارات
زبان روبی: ادامه مبحث متغیر ها و آرایه ها
مطلبی دیگر از این انتشارات
زبان روبی: مقدمه
مطلبی دیگر از این انتشارات
زبان روبی: اعداد صحیح و اعشاری