sobota, 16 października 2010

JDD 2010

7 i 8 października, wraz z grupą osób z macierzystej firmy (BLStream) miałem przyjemność uczestniczyć w piątej edycji Java Developer Days. W tym roku w formule dwudniowej, z pojedynczą ścieżką, darmowymi warsztatami (równoległymi do wykładów), udziałem kilku zagranicznych prelegentów oraz nieoficjalną imprezą wieczorem pierwszego dnia. Jak się udało?
Niestety, nie było to najlepsze JDD, jakie pamiętam. Było jeśli nie najsłabsze, to drugie od końca w historii tej konferencji. Nie było też zupełnie źle. Jednak na miejscu organizatorów wziąłbym się teraz ostro do roboty, bo przy rosnącej konkurencji, atrakcyjność JDD gwałtownie spada. Jeśli przyszłoroczna konferencja miałaby wyglądać podobnie, to zastanawiałbym się poważnie, czy brać w niej udział.

Bill Burke - RESTful Java
Na wykładzie Billa Burke z przyczyn obiektywnych nie byłem. Na podstawie relacji innych uspokoiłem się, że wiele nie straciłem. Skorzystałem za to z poczęstunku, przygotowanego (jak zawsze na JDD) w bardzo profesjonalny sposób.

Angelika Langer - Programowanie Java w dobie procesorów wielordzeniowych
Przez większość czasu nie mogłem wytrzymać z nudów, co niestety uśpiło moją czujność, bo pod koniec zaczęły się pojawiać bardzo ciekawe informacje (o niuansach działania słowa kluczowego volatile), jednak podawane w tak szybkim tempie, że trudno było się połapać. Wystarczyło jednak, żeby zainteresować się tematem i podjąć własne poszukiwania w sieci - plus. Szkoda tylko, że większość czasu zeszła na całkowite podstawy.

Jarosław Błąd - Testowanie wydajnościowe aplikacji Java Enterprise
Na (świetnym wg różnych relacji) wykładzie Jarosława Błęda nie pojawiłem się, uznając temat za (dla mnie osobiście) mniej interesujący, niż rozmowy w kuluarach w doskonałej kompanii :).

Obiad - tradycyjnie na JDD, świetne jedzenie.

Ted Neward - Przewodnik po programowaniu funkcyjnym w Javie dla zapracowanego developera
Sposób prowadzenia to mistrzostwo stylu. Wiele pochwał padło już pod adresem Teda, więc od razu przejdę do meritum. Od razu dodam, że mój punkt widzenia jest nieco inny, niż większości uczestników. W BLStream nie ograniczamy się do Javy - wprowadziliśmy Scalę, i to w komercyjnym projekcie (z dużym powodzeniem). W naszym zespole w pełni doceniamy zalety podejścia funkcyjnego i zwięzłość zapisu oferowaną przez ten język. Gdy zna się Scalę, programowanie funkcyjne w Javie wygląda... potworkowato. Nie wygląda też zbyt zachęcająco dla programistów Javy - z czego zdałem sobie sprawę jeszcze w Comarch, gdzie wprowadziliśmy do użycia funkcyjnie zabarwioną Google Collections. Wszystko to skłoniło mnie do zadania pytania:
- czy Ted autentycznie polecałby stosowanie zaprezentowanego stylu w Javie?
Spodziewałem się tutaj wyraźnego wskazania, że w określonych sytuacjach tak, a w większości nie, tymczasem... niespodzianka? Ted po żartobliwym (w zamierzeniu i w odbiorze części publiczności) odparowaniu ("forget it all... use Scala") zaczął dosyć gęsto uzasadniać zalety tego stylu, powołując się m.in. na szereg wzorców GoF. Moje oczy otwierały się coraz szerzej ze zdumienia, bo jestem ciekaw, kto z programistów Javy na serio wziąłby jego zalecenia, aby pisać kod posługując się np. biblioteką FunctionalJava (poza być może pewnymi fragmentami systemu). W Javie dołoży to automatycznie tonę duplikacji strukturalnej przy niejasnych korzyściach. Jedyny przykład, który autentycznie przemówił do mnie, dotyczył możliwości automatycznego zrównoleglania operacji na kolekcjach, gdy używa się stylu funkcyjnego. Ogółem jednak, Ted w ogóle nie przekonał mnie do swojej propozycji. Wspomniał o tym, że w niektórych organizacjach programiści po prostu nie uzyskają pozwolenia na pisanie w czymkolwiek innym, niż Java. To prawda. Mam dla nich sporo współczucia. Gdyby nie poparcie światłych ludzi w BLStream i parę sprzyjających okoliczności (jak m.in. idealnie nadający się do Scali projekt), wciąż pisałbym komercyjnie wyłącznie w Javie. Jednak czy jest to argument za tym, aby tworzyć w Javie kod o masakrycznej wręcz duplikacji strukturalnej? Dla mnie na pewno nie. Osobiście, gdy z konieczności wracam czasem ze Scali do Javy stosuję styl funkcyjny w konkretnym miejscu, gdzie daje korzyść (np. wyciągnięcie wzorca Command w miejscu, w którym powtarza się całość metody oprócz jej wydzielonego kawałka). Nie próbuję jednak zaprzęgać tego podejścia gdzie tylko się da, bo często sens kodu zgubiłby się w bujnym gąszczu składni wymaganej przez Javę.
To, co było dobre w tym wykładzie, to możliwość zapoznania się ze stylem funkcyjnym przez deweloperów Javy. Ktoś, kto zobaczył już ten styl, łatwiej go rozpozna w innych językach i będzie w stanie prędzej docenić zalety np. Scali.

