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ę nalocalhost: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).