Ruby – linki

Ruby jest nowoczesnym, w pełni obiektowym, interpretowanym, dynamicznym i o ścisłym typowaniu językiem ogólnego zastosowania.

Ruby jest

...w pełni obiektowy

W Rubym nie ma (tak jak a Javie) podziału na typy podstawowe (prymitywy) i obiekty. Podobnie jak w Pythonie – wszystko jest obiektem. To znaczy, że liczby i teksty też są obiektami i tym samym mają swoje metody.

p 123.methods.length # 106
p 123.class # => Fixnum
p 1.2.class # => Float
p "blah".class # => String
p "blah".methods.length # => 145

...interpretowany

Ruby jest językiem interpretowanym. Brak fazy kompilacji daje w efekcie bardzo krótkie sprzężenie zwrotne. Wszelkie zmiany w kodzie są natychmiast dostępne. Wszelkie konwersje do kodu wykonywalnego (za pomocą Ruby2Exe czy Exerb) nie pozbawiają Rubiego cechy interpretera. Identycznie jest w wypadku Pythona.

...dynamiczny

Nie trzeba deklarować typów. Typ jest ustalany dynamicznie w momencie przypisania (tak jak w Pythonie czy PHP)

x = 123
puts x # => 123
x = 'blah'
puts x # => blah

...o ścisłym typowaniu

Ruby nie miesza typów (podobnie jak Python ale przeciwnie do PHP):
print "1" + 2 # => '+': can't convert Fixnum into String (TypeError)

...ogólnego zastosowania

Ruby (podobnie jak Python, ale przeciwnie do PHP) posiada obsługę wątków i nadaje się tak samo dobrze do tworzenia aplikacji internetowej jak i aplikacji stacjonarnej.

Chcesz w 15 minut zapoznać się z podstawami Rubiego? To zajrzyj na stronę http://tryruby.hobix.com gdzie jest dostępne ładne, interaktywne wprowadzenie z użyciem interpretera Rubiego i techniki Ajax.

Warto także zajrzeć do polskiej wikipedii poświęconej językowi Ruby. Zobacz też to polskie wprowadzenie do Rubiego.

To jednak co może być powodem do rewolucyjnego przejścia z innych języków na Rubiego to Rails, wspaniale zaprojektowany framework do budowania aplikacji internetowych z doskonałą dokumentacją, przykładami, filmami poglądowymi itp.

Artykuły

Frameworks

  • Nitro – kolejny framework w Ruby. Zawiera m.in. ObjectGraph, rozwiązanie podobne do SQLObject, czyli obiektowy mapper do relacyjnych baz danych.
  • PicoContainer for Ruby
  • Wee – serwer kontynuacyjny
  • Mewa – akronim od Meta-level Architecture for Generic Web-Application. Podobny do FunFormKit na Webware.
  • Nemo – custom formular-edit

Grafika

  • RMagic – werapper w Ruby do bibliotek przetwarzania grafiki: ImageMagick i GraphicsMagick. RMagic posiada dodatek do obsługi grafik wektorowych SVG

Ruby i inne języki