0

زبان برنامه نویسی ruby چیست ? ♦️ توضیح 0 تا 100 / 2022

تصویر پیدا نشد !
بازدید 54

[ad_1]

فهرست موضوعات مقاله

زبان برنامه نویسی ruby چیست، سلام خدمت کاربر های عزیز مجله آی تی داخل این مقاله قصد داریم ۰ تا ۱۰۰ زبان برنامه نویسی ruby چیست رو به شما توضیح بدیم که کامل تو کفتون باشه😂💙 و همونطور که داخل مقاله های قبل انواع زبان های برنامه نویسی توضیح دادیم که از لینک های زیر میتونید دسترسی داشته باشید

روبی (به انگلیسی: Ruby) یک زبان برنامه نویسی انعطاف پذیر، تحت وب، نافذ، پویا و شی گرا است. روبی ویژگی های نوشتن Perl را با شی گرا Smalltalk ترکیب می کند. زبان روبی در اواسط دهه ۱۹۹۰ توسط Yukihiro Matsumoto در ژاپن اختراع شد. ویژگی های مختلف زبان های Perl، Lisp، Smalltock و Eiffel ماتسوموتو را برای ساختن روبی الهام بخشید.

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

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

زبان روبی به طور رسمی در ۲۴ فوریه ۱۹۹۳ توسط یوکیهیرو ماتسوموتو معرفی شد. او به دنبال ساخت زبانی بود که امکانات متعادلی را برای برنامه نویسی تابعی و برنامه نویسی دستوری برای برنامه نویس فراهم کند.

ماتسوموتو در مورد انگیزه خود برای ساختن روبی می گوید: «من به دنبال زبانی بودم که شی گراتر از پایتون و قدرتمندتر از Pearl باشد. به همین دلیل تصمیم گرفتم خودم این کار را انجام دهم.»

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

تاریخچه زبان برنامه نویسی ruby

زبان برنامه نویسی ruby یوکیهیرو ماتسوموتو و همکارش نام های «روبی» و «Coral» را برای این زبان جدید انتخاب کردند. نام “روبی” به عنوان نام نهایی انتخاب شد زیرا Coral قبلا به عنوان یکی از زبان های برنامه نویسی بریتانیا انتخاب شده بود.

ماتسوموتو گفت یکی از دلایل انتخاب نام “روبی” این بود که یاقوت (به انگلیسی: Ruby) نماد تولد یکی از همکارانش بود.

اولین انتشار زبان برنامه نویسی 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 چیست ? ♦️ توضیح 0 تا 100 / 2022

مثالی کد های زبان برنامه نویسی ruby

مثال کلاسیک 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 "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

همچنین آخرین استثناء در یک متغیر جهانی به صورت !$ ذخیره می‌شود.

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

روبی دو پیاده‌سازی اصلی دارید: مفسر رسمی روبی که بیشتر مورد استفاده قرار می‌گیرد، و JRuby که یک پیاده‌سازی براساس جاوا است.

سیستم‌عامل‌ها

روبی برای سیستم‌عامل‌های زیر ارائه می‌شود:

  • بیشتر انواع یونیکس
  • لینوکس
  • داس (رایانه)
  • ویندوز ۹۵/۹۸/اکس‌پی/ان‌تی/۲۰۰۰/ویستا/۷
  • مکینتاش OSX
  • بی اواس
  • آمیگا
  • مورف اواس
  • Acron RISC OS
  • اواس/۲
  • هجا

میزان محبوبت زبان برنامه نویسی ruby در میان مردم

میزان محبوبت زبان برنامه نویسی ruby در میان مردم 2022

عکسو کامل باز کنید.

[ad_2]

نظرات کاربران

  •  چنانچه دیدگاهی توهین آمیز باشد و متوجه نویسندگان و سایر کاربران باشد تایید نخواهد شد.
  •  چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  •  چنانچه از لینک سایر وبسایت ها و یا وبسایت خود در دیدگاه استفاده کرده باشید تایید نخواهد شد.
  •  چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.
  • چنانچه دیدگاهی بی ارتباط با موضوع آموزش مطرح شود تایید نخواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بیشتر بخوانید