Ruby - język programowania
Ruby – interpretowany, w pełni obiektowy i dynamicznie typowany język programowania stworzony w 1995 roku przez Yukihiro Matsumoto (pseudonim Matz). W języku angielskim ruby oznacza rubin.
Od roku 2003 lawinowo zdobywa nowych zwolenników, głównie za sprawą popularnego frameworku do tworzenia aplikacji internetowych o nazwie Ruby on Rails, tworzonego przez grupę programistów pod kierownictwem Davida Heinemeiera Hanssona.
W roku 2005 według statystyk sklepu Amazon.com dwie najpopularniejsze książki na temat Ruby i Ruby on Rails były najlepiej sprzedawanymi pozycjami z kategorii Programowanie.
30 stycznia 2009 roku została wydana wersja 1.9.1. Poprawia ona m.in. obsługę Unicode i wydajność interpretera, dzięki wprowadzeniu nowego mechanizmu o nazwie YARV (ang. Yet Another Ruby VM).
24 lutego 2013 została wydana wersja 2.0.0
Ruby bazuje na wielu językach, takich jak CLU, Eiffel, Lisp, Perl, Python czy Smalltalk. Składnia jest zorientowana liniowo i oparta na składni CLU oraz, w mniejszym stopniu, Perla.
Ruby posiada:
- automatyczne odśmiecanie pamięci (ang. garbage collection) – w standardowej implementacji MRI w starych wersjach stosowany był wolny garbage collector typu mark-and-sweep, który, aby wykonać czyszczenie, musiał zatrzymać wykonanie programu (stop-the-world) i był krytykowany za zbyt wolne działania[4]. W wersji 2.1 wprowadzono nowy generacyjny system odśmiecania pamięci (generational garbage collection), który jednak okazał się niewystarczająco poprawiony[5]. Z tego powodu w wersji 2.2.0 pojawiła się kolejna, inkrementalna, implementacja garbage collectora. Dodano w niej również odśmiecanie symboli, które w poprzednich wersjach nie były nigdy sprzątane.
- iteratory
- przeciążanie operatorów (ang. operator overloading)
- normalne i zaawansowane właściwości zorientowania obiektowego (klasa, metoda ...)
- obsługa wyjątków (ang. exception handling)
- wyrażenia regularne wbudowane w składnię
- liczby całkowite o dowolnych rozmiarach
- dodawanie metod do instancji klasy - możliwa jest zmiana lub dodanie metody do instancji danej klasy
- bloki i lambdy (closures) - wygodne przekazywanie funkcji jako parametrów
- "Duck typing" - rozpoznawanie typów na podstawie ich zachowania, a nie deklaracji
- moduły - rodzaj wielodziedziczenia pozwalający włączyć gotową implementację zbioru metod do danej klasy
- możliwość zmiany praktycznie wszystkiego - dodanie dodatkowych metod do klasy Array, czy zmiana sposobu drukowania liczb całkowitych są niezmiernie proste.
- zmienne leksykalne modyfikowalne w czasie działania programu
Programy pisane w Ruby charakteryzują się wysoką przenośnością pomiędzy platformami (istnieją implementacje na wiele systemów Uniksowych, DOS, Windows, OS X, BeOS itd.).
Ruby jest rozwijany jako otwarte oprogramowanie i dostępny na licencji GPL oraz na własnej licencji wymagającej zmiany nazw plików wykonywalnych w przypadku zamknięcia kodu. |