Ruby on Rails, ideální framework?
Žabomyší války o tom, který programovací jazyk a framework je nejlepší na vývoj webových aplikací, neberou konce. Pokud se v některé diskusi nebo sociální síti zeptáte programátorů, jaký framework je momentálně nejlepší, každý Vám prostě doporučí ten jeho oblíbený. Každá platforma má své výhody a každý framework řeší některou oblast lépe než jiný. Není důležité, jaký jazyk si vyberete, ale jak jeho vlastnosti dokážete využít.
Ruby - dynamický interpretovaný jazyk, syntaxe vychází převážně z Perlu a Smalltalku. První verze byla uveřejněna v roce 1995 tvůrcem Yukihiro Matsumoto.
Ruby on Rails - nejznámější (ne jediný) framework pro vývoj webových aplikací v jazyce Ruby. Využívá principů MVC a RESTful designu.
Jaké technologie se pro vývoj používají?
Podíváme-li se na statistiky používaných technologií pro webové aplikace na prvních příčkách objevíme PHP, Java, ASP.NET (dle různých statistik se pořadí může měnit) následované jazyky Perl, Python a Ruby (abecedně řazeno).
Nejznámější jazyk pro vývoj webových aplikací je zajisté PHP. Dovolím si tvrdit, že PHP zná každý, kdo se v oblasti vývoje internetových aplikací pohyboval. Komunita je tedy obrovská a tomu odpovídá i nepřeberné množství frameworků. Spousta lidí o něm ale také mluví ne zrovna lichotivě.
V oblasti korporátních aplikací s důrazem na bezpečnost vládne Java a ASP.NET. Zde je potřeba robustní platformy. Za vývojem stojí ověřené a stabilní společnosti, které také zajišťují potřebnou podporu. Použití Javy a ASP.NET je ale v mnoha případech použití kanónu na vrabce. Nehledě na vyšší finanční, technologickou i časovou náročnost vývoje a provozu.
Ruby a Python jsou moderní programovací jazyky, které se jeví jako zlatá střední cesta. A opravdu tomu tak je.
Na jaké aplikace se hodí Ruby a Ruby on Rails?
Síla Rails (a Ruby) je převážně v rychlosti vývoje, strmé křivce učení a v neposlední řadě nákladu na licence (Ruby i Rails jsou OpenSource). Rails se hodí na menší projekty typu katalog zboží s kontaktním formulářem. Zároveň však není problém postavit na Rails obří eshop, pokročilý emailingový nástroj, slevový portál nebo rozsáhlý firemní intranet, CRM.
Flexibilita a univerzálnost Ruby on Rails se ukáže především u projektů, které se postupem času rozrůstají o další funkce a moduly.
Vývoj Ruby on Rails je úzce svázán s vývojem samotného jazyka. Díky tomu může využívat naplno všech jeho fukcí. Tam kde je potřeba možnosti jazyka rozšiřuje, ale většina základních funkcí je obsažena v jádru jazyka Ruby. Zde je velký rozdíl oproti například PHP frameworkům, které musí řešit spoustu věcí, které samotný jazyk nepodporuje.
I když není u nás Ruby příliš rozšířené, světová komunita je rozsáhlá a velmi aktivní. Mekkou Ruby a Ruby on Rails je jejich mateřská země tedy Japonsko. Dlouhou dobu bránilo rozšížení do světa nedostatek dokumentace a návodů v angličtině. Dnes tomu tak již není a některé materiály jsou přeloženy i do češtiny.
Jednou z výhod jazyka Ruby je systém takzvaných gemů. To jsou knihovny, které rozšiřují nebo upravují funkčnost jazyka. I samotný framework Rails je šířen jako gem.
RubyGem mají automatický nástroj pro instalaci, správu a aktualizaci gemů. Vše je čisté a elegantní, stejně jako celý jazyk. Díky výbornému návrhu jazyka Ruby můžeme funkčnost gemů dále rozšiřovat a upravovat je pro svou potřebu. Můžeme také vytvářet gemy vlastní a dát je k dispozici ostatním.
Existuje velké množství gemů, které řeší různé problematiky. Seznam gemů můžeme najít na webech www.rubygems.org nebo https://www.ruby-toolbox.com/.
A my jsme si řekli: "Budeme to rubat v Ruby. A budeme v tom dobří!"
Co se nám na RoR líbí?
- úzká spolupráce jazyka a frameworku možnost naplno využít vlastností a schopností jazyka Ruby
- MVC architektura oddělení aplikační logiky od uživatelského rozhraní
- REST standard pro vytváření HTTP požadavků (GET, POST, PUT, DELETE)
- systém routování adres - obousměrné mapování url adres na volání controleru a akcí
- RubyGem
- ActiveRecord a ActiveModel ORM, validace záznamů
- nástroje usnadňující vývoj a nástroje pro deploy RubyMine (IDE), GIT, RVM, Rake, Capistrano, ...
- pokročilá podpora internacionalizace a lokalizace
- umožňuje vyvíjet na jakékoliv OS (Linux, Mac, Windows)
- programují i ženy - říkají si "Rails Girls" :-)
Světově nejznámější aplikace vycházející z Ruby
Twitter - sociální síť
Scridb - online publikační systém pro sdílení a zobrazování dokumentů
Basecamp - online nástroj pro řízení projektů
Hulu - služba pro streamování pořadů a filmů z kanálů NBC, Fox, ABC ...
Shopify - opensource platforma pro eshopy
Grupon - slevový portál
GitHub - hosting pro GIT repozitáře
Tolik snad k základnímu pohledu na Ruby a Ruby on Rails. Příště se podíváme na základní principy, postupy a nástroje využívané při vývoji v Ruby a RoR.