07 marca 2009

Wrażenia po krakowskim 4Developers

Kto nie był niech żałuje. Byłem jedynie od 3-ciej (przyjechałem do Krakowa z rodziną i z nią spędziłem czas od rana), ale i tak dało się odczuć niezwykły klimat z (podobno) około 400-500 uczestnikami (!) Udało mi się porozmawiać z załogą lubelską ze Sławkiem Sobótką na czele, Grzegorzem Dudą, Markiem Klisiem oraz organizatorami (Anią i Andrzejem). Wysłuchałem prezentacji Waldiego o CEPie, Cometd (=Reverse Ajax) i ESB, i zaczęła się moja tura.

Prezentacja miała dotyczyć nie tylko Grails, ale również Project Zero, a w szczególności produktowi na jego bazie - IBM WebSphere sMash, ale ku mojemu zdumieniu nie tylko, że nie skończyłem prezentacji (i tym samym nie dotarłem do sMasha), ale również żaden z przykładów niezwykle trywialnych, mających na celu rozgrzać publikę nie zadziałał! Wciąż jeszcze nie mogę wyjść ze zdumienia, jak to się mogło stać. Jeśli tak dalej pójdzie, to kolejna prezentacja o Grails chyba w ogóle się nie powiedzie. Pierwsza, podczas wtorkowego spotkania Warszawa JUG, również nie obyła się bez niespodzianki, którą jednak szybko udało mi się spacyfikować (opis problemu znajduje się w Wystąpienia publiczne jako utrwalenie wiedzy z Grails w tle). Dzisiejsza zakończyła się "zerowym" zaprezentowaniem Grails w działaniu (i nie chodzi mi wcale o nawiązanie do Project Zero). Czy mam z tego wnioskować, że nie dane mi jest właściwie przedstawić moc Grails? A tkwi w nim coś faktycznie lekkiego, co sprawia, że Grails rekomendowałbym do każdego z dowolnych projektów webowych. Na pewno byłby znaczącym odświeżeniem technologicznym, a i czas potrzebny do ich realizacji z pewnością byłby krótszy (w porównaniu do innych znanych mi szkieletów webowych). Oczywiście, nie wspominam tutaj nic o często kluczowej wydajności rozwiązania - to pozostawiam zespołom projektowym i ich ewaluacji Grails. Wydajność kompletnego rozwiązania, bez względu na wybór technologii do jego realizacji, *zawsze* wymaga przeprowadzenia testów wydajnościowych. Dla jednego rozwiązania Grails będzie niewystarczający, a dla innego w sam raz. Często również i tak bywa, że aspekt wydajnościowy ma drugorzędne znaczenie, a ważniejszy jest czas realizacji rozwiązania w czym Grails z pewnością nie odstępuje od innych, podobnych szkieletów aplikacyjnych (jeśli nie jest liderem).

Na zakończenie nadmienię, że w mojej prezentacji wzięło udział około 70 osób, ale na moje pytanie o jakąkolwiek znajomość Groovy i Grails - praktyczną, albo taką z artykułów - podniosło rękę 7-10 osób. Czy to wyjaśnia niewielkie zainteresowanie piątkowymi warsztatami Groovy na 4Developers? Może cena warsztatów (która przy 1000PLN może być zaporowa) albo po prostu jeszcze niewielkie wykorzystanie Groovy i Grails? A może potrzeba rozruszać towarzystwo warsztatami Grails podczas Javarsovia 2009? Wystarczy po prostu 2-3h bez slajdów, a jedynie praca z Grails i IDE. Najpierw tworzenie aplikacji zgodnie z pewnym planem (ustalonym przez prowadzącego), a następnie wdrażanie funkcjonalności od publiczności. To mogłoby być interesujące doświadczenie dla obu stron. Pisze się ktoś? I niekoniecznie musiałoby dotyczyć wyłącznie Grails.

Moja prezentacja z 4Developers dostępna jest jako Zwinne i lekkie aplikacje webowe z Groovy, Grails i Project Zero.