Piotr Walczyszyn - Flex
Nie wciąga mnie ta tematyka - pozwoliłem sobie opuścić na rzecz rozmów kuluarowych.

Linda Rising - Odważne zmiany: jak realizować nowe pomysły
Perełki mądrości życiowej przedstawiane przez osobę, która bynajmniej nie początkuje w tym temacie. Pomocne w praktyce dnia codziennego.

Nieoficjalna impreza
Kapitalny pomysł i świetne wykonanie, niepowtarzalna okazja do zawarcia nowych znajomości, wymiany doświadczeń i dobrej zabawy. Być może dzięki temu, że na przybycie nie zdecydowali się wszyscy (ale być może połowa max), klub był w stanie pomieścić uczestników, zmniejszona była też w jakimś zakresie dysproporcja płci (hostessy). Po serii pogawędek geeków muzyka stała się głośniejsza, imprezowicze wylegli na parkiet i tańczyli do późna. Bardzo udany wieczór!

Łukasz Szydło - Apprenticeship – sposób na skuteczny rozwój zawodowy
Świetnie przygotowana i poprowadzona prezentacja. Co prawda widziałem już wcześniej jej trochę inną wersję na wrocławskim JUGu, ale z przyjemnością odświeżyłem sobie temat.

Łukasz Kuczera - Aplikacje typu Comet z Lift w 15 min
Prezentera zabił jeden ze słuchaczy żądaniem poprowadzenia wykładu po angielsku. Zaskoczony Łukasz zgodził się, co automatycznie zmniejszyło płynność wystąpienia i odrobinę go zestresowało. Poza tym dla mnie tempo było trochę za szybkie. Obawiam się, że dla osób bez znajomości Scali nawet jeszcze ciut szybsze. Poza tym prezentacja w miarę fajna, można było zobaczyć na żywo działający sprawnie setup z Liftwebem w Eclipse (rzecz do niedawna trudna do osiągnięcia z powodu poziomu toolingu Scali - optymizmem napawa jego postęp). Do tego produktywność osiągana w Liftwebie i Scali pozostawiała po sobie miłe wrażenie.

Jarosław Pałka - Jeden rozmiar nie dla wszystkich, czyli NoSQL w środowisku Java
Bardzo dobra prezentacja, z pragmatycznym, obfitującym w przykłady z życia i nie-idealizującym podejściem Jarka. Na plus zarówno treść, jak i prowadzenie (slajdy mi się akurat podobały).

Michał Kuratczyk - Zaawansowane zarządzanie sesjami HTTP w Oracle Coherence
Jak przy Liftweb, też po angielsku (na prośbę z sali), ze zbliżonym wpływem na prezentację. Temat (jak dla mnie) arcynudny, bo otrzymujemy w niejasnym modelu cenowym przekombinowane rozwiązanie na nie do końca określone problemy. Zresztą, może to kiedyś odwołam, jak zacznę mieć takie straszne problemy z danymi sesyjnymi, jak najwięksi klienci Oracle?... ;)

