زبان برنامه نویسی ruby چیست ? ♦️ توضیح ۰ تا ۱۰۰ / ۲۰۲۲


زبان برنامه نویسی ruby چیست ? توضیح ۰ تا ۱۰۰ / ۲۰۲۲
زبان برنامه نویسی ruby چیست، سلام خدمت کاربر های عزیز مجله آی تی داخل این مقاله قصد داریم ۰ تا ۱۰۰ زبان برنامه نویسی ruby چیست رو به شما توضیح بدیم که کامل تو کفتون باشه?? و همونطور که داخل مقاله های قبل انواع زبان های برنامه نویسی توضیح دادیم که از لینک های زیر میتونید دسترسی داشته باشید
- برنامه نویسی چیست
- زبان برنامه نویسی پایتون چیست
- زبان برنامه نویسی Lisp چیست
- زبان برنامه نویسی R چیست
- زبان برنامه نویسی lua چیست
- زبان برنامه نویسی go چیست
- جاوا اسکریپت چیست
- روش های کسب درآمد از برنامه نویسی
روبی (به انگلیسی: Ruby) یک زبان برنامه نویسی انعطاف پذیر، تحت وب، نافذ، پویا و شی گرا است. روبی ویژگی های نوشتن Perl را با شی گرا Smalltalk ترکیب می کند. زبان روبی در اواسط دهه ۱۹۹۰ توسط Yukihiro Matsumoto در ژاپن اختراع شد. ویژگی های مختلف زبان های Perl، Lisp، Smalltock و Eiffel ماتسوموتو را برای ساختن روبی الهام بخشید.
زبان روبی از انواع پارادایم های برنامه نویسی از جمله برنامه نویسی تابعی، شی گرا و بازتابی پشتیبانی می کند، دارای عبارات و متغیرهای پویا است و مدیریت حافظه را خودکار می کند.
نسخه فعلی این زبان روبی ۲.۳.۳ است که در ۳۰ زبان با مترجم یک طرفه پیاده سازی شده است. تا سال ۲۰۱۰، گونههای مختلفی از زبان روبی توسعه یافتهاند که از میان آنها میتوان به جیروبی، روبینوس، مکروبی، آیرنروبی و هاتروبی، ام روبی اشاره کرد.
زبان روبی به طور رسمی در ۲۴ فوریه ۱۹۹۳ توسط یوکیهیرو ماتسوموتو معرفی شد. او به دنبال ساخت زبانی بود که امکانات متعادلی را برای برنامه نویسی تابعی و برنامه نویسی دستوری برای برنامه نویس فراهم کند.
- برنامه نویسی شی گرا چیست
- زبان برنامه نویسی سالیدیتی چیست
- چگونه هوش مصنوعی یاد بگیریم
- سوکت نویسی چیست
- فرانت اند و بک اند چیست
ماتسوموتو در مورد انگیزه خود برای ساختن روبی می گوید: «من به دنبال زبانی بودم که شی گراتر از پایتون و قدرتمندتر از Pearl باشد. به همین دلیل تصمیم گرفتم خودم این کار را انجام دهم.»
تاریخچه زبان برنامه نویسی ruby
زبان برنامه نویسی ruby یوکیهیرو ماتسوموتو و همکارش نام های «روبی» و «Coral» را برای این زبان جدید انتخاب کردند. نام “روبی” به عنوان نام نهایی انتخاب شد زیرا Coral قبلا به عنوان یکی از زبان های برنامه نویسی بریتانیا انتخاب شده بود.
ماتسوموتو گفت یکی از دلایل انتخاب نام “روبی” این بود که یاقوت (به انگلیسی: Ruby) نماد تولد یکی از همکارانش بود.
اولین انتشار زبان برنامه نویسی ruby
زبان برنامه نویسی ruby اولین نسخه روبی با عنوان روبی ۰.۹۵ در ۲۱ دسامبر ۱۹۹۵ در یکی از شبکه های اینترنتی تخصصی ژاپن منتشر شد. پس از آن در عرض دو روز سه نسخه دیگر منتشر شد. در این دوره، اولین لیست ایمیل روبی در ژاپن راه اندازی شد.
روبی نسخه ۱.۰ زبان برنامه نویسی روبی
اولین نسخه اصلی روبی با عنوان روبی ۱.۰ در ۲۵ دسامبر ۱۹۹۶ منتشر شد. پس از انتشار روبی ۱.۳ در سال ۱۹۹۹، اولین لیست ایمیل انگلیسی زبان منتشر شد. در سپتامبر ۲۰۰۰، اولین راهنمای برنامه نویسی روبی به زبان انگلیسی منتشر شد که به افزایش محبوبیت این زبان در چندین کشور کمک کرد.
فریمورک های زبان برنامه نویسی روبی
روبی Rails Framework مورد علاقه اکثر برنامه نویسان روبی است که در سال ۲۰۰۵ توسط دیوید هاین مایر هانسون یا به اختصار DHH تاسیس شد.
به عبارت دیگر، Rails اکثر برنامه نویسان را به سمت روبی جذب کرد! حروف “روبی” و “روبی Ann Rails” به قدری با هم استفاده می شوند که ممکن است تفاوت بین این دو برای بسیاری مشخص نباشد.
- Sinatra یکی دیگر از فریمورک های قدرتمند روبی است. که ساختار بسیار سبک تری نسبت به روبی Rails دارد و ساختار اصلی آن شامل مدیریت مسیر است (توجه: اما پکیج های روبی ریلز را می توان در صورت نیاز وارد کرد)، سیناترا Blake Mizerany دارای معماری MVC است.
- Padrino یک فریمورک کوچک با کمک کننده های بسیار مفید است یکی از مهمترین مزایای پادرینو داشتن یک generator است که به توسعه نرم افزار کمک می کند.
گفته های توسعه دهنده زبان برنامه نویسی روبی
توسعه دهنده زبان روبی، یوکیهیرو ماتسوموتو، می گوید که روبی برای افزایش بهره وری و سرگرمی برای برنامه نویسان طراحی شده است و از اصل یک رابط کاربری خوب پیروی می کند.
- بهترین زبان برنامه نویسی برای هک
- بهترین زبان برنامه نویسی برای شروع
- بهترین زبان برنامه نویسی برای مهاجرت
او تاکید می کند که طراحی سیستم ها باید بیشتر بر نیازهای انسان تمرکز کند تا کامپیوتر. بیشتر مردم، به ویژه برنامه نویسان، بر روی ماشین ها تمرکز می کنند. گل گفتی واقعا?
آنها فکر می کنند “با این کار ماشین ها سریع تر می شوند، ماشین ها در اجرا کارآمدتر می شوند و …” آنها روی ماشین ها تمرکز می کنند، اما واقعاً باید به انسان ها توجه کنیم که چگونه به برنامه نویسی توجه می کنند یا چگونه توجه می کنند.
برنامه ها را اجرا می کنند ماشین مراقبت می شود. روبی کمترین غافلگیری برای دستیابی به هدف نشان داده شده است، به این معنی که زبان باید به گونه ای رفتار کند که برای کاربرانش کمتر گیج کننده باشد.
- بهترین زبان برنامه نویسی برای هوش مصنوعی
- بهترین زبان برنامه نویسی برای اندروید
- بهترین زبان برنامه نویسی برای طراحی سایت
ماتسوموتو همچنین بیان می کند که هدف از اولین طراحی او ایجاد زبانی بود که بتواند از آن لذت ببرد. این با کاهش کار برنامه نویس و ابهامات منطقی است. اما کوچکترین شگفتی هنوز به بیان زبان برنامه نویسی روبی بسیار نزدیک است.
مردم ممکن است این را به این معنا تفسیر کنند که رفتارهای روبی سعی میکنند مشترکات رفتارهای زبانهای دیگر را به هم مرتبط کنند.
در بحثی در ماه مه ۲۰۰۵ در روزنامه CampAngel روبی، Maxomoto به دنبال حفظ روبی با حداقل تعجب بود. توضیح دهید که هر فرصت طراحی برخی را شگفت زده می کند. او از معیار خود برای ارزیابی غافلگیری استفاده کرد. ماتسوموتو در گزارشی این اظهارات را بیان کرد.
“همه آنها از پس زمینه های شخصی می آیند، برخی از پایتون، برخی از پرل، و ممکن است از جنبه های مختلف زبان شگفت زده شوند.
سپس آنها به من می گویند که ما از برخی جنبه های زبان شگفت زده شده ایم، بنابراین روبی به دنبال این است. قانون کمترین غافلگیری او پا گذاشته است.” .صبر کنید… هدف از کمترین غافلگیری فقط برای شما نیست.
این گل برای من به معنای کمترین شگفتی ممکن است. این به معنای کمترین شگفتی پس از آموزش کامل زبان است. به عنوان مثال، من قبل از طراحی روبی یک برنامه نویس ++C بودم. من یک برنامه را به مدت دو یا سه سال به طور انحصاری در C++ نوشتم و بعد از دو سال برنامه نویسی با آن، هنوز در هیبت بودم.
امکانات زبان برنامه نویسی روبی ( ruby )
- کاملاً شی گرا
- داینامیک
- نحو کوتاه و انعطافپذیر
- چهار سطح از حوزه دید متغیر شامل: global, class ,instance ,local
- مدیریت استثناء
- پشتیبانی از iterators و closures (بر اساس تبادل بلوکهای کد)
- پشتیبانی محلی از regular expressions (شبیه پرل) در سطح زبان
- سربارگزاری عملگرها
- جمعآوری زباله خودکار
- قابلیت حمل بالا
- در همه سیستمعامل اصلی پیادهسازی
- پردازش استثناء
- سربار اپراتور
- پشتیبانی شراکتی از multi-threading در تمام پلتفرمهای با استفاده از green threads
- پشتیبانی کامل از یونیکد و رمزنگاریهای شخصیت چند گانه (از نسخه ۱٫۹)
- کتابخانههای اشتراکی/DLL در اکثر پلتفرمها
- introspection, reflection و meta-programming
- اتصال بومی APIها در C
- پوسته تعاملی روبی (REPL)
- بسته مدیریت متمرکز از طریق RubyGems
- کتابخانه استاندارد بزرگ
- پشتیبانی از تزریق نیازمندی
- continuations و generators
تعامل
توزیع استاندارد روبی دارای یک مفسر تعاملی خط فرمان بنام irb است که میتواند برای آزمایش سریع کد بکار رود. یک نشست با این برنامه تعاملی به صورت زیر است:
$ irb
irb(main):۰۰۱:۰> puts "Hello, World"
Hello, World
=> nil
irb(main):۰۰۲:۰> ۱+۲
=> ۳
همچنین وجود ماژول readline به کاربر امکان استفاده از shellهای مختلف را با پشتیبانی از تاریخچه تغییرات میدهد.
Readline.readline('', true) # param true means ~ "enable history"
سینتکس های زبان برنامه نویسی ruby
سینتکس روبی بسیار شبیه به پرل و پایتون است. کلاس ها و متدها با کلمات کلیدی اعلان می شوند. در مقایسه با Perl، متغیرها نباید با نماد خاصی شروع شوند.
(وقتی از چنین نمادهایی استفاده می شود، نماد میدان دید متغیر را تغییر می دهد.) واضح ترین تفاوت بین روبی و Cو Perl این است که از کلمات کلیدی (به جای پرانتز) برای تعریف بلوک های کد استفاده می شود.
خط جدید به عنوان انتهای جمله استفاده می شود و می توان از نقطه ویرگول (;) نیز استفاده کرد. تورفتگی ها معنای خاصی ندارند (برخلاف پایتون). نمونه هایی از نحو روبی را می توان در بخش مثال ها یافت.
مثالی کد های زبان برنامه نویسی ruby
مثال کلاسیک Hello world:
puts "Hello World!"
مقداری کد اساسی روبی:
# Everything, including a literal, is an object, so this works:
-۱۹۹.abs # ۱۹۹
"ruby is cool".length # ۱۲
"Rick".index("c") # ۲
"Nice Day Isn't It?".split(//).uniq.sort.join # " '?DINaceinsty"
Collections
ایجاد و استفاده از یک آرایه:
a = [۱, 'hi', ۳.۱۴, ۱, ۲, [۴, ۵]]
a[۲] # ۳.۱۴
a.reverse # [[۴, ۵], ۲, ۱, ۳.۱۴, 'hi', 1]
a.flatten.uniq # [۱, '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} # Deletes :water => 'wet'
Blocks and iterators
هر دو سینتکس برای ایجاد یک بلوک کد:
{ puts "Hello, World!" }
== do puts "Hello, World!" end ==
ارسال پارامتر به یک بلاک تا یک closure شود:
# In an object instance variable, remember a block.
def remember(&b)
@block = b
end
# Invoke the above method, giving it a block that takes a name.
remember {|name| puts "Hello, #{name}!"}
# When the time is right (for the object) -- call the closure!
@block.call("John")
# Prints "Hello, John!"
بازگشت closure از یک متد:
def foo(initial_value=۰)
var = initial_value
return Proc.new {|x| var = x}, Proc.new { var }
end
setter, getter = foo
setter.call(۲۱)
getter.call # => 21
دادن جریان کنترل یک برنامه به یک بلوک که در هنگام فراخوانی ایجاد شده:
def a
yield "hello"
end
# Invoke the above method, passing it a block.
a {|s| puts s} # Prints: 'hello'
# Perhaps the following needs cleaning up.
# Breadth-first search
def bfs(e) # 'e' should be a block.
q = [] # Make an array.
e.mark # 'mark' is a user-defined method. (??)
yield e # Yield to the block.
q.push e # Add the block to the array.
while not q.empty? # This could be made much more Ruby-like.
u = q.shift
u.edge_iterator do |v|
if not v.marked? # 'marked?' is a user-defined method.
v.mark
yield v
q.push v
end
end
end
end
bfs(e) {|v| puts v}
ایجاد حلقه بر روی آرایهها و enumorationها با استفاده از بلوکها:
a = [۱, 'hi', ۳.۱۴]
a.each {|item| puts item} # Prints each element
(۳..۶).each {|num| puts num} # Prints the numbers 3 through 6
[۱,۳,۵].inject(۰) {|sum, element| sum + element} # Prints 9 (you can pass both a parameter and a block)
بلوکها با بسیاری از متدهای داخلی روبی کار میکنند:
File.open('file.txt', 'w+b') do |file|
file.puts 'Wrote some text.'
end # File is automatically closed here
یا:
File.readlines('file.txt').each do |line|
# Process each line, here.
end
استفاده از یک enumoration و یک بلوک برای جذر گرفتن اعداد ۱ تا ۱۰:
(۱..۱۰).collect {|x| x*x} => [۱, ۴, ۹, ۱۶, ۲۵, ۳۶, ۴۹, ۶۴, ۸۱, ۱۰۰]
کلاسها
کد زیر یک کلاس بنام Person را تعریف میکند.
class Person
def initialize(name, age)
@name, @age = name, age
end
def <=>(person)
@age <=> person.age
end
def to_s
"#{@name} (#{@age})"
end
attr_reader :name, :age
end
group = [ Person.new("John", ۲۰),
Person.new("Markus", ۶۳),
Person.new("Ash", ۱۶)
]
puts group.sort.reverse
استثناها
یک استثنا (exception) توسط اعلان raise ایجاد میشود:
raise
یک پیام اختیاری میتواند به استثناء اضافه شود:
raise "This is a message"
شما همچنین میتوانید تعیین کنید که چه نوعی از استثناء را میخواهید ایجاد کنید:
raise ArgumentError, "Illegal arguments!"
استثناها توسط rescue کنترل میشوند. این عنوان میتواند استثناهایی را که از StandardError مشتق میشوند بگیرد:
begin
# Do something
rescue
# Handle exception
end
توجه داشته باشید که تلاش برای گرفتن تمام استثناها توسط یک rescue یک اشتباه معمول است و برای گرفتن تمام استثناها باید به صورت زیر عمل کرد:
begin
# Do something
rescue Exception
# Handle exception
end
یا یک استثنای بهخصوص:
begin
# ...
rescue RuntimeError
# handling
end
و نهایتاً امکان آن وجود دارد که تعیین کرد شی استثناء برای عنوان کنترلکننده مهیا شود:
begin
# ...
rescue RuntimeError => e
# handling, possibly involving e
end
همچنین آخرین استثناء در یک متغیر جهانی به صورت !$ ذخیره میشود.
پیادهسازیها
سیستمعاملها
روبی برای سیستمعاملهای زیر ارائه میشود:
- بیشتر انواع یونیکس
- لینوکس
- داس (رایانه)
- ویندوز ۹۵/۹۸/اکسپی/انتی/۲۰۰۰/ویستا/۷
- مکینتاش OSX
- بی اواس
- آمیگا
- مورف اواس
- Acron RISC OS
- اواس/۲
- هجا
میزان محبوبت زبان برنامه نویسی ruby در میان مردم
عکسو کامل باز کنید.
کاش مقایسه بشه با زبان های دیگه
نقاط تمایز گفته بشه
چشم به زودی مقایسه زبان های برنامه نویسی میزاریم