Ο διερμηνέας της Ruby του Matz (Matz's Ruby Interpreter ή Ruby MRI, γνωστός και σαν CRuby) είναι η υλοποίηση αναφοράς της γλώσσας προγραμματισμού Ruby. Επειδή προς το παρόν δεν υπάρχει πρότυπο της γλώσσας Ruby, η υλοποίηση MRI θεωρείται το ντε φάκτο σημείο αναφοράς. Το εγχείρημα RubySpec έχει δημιουργήσει μια μεγάλη σουίτα δοκιμών που αντιστοιχεί στη συμπεριφορά των εκδόσεων 1.8.6/1.8.7/1.9 και προορίζεται για εργαλείο ελέγχου της συνέπειας μιας υλοποίησης με βάση το πρότυπο. Ο Ruby MRI 1.9.2 σχεδιάζεται ώστε να περάσει το RubySpec.[1]

Ruby MRI
Γενικά
Είδοςελεύθερο λογισμικό
Διανομή
ΛειτουργικάΑνεξάρτητο πλατφόρμας
Ανάπτυξη
Γραμμένο σεC
Άδεια χρήσηςGPLv2
Σύνδεσμοι
Επίσημος ιστότοπος
https://www.ruby-lang.org/
Αποθετήριο κώδικα
https://git.ruby-lang.org/ruby.git
Yukihiro Matsumoto, ο δημιουργός της Ruby.

Τον Ιανουάριο του 2009, κυκλοφόρησε η έκδοση 1.9.1 της Ruby. Οι προγραμματιστές της περιέλαβαν την εικονική μηχανή του εγχειρήματος YARV, η οποία και ενσωματώθηκε στο βασικό δένδρο πηγαίου κώδικα της Ruby στις 31 Δεκεμβρίου του 2006 και κυκλοφόρησε σαν μέρος της Ruby 1.9.

Ιστορία Επεξεργασία

Ο Yukihiro Matsumoto ("Matz") άρχισε να δουλεύει στη Ruby στις 24 Φεβρουαρίου 1993, και κυκλοφόρησε την πρώτη δημόσια έκδοσή της το 1995. Η "Ruby" ονομάστηκε από έναν πολύτιμο λίθο λόγω κάποιου αστείου στο φιλικό κύκλο του Matsumoto σχετικά με το όνομα της γλώσσας προγραμματισμού Perl.[2]

Η έκδοση 1.8 συντηρείται ακόμα και κυκλοφορούν εκδόσεις της (π.χ. έχουν κυκλοφορήσει εκδόσεις της 1.8.7 από τον Απρίλιο του 2008)[3][4]. Η έκδοση αυτή προσφέρει διορθώσεις λαθών αλλά και κάποιες βελτιώσεις στην ίδια τη γλώσσα.

Στην έκδοση 1.9.1 του διερμηνέα (ο κώδικας αποτελεί και τη βάση για την έκδοση 2.0) που κυκλοφόρησε στις 30 Ιανουαρίου 2009[5], προστέθηκε υποστήριξη για Unicode, ο YARV με νήματα πυρήνα (γνωστά και σαν "native threads") [6] και σημαντική βελτίωση στην ταχύτητα[7] σε σχέση με την έκδοση 1.8.

Όροι άδειας λογισμικού Επεξεργασία

Ο διερμηνέας της Ruby και οι βιβλιοθήκες κυκλοφορούν με διπλές άδειες ελεύθερου λογισμικού και ανοιχτού κώδικα, την GPL και την Αδεια της Ruby (Ruby License[8]).

Λειτουργικά συστήματα Επεξεργασία

Η υλοποίηση Ruby MRI είναι διαθέσιμη για τα εξής λειτουργικά συστήματα:

Η παραπάνω λίστα είναι ενδεικτική.

Κριτική Επεξεργασία

Κάποιοι περιορισμοί που συχνά αναφέρονται είναι:

  • Ταχύτητα -- η απόδοση του διερμηνέα της Ruby είναι τελευταία σε σχέση με άλλες παρόμοιες γλώσσες όπως η Perl και η Python[9][10], κυρίως λόγω της σχεδίασης του διερμηνέα: για να εκτελέσει κώδικα Ruby, ο διερμηνέας δημιουργεί ένα συντακτικό δέντρο από τον πηγαίο κώδικα και στη συνέχεια το εκτελεί κατευθείαν, αντί να το μεταγλωττίσει πρώτα σε κάποια πιο αποδοτική εκτελέσιμη μορφή.
  • Προς τα πίσω συμβατότητα (Backward compatibility -- οι εκδόσεις 1.9 και 1.8 έχουν κάποιες μικρές σημασιολογικές διαφορές.[11]

Παραπομπές Επεξεργασία

  1. Ανακοίνωση της λίστας ruby-core Αρχειοθετήθηκε 2010-07-03 στο Wayback Machine. (Αγγλικά)
  2. Συνέντευξη με το δημιουργό της Ruby (Αγγλικά)
  3. Musha, Akinori (26 Μαΐου 2008). «Ruby Core: Ruby 1.8.7-preview4 has been released». Αρχειοθετήθηκε από το πρωτότυπο στις 17 Σεπτεμβρίου 2008. Ανακτήθηκε στις 30 Μαΐου 2008. The new version of Ruby includes many bug fixes, lots of feature enhancements and some performance improvements since 1.8.6 while maintaining stability and backward compatibility with the previous release to a high degree, although there are ongoing efforts that need to be done toward adopting RubySpec. 
  4. «1.8.7 NEWS». Αρχειοθετήθηκε από το πρωτότυπο στις 1 Δεκεμβρίου 2008. Ανακτήθηκε στις 30 Μαΐου 2008. 
  5. [https://web.archive.org/web/20120904001606/http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/284720 Αρχειοθετήθηκε 2012-09-04 στο Wayback Machine. [ANN] Ruby 1.9.1 is released]
  6. «The Ruby VM (Interview with Ruby VM creators)». Αρχειοθετήθηκε από το πρωτότυπο στις 3 Δεκεμβρίου 2012. Ανακτήθηκε στις 26 Ιουλίου 2010.  (Αγγλικά)
  7. Ruby 1.9 - Computer Language Benchmarks Game comparison[νεκρός σύνδεσμος] (Αγγλικά)
  8. «Ruby License (ruby-lang.org)». Αρχειοθετήθηκε από το πρωτότυπο στις 26 Αυγούστου 2011. Ανακτήθηκε στις 26 Ιουλίου 2010. 
  9. Boxplot Summary | Ubuntu : Intel Q6600 Computer Language Benchmarks Game[νεκρός σύνδεσμος]
  10. Ruby Performance Revisited - Joel on Software
  11. InfoQ: Ruby 1.9 released

Εξωτερικοί σύνδεσμοι Επεξεργασία