Kod źródłowy Rubiego w Rubym

Rubiniusa (implementacji Rubiego, napisanej w Rubym) nikomu chyba przedstawiać nie trzeba. Obecnie obsługiwana jest wersja języka 1.8.7, a niektóre benchmarki pokazują, że Rubinius w tej wersji może osiągać szybkość porównywalną z JRuby. Benchmarki, benchmarkami, najciekawsza jest możliwość zajrzenia do implementacji języka w Rubym.

Jak zacząć zabawę?

Zainstalować Rubiniusa najłatwiej jest z pomocą rvm, używając komendy:

 rvm install rbx

Na stronie rvm, znajdziemy garść uwag (dosłownie) odnośnie instalacji.

Można też pobrać najświeższą wersję i skompilować samemu. Zostało to bardzo jasno opisane w przewodniku po Rubiniusie, przetłumaczonym na język polski.

Zanurkuj w kod!

Rubinius daje nam przede wszystkim możliwość zrozumienia, jak działają poszczególne składowe języka i biblioteki standardowej. Weźmy na przykład moduł Enumerable. Metoda collect (znana raczej jako map) wygląda następująco:

  def collect
    if block_given?
      ary = []
      each { |o| ary << yield(o) }
      ary
    else
      to_a
    end
  end

Pozostałe metody (może poza inject) zdefiniowane są w podobnie prosty sposób. Jeśli do kogoś nie przemawia dokumentacja, to zajrzenie w kod, może być najszybszym sposobem by zrozumieć, jak działają poszczególne funkcje. To jest według mnie największa zaleta Rubiniusa: można zrozumieć Rubiego i odczarować wiele magicznych metod i właściwości.

Rbx day

5 sierpnia (to dziś) organizowany jest #rbxday, którego celem jest jest popularyzacja tej implementacji Rubiego. Zajrzycie do kodu, uruchomcie swój projekt na Rubiniusie, jeśli będziecie mieli jakieś problemy, to na irc lub twitterze na pewno ktoś wam pomoże. Zawsze też możecie zgłosić (lub poprawić) jakiś bug..



Komentarze

  1. Omen 5.08.2011

    Comment Arrow

    Ciekawe, i w wolnym czasie… pewnie takowy koło grudnia będzie pozerkam sobie w to:) Mam nadzieje ze c#/.net z roboty i studia nie zduszą we mnie tej ciekawości.


  2. Paweł Kondzior 7.08.2011

    Comment Arrow

    Zobacz nad czym się siedział ostatnio Karol, https://github.com/hosiawak/rubinius_macros

    To jest dopiero kwas ;) rozszerzanie kompilatora na poziomie AST, w ruby.


  3. ewrfwe 11.04.2013

    Comment Arrow

    fajny jest eruby, niestety bałaganiarski. może np. miec dostep do plików.




O autorze

Aleksander Dąbrowski

Od 2008 zawodowo programuje w Ruby i Railsach. Jest maniakiem prostych i eleganckich rozwiązań, nie boi się usuwania brzydkiego kodu. Uwielbia dzielić się wiedzą, a w wolnych chwilach naprawia samochody.