Feed on
Wpisy
Komentarze

Czyli ta druga częśc w której zastanawiam się po co, komu i dlaczego jest Grails.

Jak wspomniałem wcześniej Grails jest framework’iem wzorowanym na Ruby on Rails, jako bazę wykorzystującym język Groovy. Po swoim poprzedniku przejął podstawowe zasady:

  • DRY (Don’t Repeat Yourself - Nie powtarzaj się)
  • Convention Over Configuration (Konwencja ponad konfigurację)

Co stanowi o dodatkowej sile Grails’a to wykorzystanie dla popularnych i mających bardzo dobrą opinię bibliotek Javovych: Spring Framework, Hibernate, Sitemesh. Dla użytkownika końcowego mogą byc one niewidoczne, ukryte za interjefsami napisanymi w Groovy, ułatwiającymi ich używanie i redukującymi ilośc potrzebnej kofiguracji (to jest właśnie siła wspomnianej wcześniej zasady!). W każdym momencie możliwe jest jednak pełne ich wykorzystanie oraz samodzielna konfiguracja.

W skrócie więc Grails = elastycznośc Groovy + moc bibliotek Javy

Jak to wygląda w praktyce? Prosty przykład, wydajemy polecenia:

grails create-app
grails create-domain-class [nazwaKlasy] , edytujemy stworzony plik .groovy dodając odpowiednie pola
grails generate-all
grails run-app

… i możemy już w przeglądarce uruchomic aplikację, ze stronkami do dodawania nowych instancji dla stworzonej klasy, edycji i usuwania. Stworzone mamy kontrolery wykorzystujące Spring’a, mapowania Hibernate’owe, strony GSP (podobne do JSP), dane zapisywane są też już do bazy i parę jeszcze użytecznych plików. Ciekawe ile zajęłoby zrobiebienie takiej funkcjonalności w Javie…

Co dodatkowo stanowi o sile Grails jest system plugin’ów. Sprawnie działająca społecznośc skupiona wokół projektu tworzy coraz to nowe pluginy (aktualnie około 40) pozwalające na współpracę m.in. z Flex’em, JSF, GWT, Acegi, OpenLaszlo, Yahoo UI, i wieloma innymi technologiami.

Z punktu widzenia programisty szybkośc tworzenie aplikacji wzrasta więc niesamowicie a dodatkowo to wciąż jest Java (no i troche Groovy). Kolejna rewolucja? Znowu tak, o tym projekcie jest już teraz głośno, będzie jeszcze bardziej.

W następnej części cyklu postaram się przedstawic jakie plusy może miec stosowanie Groovy / Grails w tzw. prawdziwym świecie czyli dlaczego klienci biznesowi mogą byc tym wszystkim zainteresowani.

Witaj świecie!

W pierwszym cyklu wpisów na blogu chciałem poświęcic kilka słów dwóm technologiom o którym od jakiegoś już czasu głośno na blogach poświęconych Javie, mianowicie językowi Groovy oraz opartemu na nim framework’owi Grails. W skrócie dla tych co ostatnie pół roku (przynajmniej) przespali: Groovy jest to dynamiczny język programowania, działający na JVM i bardzo dobrze integrujący się z Java (dzięki temu, że jest kompilowany do postaci bytecode), natomiast Grails to framework zworowany na Ruby on Rails, służący do budowy aplikacji webowych opartych na modelu MVC (model-widok-sterownik), wykorzystujący m.in. Groovy, Spring Framework, Hibernate. Tyle tytułem wstępu, przejdźmy do detali.

Groovy jako język programowania jest obecny od kilku lat, jednak dopiero teraz nastąpił drastyczny wzrost jego popularności. Można to przypisywac kilku przyczynom, jednak moim zdaniem największy wpływ miały na to Ruby i RoR, które pokazały, że język skryptowy może w niektórych zastosowaniach przewyższac język kompilowany. Przynajmniej tak wyglądała moja historia, po pierwsze usłyszałem o Ruby, zacząłem czytac na ten temat i w ten sposób znalazłem Groovy, który ma dużo podobieństw jednak przewyższa Ruby w jednej zasadniczej sprawie - współpracy z Javą, która jest jednak wciąż najpowszechniej stosowanym językiem programowania. Co Groovy daje więc programiście? Jest językiem skryptowym, zawiera domknięcia (ang. closures), właściwości (ang. properties), możliwośc stosowanie niezdefiniowanych typów, ułatwia zasadniczo tworzenie i parsowanie XML, tworzenie komponentów Swinga, pisanie testów jednostkowych (ang. unit tests). Można takich udogodnień wymienic jeszcze dużo, jednak najlepsze w w tym wszystkim jest to, że możemy w dowolnym momencie przełączac sie pomiędzy kodem napisanym w Groovy i w Javie i wywoływac jeden z drugiego. Przynajmniej dla mnie wygląda to rewelacyjnie. Nie przyłączyłbym sie może jeszcze do stwierdzenia ,że w przeciągu 2-3 lat Groovy całkowicie zastąpi Javę ale na pewno jego udział będzie coraz większy i w niektórych zastosowaniach dominujący. Rewolucja? Dla mnie tak, dla innych śledzących rozwój Groovy od dłuższego czasu zapewne naturalny krok w ewolucji Javy. Czy z punku widzenia programisty Javy warto się uczyc Groovy? Moim zdaniem zdecydowanie i wręcz trzeba.

Jeśli chce ktoś przetestowac Groovy i dowiedziec się więcej polecam oficjalną stronę projektu oraz swietną książke Groovy in Action, dostępną na razie jedynie po angielsku.

c.d.n. W następnej cześci opiszę zapowiadany framework Grails.