17 komentarzy:

  1. szkoda, że nie udało Ci się dzisiaj przedstawić niczego w "praktyce". Doszedleś już co było nie tak?
    Mimo to Ciekawa była prezentacja i dzięki za udostępnienie pdf'a.

    OdpowiedzUsuń
  2. Tak, wystarczyło skasować katalog z kopiami projektów w katalogu domowym użytkowniku, np. %userprofile%/.grails i po wszystkim. Prawdopodobnie próbując uruchomić przykłady podczas restartu aplikacji musiało ją "naruszyć". 404 pojawiało się już na samym kontekście aplikacji wskazując jednoznacznie na Jetty i brak uruchomionej (może nawet wdrożonej) aplikacji webowej. Teraz będę mądrzejszy.

    Rozumiem, że zaintrygowała Cię prezentacja i teraz pozostaje zaprezentować Grails w praktyce? Skończyłem kilka nowych rozdziałów o Grails, więc będzie co testować. Coś konkretnego Cię interesuje? Czy przykłady dla początkujących?

    OdpowiedzUsuń
  3. To może ja zaproponuję kilka rzeczy:

    - tworzenie szablonów widoków (jeden szablon do którego podpinamy dane z konkretnych akcji)
    - validacja formularzy

    - zabezpieczanie

    Wczoraj jak utworzyłem przykładowy projekt zauważyłem plik sitemesh.xml (albo byłem zmęczony, albo grails ma od ręki wsparcie z sitemesh-em).

    OdpowiedzUsuń
  4. Ja tam oceniam prezentację o Grails/Groovy jako jedną z lepszych które udało mi się zobaczyć, a na pewno taką, która mnie zachęciła do sprawdzenia omawianej technologii - tutaj Grails. Przez całą prezentację nie mogłem wyjść z podziwu jak ciekawie ktoś przeniósł koncepty Ruby on Rails (RoR nieco znam) na środowisko Javy.
    Warsztaty Grails podczas Javarsovia 2009? Czemu nie, może uda mi się zmontować ekipę z Białegostoku ;)

    OdpowiedzUsuń
  5. Ja chciałem wczoraj sprawdzic czy podane przez Ciebie przykłady faktycznie działają. Utworzyłem projekt, klasę dziedziny, kontroler i efekt taki sam jak na Twojej prezentacji. Próbowałem pod NetBeans 6.5 i IntelliJ 8.1. Nic.
    Jakie było moje zdziwienie jak dzisiaj rano odpaliłem komputer i okazało się, że oba projekty działają ;)
    Faktycznie wygląda to ciekawie - chyba muszę się Grailsom (i Grooviemu) bliżej przyglądnąc.

    OdpowiedzUsuń
  6. Mi natomiast zaczęło działać od razu jak dodałem jakiś atrybut do modelu. No ale widzę, że tu jakiś błąd w grails-ach musi być.

    OdpowiedzUsuń
  7. Nie byłem na prezentacji ale już Ci wcześniej wspominałem, że przyda się więcej praktyki a nie sama teoria. Może w takim razie skrobniesz coś dla praktyki i opiszesz na blogu? Np nową wersję strony Javarsovii :)

    Pozdrawiam,
    Radek

    OdpowiedzUsuń
  8. Aaa zapomniałem dodać, jeśli Javarsovia będzie pod koniec czerwca to piszę się na prezentację o Grails. Może nie w dokładnie takiej formie jak opisałeś powyżej (spaliłbym się z nerwów kodując na życzenie widowni) ale coś ciekawego można przygotować :)

    Radek

    OdpowiedzUsuń
  9. @Darek, SiteMesh jest domyślnym rozwiązaniem szablonów w Grails. Nie wspomniałem o tym na prezentacji, bo sądziłem, że niewielu to może porwać.

    @Radek, ja będę głosował ZA twoją prezentacją o Grails podczas Javarsovii. Jak tylko rozpoczniemy C4P zgłoś swój temat i abstrakt.

    @Marcin, dziękuję za ocenę mojej (niedziałającej) prezentacji grailsowej. Do teraz nie mogę uwierzyć, jak to się stało, że się nie wyrobiłem (czyżbym, aż tyle dowcipkował, zamiast mówić na temat?! ;-)). Załoga białostocka będzie mile widziana na Javarsovii!

    OdpowiedzUsuń
  10. Radek - mój głos też masz!
    A co do Grails - to czytam ta samą ksiązke co Jacek i muszę powiedzieć że ten framework zadziwia mnie na na każdym kroku. Aż mam problemy z zaśnieciem bo za bardzo chodzi mi po głowie.
    Javarsovia w grails - jestem za! i zgłaszam sie na developera :)

    OdpowiedzUsuń
  11. Zapewne zostanę zbesztany, za to co poniżej napiszę. Byłem uczestnikiem konferencji 4developers, podczas której po raz pierwszy miałem styczność z Grailsami.
    Na ostatni wykład przyszedłem "głodny" i to bardzo. Chciałem bomby, czegoś rewolucyjnego, czegoś co mnie zaskoczy. Niestety wyszedłem hymmm nijaki. Ani syty, ani głodny. Nic nie wybuchło, a wszystko co zobaczyłem było takie "normalne" i powszechne. Nic nie podnieciło mnie na tyle, abym wyszedł i powiedział: "To jest to! Muszę to mieć we framevorku w którym tworzę strony!". Poczucie humoru, język wypowiadania się prowadzącego itd. - super, ale brakło mi czegoś w merytoryce. Wiem, że czasu było mało, więc może by zmienić nieco formę przekazu. Fajnie wygląda pisanie kodu "na żywo", ale pokazując coś gotowego dałoby się pokazać więcej i przy okazji uniknełoby się błędów. Przez te błędy, czuję się zniechęcony do grailsów. No bo jeśli wywijają takie numery takiemu łebskiemu gościowi, to coś musi być nie tak.
    P.S. Chciałbym kiedyś zobaczyć "bitwę" na konkrety pomiędzy osobami uzywającymi grails'y, rails'y, cakephp, django itp.

    OdpowiedzUsuń
  12. Dawid: Porównanie z Django można zacząć od tego (z tej samej konferencji): http://www.zenzire.com/archive/python-django-4developers-presentation/

    Dlaczego Grails nie chwyta? Bo to jest świeży pomysł tylko dla kogoś przyzwyczajonego do ciężkich rozwiązań rodem z korporacyjnej Javy. Nikogo kto pisze w ROR czy Django to nie powali na kolana.

    OdpowiedzUsuń
  13. @Jacek: A mnie akurat cieszy wykorzystanie SiteMesh-a, z racji, że będę go również wdrażał w mojej pracy magisterskiej, więc wszelkie doświadczenia są mile widziane.

    @Dawid: ja bym wyrzucił z Twojej listy cakephp jako, że jest po prostu słaby. Jeśli chodzi o samą prezentacje to fakt, zabrakło jej czegoś, ale wystarczyło samo zaprezentowanie narzędzia a mi już w głowie przestawił się trybik.
    Bo tak naprawdę brakowało mi jakiegoś lekkiego narzędzia do tworzenia mniej skomplikowanych serwisów w miarę szybko i wygodnie. A taki jest grails.

    @eXt: czy jest taki świeży? kilka lat już ma, wystarczająco aby być dostatecznie rozwinięty.

    OdpowiedzUsuń
  14. @Darek: Zdecydowanie koncepcja lekkich frameworków webowych nie jest świeża. Pisząc "świeży" odnoszę się do słów Jacka o tym, że Grails "byłby znaczącym odświeżeniem technologicznym". Wnosząc chociażby z komentarzy zamieszczonych tutaj (jak sądzę głównie przez developerów z kręgu Javy) Jacek ma rację - widać, że Grails to nie jest popularne rozwiązanie, ale kilka osób chce z niego skorzystać i odświeżyć swoją narzędziówkę.

    To że Grails ma kilka lat i jest dojrzały to dobrze, cieszy mnie że i Java dorobiła się czegoś takiego.

    OdpowiedzUsuń
  15. Mnie najbardziej cieszy, że w związku z 4Developers i moimi poczynaniami z Grails jego sława (=Grails) znacząco wzrasta w naszym kraju. Nie twierdzę, że Grails to panaceum na wszelkie bolączki programistyczne w związku z tworzeniem aplikacji webowych, ale nie ukrywam, że wszystkie te technologie Korporacyjnej Javy są jakby przyciężkie w porównaniu z tym, co oferuje Grails. Może po prostu jestem już znudzony samą Java EE, przejadło mi się, albo coś innego - trudno to wytłumaczyć. Na pewno Grails jest drogą do sukcesu dla początkujących. Dla nich Java EE jest jeszcze zbyt skomplikowane. Grails opierając się na Groovy+Spring+Hibernate+SiteMesh i będąc gotowy do uruchomienia od pierwszego grails run-app (dzięki Jetty i HSQLDB) pozwala uwierzyć adeptom sztuki programowania javowego, że można coś zrobić w kilka minut (pomijając te, które upływają, kiedy owe lekkie i zwinne rozwiązanie nie działa ;-))

    Co do prezentacji, fakt, pofolgowałem sobie z tą lekkością i zamiast skoncentrować się na konkretach zacząłem ewangelizować. Wziąłem sobie uwagi do serca i kolejne moje wystąpienia grailsowe z pewnością nie zawiodą. Trzeba było się sparzyć, aby drugi raz nie zrobić tego samego błędu (= "Once burnt twice shy")

    Mimo wszystko zauważam pewne większe zainteresowanie Grails po spotkaniu Warszawa JUG i 4Developers, a o to mi głównie chodziło. Od razu się człowiek uczy szybciej mając lokalne wsparcie i możliwość dyskusji. Pewnie i kilka nowych projektów będzie realizowana w Grails, a to zwiększa szansę na udział w nich ;-)

    OdpowiedzUsuń
  16. @eXt: o tym, że lekkie frameworki to nie nowość wiem od dawna, bo od dawna z nich korzystam, ale nie pod javą, brakowało mi w javie właśnie tego rozwiązania.

    OdpowiedzUsuń
  17. A mi bardzo mi się podobała luźna i dowcipna forma wykładu. Jakbym chciał więcej merytoryki to bym sobie reference poczytał :) Dla mnie wystąpienia na konferencjach mają za zadanie zachęcanie do zainteresowania się tematem na własną rękę. A to Jackowi się zdecydowanie udało. Gratuluję wystąpienia i więcej takich prezentacji 'z jajem' :)

    OdpowiedzUsuń