Popularny i pożądany. Jak w 2022 roku miewa się język programowania Ruby?
Każda sroka swój ogonek chwali, a każdy programista chwali swój ulubiony język programowania. Przy tym są języki, których nazwy już od samego początku wywołują fale ekscystacji, a jednocześnie — burzliwe spory o to, o ile wzrosła lub spadła ich popularność. Jeden z najpopularniejszych, spośród takich języków — Ruby. Sprawdziliśmy, na ile jest on popularny teraz, czy warto zacząć uczyć się Ruby, i w jakich sferach można wykorzystać swoje umiejętności, jeśli jest się „rubystą”.
Spis treści
Jakie języki programowania są dziś najpopularniejsze?
Według rankingu TIOBE, w sierpniu 2022 roku najbardziej popularnym językiem programowania był Python, z 15,42%. Do pierwszej piątki weszły również C, Java, C++ i C#. Ten ranking odzwierciedla popularność języka jako takiego, ale to nie czyni go lepszym, nie oznacza też, że zapisano w nim większość linijek kodu. Co ciekawe, popularne i ulubione języki programowania to dwie różne rzeczy.
Według corocznego badania StackOverflow, “ulubionym” językiem programowania już siódmy (!) rok pod rząd pozostaje Rust. Podoba się on 86,73% z 6625 respondentów, którzy z niego korzystali. Piątkę „ulubieńców publiczności” kontynuują Elixir, Clojure, TypeScript i Julia. Najbardziej „nielubianym” językiem jest MATLAB, sympatię do niego odczuwa tylko 19% spośród tych, kto w nim pracował.
Co z Ruby?
Ruby pojawił się w 1995 roku w Japonii. Przy okazji, jeśli myślicie, że to stary język, który dawno wyczerpał swoje możliwości, to wiedzcie, że Python jest od niego starszy o 4 lata. Język od razu stał się popularny w swojej ojczyźnie, ale na świecie zyskał szeroki rozgłos na początku XXI wieku, przetłumaczeniu dokumentacji na język angielski i pojawieniu książek o nim.
Ruby stopniowo zyskiwał popularność w Europie i USA, i już po pojawieniu się wersji Ruby 1.8.0 w 2003 roku, był aktywnie wykorzystywany w wielkich projektach komercyjnych. W 2006 roku pojawił się rewolucyjny framework Ruby on Rails, który pozwolił w znaczący sposób przyspieszyć programowanie. Na dwa kolejne lata przypada szczyt popularności Ruby. W 2006 roku TIOBE nazwał go językiem roku.
Zgodnie z rankingiem TIOBE, w sierpniu 2022 roku Ruby znajdował się na 18 miejscu, spadłszy w ciągu roku o trzy pozycje, ale przy tym pozostaje żywym i poszukiwanym językiem. W Ruby zostały napisane GitHub, Airbnb, Ask.fm, Bloomberg, pierwsza wersja Twitter. Framework Ruby on Rails wykorzystano także przy tworzeniu SoundCloud, Kickstarter, Change.org, Zendesk i in.
Аnalitycy RedMonk przeanalizowali dynamikę wykorzystywania najpopularniejszych języków programowania od 2012 do 2022 roku. Szach i mat, sceptycy: 10 lat temu Ruby zajmował 5 miejsce, a dziś znajduje się na honorowej 9 pozycji. Wyżej, niż C, Skala lub Go.Źródło: redmonk.com
Jak powstał język Ruby?
Kiedy japoński inżynier Yukihiro Matsumoto, twórca Ruby, poszukiwał „prawdziwie obiektowego, prostego w użyciu języka”, przeżył rozczarowanie – nie było takich. W Pearl wyczuł on „posmak zabawkowego języka”, a Python uważał za nie w pełni obiektowy. Wówczas Matsumoto postanowił stworzyć własny język. I wymyślił Ruby, obiektowy język programowania z dynamiczną typizacją.
Dodał do niego to, czego mu brakowało w innych językach — opracowanie wyjątków, automatyczny kosz, iteratory. A właściwości Pearl inżynier wykorzystał jak bibliotekę klas. Ruby zapożyczył szereg właściwości z różnych języków — Smalltalk, Eiffel, Ada i Lisp. Ale podstawowe cechy jego semantyki i składni są wzięte z Pearl.
Czym się charakteryzuje składnia Ruby?
Przy tworzeniu Ruby autor inspirował się powieścią fantastyczno-naukową „Babilon-17”, w którym ziemianie odszyfrowali język kosmitów. Wykorzystując go, w kilku słowach można było wyrazić myśli, które w języku angielskim zajęłyby cały akapit. Myślą przewodnią książki jest hipoteza relatywizmu lingwistycznego Sapira-Whorfa. Zgodnie z nią, struktura języka wpływa na światopogląd, poglądy i procesy myślowe jego użytkowników.
Chociaż w Ruby nikt nie mówi, jak w języku naturalnym, ale Matsuro dążył do tego, żeby uczynić go zrozumiałym i łatwo czytelnym dla każdego, kto zna angielski – pisanie kodu w Ruby rzeczywiście przypomina język angielski. Język ma przemyślaną składnię, dzięki czemu łatwo się go czyta. Rzecz jasna, tak jak w przypadku innych języków, zależy to nie tylko od składni, ale i od umiejętności programisty.
Gdzie wykorzystuje się Ruby?
To język skryptu, który można wykorzystywać praktycznie w dowolnej sferze programowania. Ale w praktyce Ruby jest wykorzystywany głównie do web. Zostały w nim napisane liczne aplikacje ze sfery e-commerce, produkty Saas, skomplikowane platformy i serwisy.
Ruby niekiedy nazywa się „językiem start-upów”: można w nim szybko stworzyć MVP i sprawdzać hipotezy. W dużym stopniu jest to możliwe dzięki potężnemu frameworkowi Rails, który wykorzystuje schemat podziału komponentów aplikacji Model-View-Controller (MVC). Pomaga on szybko wprowadzać nowe rozwiązania i naprawiać błędy.
W Ruby pisze się także gry mobilne i aplikacje na Androida i iOS, wykorzystując środowiska programowania Titanium Studio, Ruboto lub RubyMotion.
Czym Ruby różni się od innych języków programowania?
W Ruby wykorzystuje się zasadę dziedziczenia pojedynczego, opierającą się na koncepcji modułów. Klasy mogą tu mieszać moduł otrzymując inne metody. Dzięki temu nawet skomplikowany kod jest bardziej elastyczny, a jego struktura jest prostsza, niż w wypadku dziedziczenia wielokrotnego. Przy tym język wspomaga także dziedziczenie wielokrotne przy pomocy miksinów.
W Ruby wszystko jest obiektem. Dosłownie wszystko, nawet typy danych, liczby i wartości zmiennych. To może się wydawać dziwne, ale właśnie dzięki temu każdej cząstce kodu, nawet najbardziej prymitywnej, mogą zostać przypisane własne działania i cechy. A więc zasady, mające zastosowanie do obiektów, mają zastosowanie do całego języka, co zapewnia nam przy programowaniu szczególną swobodę działania.
Jeszcze jedna wyraźna różnica polega na tym, że wspólnota Ruby sama reguluje nie tak istotne zasady, osiągając porozumienie. Przykładowo decyduje o tym, że na końcu wyrażenia nie trzeba stawiać kropki z przecinkiem, albo wykorzystywać iteratory zamiast cyklów do rozwiązywania zadań cyklicznych. Takich zadań jest dużo: na GitHub jest oddzielny gem Ruby Style Guide.
Ruby ma przed sobą przyszłość
I głównymi jego wskaźnikami są rozwój i popyt.
Gdy Ruby dopiero zyskiwał popularność, był mniej produktywny, niż Python lub PHP. Ale myśleć, że pozostanie takim i teraz, byłoby błędem. Możliwe, że Ruby nie jest już taki „ekscytujący”, jak wcześniej, ale w dalszym ciągu jest poszukiwany i efektywny.
Sam Ruby i framework Rails są regularnie aktualizowane. W ostatniej aktualnej wersji język zyskał możliwość przepisywać notacje typów w oddzielnych plikach, a nie w kodzie. Odzwierciedla to wizję twórcy o tym, że już niedługo pojawią się narzędzia, które będą potrafiły od razu określać typ. Pojawiło się także narzędzie do równoległego włączania programów Ractors, analizator statystyczny typów typeof i szybszy kompilator JIT. W REPL dodano długo oczekiwane podświetlenie składni i autokorektę.
Jak już mówiliśmy, wspólnota Ruby także bierze udział w rozwoju języka. Według statystyki GitHub, Rails ma najwięcej kontrybutorów spośród frameworków wszystkich innych języków.
Źródło: evrone.com
Co się tyczy popytu, to najbardziej dobitnie świadczą o nim wysokie pensje programistów Ruby. Jest to związane z faktem, że rynek nie jest przesycony ,,rubistami” na wysokim poziomie, w odróżnieniu od tegoż samego Pythona. Średnie roczne zarobki programisty Ruby z USA wynoszą 92.000$. Jeśli mówić o starszych programistach z 10-letnim stażem, to ich średnia pensja wzrasta do 120.000$ rocznie. Wysoki popyt na programistów Ruby jest cechą charakterystyczną nie tylko amerykańskiego, ale i polskiego rynku, dowodem na co są wskaźniki międzynarodowej korporacji z branży IT, SOFTSWISS z biurem w Poznaniu.
Studium przypadku: jak przez rozwiązania Ruby przechodzi 6,5 mld euro miesięcznie
Wielkie firmy wykorzystują Ruby do tworzenia skomplikowanych, naładowanych treścią platform w sferach e-commerce, fintech i innych. Wybierają właśnie ten język, dlatego, że skomplikowane produkty powinny być godne zaufania i proste w obsłudze, a nowe ,,cechy oprogramowania” trzeba testować i wprowadzać maksymalnie szybko.
Dosyć często świeże pomysły po raz pierwszy materializują się w sferze rozrywek online. To specyfika branży: użytkowników trzeba zachęcić czymś unikalnym, a nie po prostu za pomocą bonusa na rachunek lub jaskrawego banneru na górze strony. Oto przykład. Firma SOFTSWISS – jeden z wiodących twórców oprogramowania dla iGaming, pierwsza firma na świecie, która stworzyła rozwiązanie do pracy z kryptowalutami w sferze rozrywek online, opracowuje rozwiązania do zarządzania kasynami online oraz dla bukmacherów i wiele innych.
Co miesiąc na platformach, stworzonych i utrzymywanych przez firmę, są przetwarzane tysiące stawek o ogólnej wysokości 6,5 mld euro. Koszt błędu przy takiej skali działania może być bardzo wysoki. Firma wykorzystuje Ruby do opracowywania Casino Platform i Affilka, a także do szeregu wewnętrznych produktów firmy, gdzie zakładane są duże obciążenia. Oprócz Ruby, programiści SOFTSWISS piszą w Go, JS, Python i Scala. Ten zestaw zapewnia im wystarczającą elastyczność do rozwiązywania praktycznie dowolnych zadań.
Ilya Karol. Pełni funkcję CTO w SOFTSWISS. Dołączył do SOFTSWISS w 2019 roku jako Senior Software Developer w projekcie iGaming Platform i bardzo szybko został Team Leadem w dopiero co utworzonym zespole R&D. Około półtora roku temu przeniósł się na stanowisko Deputy CTO, gdzie skupia się na rzeczach strategicznych, które obejmują analitykę i monitorowanie metryk technicznych i biznesowych, spójność rozwiązań architektonicznych i infrastrukturalnych oraz interakcję między zespołami technicznymi. Niedawno zaproponowano mu prowadzenie inżynieryjno-technicznej części SOFTSWISS, a on sam został CTO firmy.
Zdjęcie główne pochodzi z unsplash.com