Cristian Rosia Michał Szot - Wipro Technologies w Europie i możliwości rozwoju na polskim rynku
Największy przekręt, jakiego dopuszczono się na konferencjach Javowych w Polsce ostatnimi czasy. Wmówiłem sobie, że idę, aby dać im szansę wybrnięcia z tego z twarzą, co oczywiście nie było prawdą, bo tak naprawdę byłem niezdrowo ciekaw, jak się mają zamiar zaprezentować. W rezultacie czuję się współwinny zdrady, jaką popełnili organizatorzy JDD wpuszczając tych bezczelnych ludzi na konferencję. Goście nawet nie próbowali powiedzieć o czymkolwiek nawiązującym do tematyki JDD. Marketing, marketing, marketing. Jak dla mnie spalili się całkowicie w momencie, gdy Michał Szot z dumą w głosie opowiadał o gigantycznym projekcie, jaki zrealizowali. 11 instancji SAPa, wszystko połączone złożoną infrastrukturą Cisco. A to wszystko w czasie krótszym, niż ich konkurenci. Już sobie wyobrażam, jak atrakcyjna jest praca przy takim projekcie... ;) Bez obrazy dla ich inżynierów, którzy na pewno dawali z siebie ostatnie poty, aby wyrobić się na termin, o jakiej innowacyjności mówimy w projekcie tego rodzaju? Może nie wiem czegoś o tego rodzaju projektach (nie pracowałem nigdy przy SAPie), ale wiedza, jaką zdobywam od znajomych, którzy z SAPem pracują, zawsze pozwala mi lepiej docenić moje obecne zajęcia.

Thomas Sundberg - Dług techniczny
Prezentacja w porządku, jeśli pominąć słabe nagłośnienie. Jedyną wadą mogło być ewentualnie brak wniosków przełomowych z punktu widzenia tematyki. Parę praktycznych wskazówek z prezentacji zawsze warto mieć jednak na podorędziu.


Co mi się podobało
Dobre wystąpienia nie-sponsorowane (z chlubnymi wyjątkami e-Point i Tieto). Najlepsze w mojej ocenie były wykłady Teda Newarda, Lindy Rising, Łukasza Szydło i Jarosława Pałki, a zasługujące na wysłuchanie Łukasza Kuczery i Thomasa Sundberga. Żałuję, że nie wybrałem się na wykład Jarosława Błęda, który zebrał dobre recenzje.
Impreza wieczorem pierwszego dnia była jednym z lepszych pomysłów tej konferencji.
Jak zawsze, świetne jedzienie i profesjonalna obsługa :)
Dostępne darmowe warsztaty (choć ja akurat wybrałem wykłady).
Wczesna godzina zakończenia drugiego dnia umożliwiła szybszy powrót do domu ludziom spoza Krakowa, jak ja.

Co mi się nie podobało
Agenda do ostatniej prawie chwili nie była ustalona. W rezultacie na JDD zapisywały się (jak sądzę) osoby, które spodziewały się utrzymania w miarę dobrego poziomu, znanego z poprzednich edycji. Dla tej edycji JDD było to chyba zbawienne, bo gdyby cała agenda znana była wcześniej, to tyle aż osób by się chyba nie zgłosiło.
Słabe wykłady sponsorskie. Szkoda było na nie czasu, a wpuszczenie Wipro to już był kompletny przekręt. Co prawda wg informacji od organizatorów, Wipro abstrakt prezentacji nadesłało dopiero tydzień przed konferencją, ale z punktu widzenia uczestnika nie zmienia to niczego. Sam osobiście wolałbym wcześniej o godzinę zakończyć konferencję.
Dwudniowość zrobiona została trochę na siłę. Co prawda pozwoliło to na zrobienie wieczornej imprezy, liczba wykładów nie uzasadniała jednak (jak dla mnie) tej decyzji. Znacznie lepiej byłoby zrobić jeden dzień, za to z dwoma równoległymi ścieżkami, dzięki którym możnaby ominąć kiepskie wykłady sponsorskie.
Sala, na której odbywały się wykłady miała siedzenia niewygodne dla przeciętnie wysokiej populacji deweloperów.
Pięciominutowe przerwy były za krótkie, aby być w stanie porozmawiać o czymkolwiek sensowniej z ludźmi a przy tym orzeźwić się sokiem lub zjeść ciastko. Z drugiej strony nieciekawe wykłady sponsorskie stwarzały zachętę, aby z kuluarów skorzystać przez dłuższy czas, więc problem nie doskwierał aż w takim dużym stopniu.

W sumie
Gdyby nie kilka dobrych wykładów, możliwość rozmowy z ludźmi w kuluarach, dobre jedzenie i świetna impreza po pierwszym dniu, na konferencję nie opłacałoby mi się zupełnie jechać. Jeśli sytuacja z agendą powtórzyłaby się w przyszłym roku, to raczej na JDD 2011 się nie wybiorę. Z drugiej strony, 2 dni to dla JDD eksperyment i można dać im taryfę ulgową. Mam nadzieję, że organizatorzy wyciągną wnioski z obecnych niedociągnięć i poprawią je w przyszłej edycji. Oby nie spoczywali na laurach, ogłaszając się "największą konferencją o Javie w Polsce", bo daleko im do lidera, którym został Geecon. Cieszę się za to, że miałem okazję spotkać i poznać ciekawych ludzi i posłuchać paru dobrych prezentacji, dzięki czemu mojego czasu na udział w JDD nie uważam za stracony.