რუბი
ამ სტატიას ან სექციას ვიკიფიცირება სჭირდება ქართული ვიკიპედიის ხარისხის სტანდარტების დასაკმაყოფილებლად. იმ შემთხვევაში, თუ არ იცით, თუ რა არის ვიკიფიცირება, იხ. დახმარების გვერდი. სასურველია ამის შესახებ აცნობოთ იმ მომხმარებლებსაც, რომელთაც მნიშვნელოვანი წვლილი მიუძღვით სტატიის შექმნაში. გამოიყენეთ: {{subst:ვიკიფიცირება/info|რუბი}} |
რუბი — მაღალი დონის დინამიკური, ობიექტზე ორიენტირებული ენა პროგრამირებაში. მან განსაკუთრებული პოპულარობა მოიპოვა ვებ-პროგრამირების კარკასის–„რეილზის“–შექმნის შემდეგ.
პარადიგმა | მულტი-პარადიგმა |
---|---|
გამოქვეყნების თარიღი | 1995 |
დამფუძნელი | იუკიჰირო მატსუმოტო |
შემქმნელი | იუკიჰირო მატსუმოტო და სხვები |
ბოლო ვერსია | 1.9.1-p129 |
ტიპების მინიჭება | დინამიური |
მთავარი შექმნილი ვერსიები | Ruby MRI, JRuby |
ენების გავლენით | Smalltalk, Perl, Lisp, Scheme, Python, CLU, Eiffel, Ada, Dylan |
ენებზე ზეგავლენა | Groovy, Nu, Madness Script |
ოპერაციული სისტემა | მრავალი |
ლიცენზია |
Ruby License GNU General Public License |
საიტი | http://www.ruby-lang.org |
ქვედა ტექსტი | |
რუბის ძირითად პარადიგმას წარმოადგენს კლასებზე დაფუძნებული ობიექტ ორიენტირებული პროგრამირება შეტყობინებათა გადაცემის მექანიზმით (Class-based OOP via the message passing). ეს კი, შედეგად იძლევა, რომ:
- რუბიში ყველაფერი ობიექტია
- რუბიში არ არსებობენ მეთოდები და ფუნქციები, როგორც ასეთი; მათ როლს ასრულებს შეტყობინებები და პროცედურა-ობიექტები
- შესაძლებელია შეტყობინების კონვერტაცია პროცედურა-ობიექტად
- შესაძლებელია პროცედურა-ობიექტის კონვერტაცია შეტყობინებად
- შესაძლებელია ანონიმური პროცედურა-ობიექტების შექმნა
ცხადია, რუბი მოდულარულია და ამდენად, შესაძლებელია ფუნქციების ემულაცია. თუმცა გასათვალისწინებელია შემდეგი გარემოება: რუბის მოდული სავსებით ჩვეულებრივი კლასია, კონკრეტული მოდული — ამ კლასის ეგზემპლარი, ხოლო მოდულში მოცემული ფუნქციები კი რეალურად სხვა არაფერია, თუ არა მოდულის კლას-შეტყობინებები (ჯავას სტატიკური მეთოდების ანალოგები). ამდენად, შესაძლებელია ნებისმიერი კლასის გაფართოება მოდულით; მაგალითად:
class Someclass
#მოდულში მოცემული ფუნქციები ემატება კლასის ყველა ეგზემპლარს
include Somemodule
end
sm = Someclass.new
#მოდულში მოცემული ფუნქციები ემატება ამ კონკრეტულ ეგზემპლარს
sm.extend Somemodule
რუბის შეტყობინებები შეიძლება, იყვნენ იტერატორები. ამ უკანასკნელთ ყოველთვის მოყვება ანონიმური პროცედურა-ობიექტი, რომელსაც გადაეცემა იტერაციის შედეგი:
def dummy_iter
yield 1
yield 2
end
dummy_iter { |x| puts x*x } #-> შედეგი:1 4
შეტყობინებების აქტივაციისას ფრჩხილების გამოყენება ფაკულტატურია, მაგ.
some_mes 10 20 იგივეა, რაც some_mes(10, 20)
რუბის უაღრესად მნიშვნელოვანი მახასიათებელია ის, რომ ნებისმიერ შეტყობინებას შეუძლია, ცხადი სახით ჰქონდეს არგუმენტად ანონიმური ბლოკი:
def block_consumer( a, &b )
#message body
end
აქ &b ანონიმური ბლოკია. მისი ყოფნის შემოწმება ხდება გლობალური ცვლადით „block_given?“. ეს საშუალებას გვაძლევს, ადვილად განვახორციელოთ ტრანზაქცია:
block_consumer a do |inner_var|
#transaction code
end
ან შესრულდება transaction code-ის ყველა ინსტრუქცია, ან ერცერთი. ანონიმური ბლოკების გამოყენება საშუალებას გვაძლევს, აგრეთვე, შევქმნათ ამოცანის სპეციფიკური მიკრო-ენები, ეს რუბის გამოყენების ერთ-ერთი უმნიშვნელოვანესი სფეროა.
რუბი, ისევე როგორც პითონი, მეტა-პროგრამირების ფართო საშუალებებს იძლევა. ყოველივე ზემოხსენებილი, და ასევე, რუბის პროგრამების გავრცელებისა და მოპოვების ონლაინ-უტილიტა gem, უტილიტა rake დაარქივებული 2008-06-20 საიტზე Wayback Machine. , პროგრამების შესრულება-განთავსების კარკასი capistrino დაარქივებული 2006-10-20 საიტზე Wayback Machine. ვებ-პროგრამირების კარკასი rails დაარქივებული 2018-06-07 საიტზე Wayback Machine. განაპირებობს რუბის მზარდ პოპულარობას.
რესურსები ინტერნეტში
რედაქტირება- რუბის მთავარი გვერდი
- რუბი პირდაპირ ბრაუზერში დაარქივებული 2007-02-17 საიტზე Wayback Machine.
- Full Ruby on Rails Tutorial დაარქივებული 2007-05-17 საიტზე Archive.isCategory:Webarchive template archiveis links