Ako by ste charakterizovali rámec?

Rámec je postavený na rámci Spring, ktorý využíva pre správu objektov a závislostí medzi nimi. Využíva princíp známy ako konvencia namiesto konfigurácie, umožňuje automatické vytváranie radičov a pohľadov na základe doménových tried, je previazaný s Hibernate - rámcom pre perzistenciu objektov. V širokej miere používa DSL (domain-specific language) pre definovanie konfigurácie, validačných obmedzení alebo toku stránok využívajúc Spring WebFlow. Rámec je implementovaný v Groovy a Jave.

Z akých dôvodov by ste zvolili rámec pre vývoj aplikácii?

Z pohľadu Java vývojára sú dôvody nasledujúce:

  • rámec prináša do sveta Javy možnosti poskytované Ruby on Rails založené na preverených rámcoch a knižniciach vyvinutých v Jave ako je Spring Framework, Hibernate, SiteMesh a Spring WebFlow
  • rámec kladie minimálne požiadavky na získanie nových znalostí pre jeho používanie, v podstate je potrebné pochopiť len Groovy uzávierky a princíp DSL (domain-specific language)
  • rámec nekladie žiadne nové požiadavky na distribúciu a inštaláciu aplikácií vytvorených pomocou rámca, aplikácie sú distribuované ako WAR súbory a môžu byť inštalované do ktoréhokoľvek web kontajnera alebo J2EE servera
  • rámec umožňuje použiť akúkoľvek existujúcu Java knižnicu bez obmedzení

Je možné, že existujú lepšie rámce pre vývoj webových aplikácií. Z pohľadu Java vývojára je ich nevýhodou potreba učenia nového jazyka, syntaxe a spôsobu distribúcie a inštalácie. Grails sa snaží priniesť najnovšie trendy vo vývoji webových aplikácií do sveta Javy.

Aké sú nevýhody rámca?

  • veľké množstvo otvorených bugov, viď http://jira.codehaus.org/browse/GRAILS
  • vývoj prostredníctvom zásuvného modulu Eclipse IDE nie je veľmi komfortný, nedosahuje úroveň IntelliJ IDEA IDE alebo NetBeans IDE (je predpoklad, že v blízkej budúcnosti sa táto nevýhoda odstráni, Eclipse Plugin V2 vyzerá nádejne)
  • dokumentácia v niektorých prípadoch neodráža skutočné možnosti (napr. pre metódy doménovej triedy validate a save chýba popis parametru deepValidate)

Ako je to s dokumentáciou a publikáciami týkajúcimi sa rámca?

Voľne dostupná dokumentácia sa nachádza na URL http://grails.org/doc/. Zoznam publikácií týkajúcich sa rámca sa nachádza na URL http://www.grails.org/Books. Dokumentácia a publikácie sú napísané v angličtine.

Ako je to s podporou rámca v IDE?

Zoznam podporovaných IDE a popis integrácia rámca s týmito IDE sa nachádza na URL http://www.grails.org/IDE+Integration.