Ruby

Dynamiczny, obiektowy język programowania zaprojektowany z naciskiem na prostotę i przyjemność pisania kodu. Znany głównie z frameworka Ruby on Rails.

Ruby to dynamiczny, w pełni obiektowy język programowania ogólnego przeznaczenia, zaprojektowany przez Yukihiro Matsumoto (znanego jako „Matz”) w połowie lat 90. Jego naczelna zasada brzmi: programista ma być szczęśliwy. W praktyce oznacza to składnię, którą czyta się niemal jak angielskie zdania, oraz filozofię „wszystko jest obiektem” — nawet liczba 5 czy wartość nil mają swoje metody. Ruby jest interpretowany, ma garbage collector i nie wymaga deklarowania typów, więc piszesz mniej kodu, żeby zrobić to samo co w językach bardziej formalnych.

Do czego służy i jak działa

Najczęściej spotkasz Ruby po stronie backendu aplikacji webowych, głównie dzięki frameworkowi Ruby on Rails. Rails forsuje podejście „convention over configuration” — jeśli trzymasz się przyjętych nazw i struktury katalogów, framework sam domyśla się reszty, a Ty nie konfigurujesz w nieskończoność plików XML. Na Rails postawiono kawał internetu: GitHub, Shopify, Airbnb czy Basecamp (gdzie zresztą framework powstał).

Poza webem Ruby świetnie nadaje się do skryptów, automatyzacji i narzędzi deweloperskich. Bibliotekami zarządzasz przez gemy (paczki) i menedżer bundler, a sam interpreter najwygodniej instalujesz przez menedżery wersji typu rbenv czy rvm. Aktualnie rozwijana jest generacja Ruby 4.0, z naciskiem na wydajność (kompilator JIT o nazwie YJIT) i lepszą równoległość.

Przykład z praktyki

Powiedzmy, że chcesz w sekundę odpalić nowy projekt webowy. Instalujesz gem z Railsami i generujesz szkielet aplikacji:

  • gem install rails — instaluje framework,
  • rails new sklep — tworzy kompletną strukturę projektu,
  • rails generate scaffold Product name:string price:decimal — generuje model, kontroler i widoki dla produktu,
  • rails server — i masz działającą aplikację na localhost:3000.

A sama składnia Ruby? Wyświetlenie liczb od 1 do 3 to dosłownie 3.times { |i| puts i }. Czyta się to jak instrukcję, nie jak zaklęcie.

Częste mity i na co uważać

Mit numer jeden: „Ruby to Rails”. Nie — Rails to tylko (bardzo popularny) framework napisany w Ruby. Można pisać w Ruby bez Railsów, choćby z lekkim Sinatrą. Mit numer dwa: „Ruby umarł”. Hype faktycznie opadł od czasów boomu 2010-2015, ale język ma się dobrze, jest aktywnie rozwijany i wciąż napędza ogromne, dochodowe produkty. Na co uważać w praktyce: dynamiczne typowanie bywa wygodne, dopóki literówka w nazwie metody nie wybuchnie dopiero w produkcji — dlatego warto pisać testy (RSpec, Minitest). Drugi klasyk to NoMethodError: undefined method for nil, czyli Twój stary znajomy, gdy odwołujesz się do czegoś, co okazało się nil.

Pojęcia powiązane: Ruby on Rails, gem, Bundler, RubyGems, interpreter, programowanie obiektowe, garbage collection, Python (częste porównanie), MRI (referencyjna implementacja).