Showing posts with label geecon. Show all posts
Showing posts with label geecon. Show all posts

Saturday, May 15, 2010

After GeeCON 2010

This year GeeCON took place in Poznań which is much closer to Szczecin than Cracow. I expected it to be as good as a year before, maybe I expected too much. I don't mean it was bad, but previous year it was so great that maybe it was hard to keep this level. Or maybe I was not choosing right presentations. There were three tracks this year so choice was sometimes difficult.

Like a previous year there was "University Day" before the conference. University Day is day of workshops on various topics. I have chosen Gradle, like many other people. Too many unfortunately. Hans said there are too many attendants to make exercises for everyone, so only he coded live. I missed coding myself.

First interesting concept I heard about was Object Teams. It is a new idea of modularizing our programs, based on entities, collaborations and roles. All three look pretty much like java classes. In OOP there are objects which are data and methods. We can use objects to modularize our applications, but often connections between modules are becoming complicated. Creators of Object Teams concluded that modularization and OOP is not about modules/objects itself but about connections between them. So there are entities, which represent data. There are collaborations, that represent operations on data, and roles. In a collaboration, each entity plays some role. Everything looks pretty and neat, and I wonder if it is going to become popular in coming years. I must admit I haven't heard about it before.

Quite interesting presentation was about JSF 2.0 by Ed Burns. Nothing quite new for me, but if someone thinks JSF didn't change much since 1.2 version he should attend this presentation (or watch on GeeCON's channel on parleys.com when it becomes available ;)). Guys who created version 2.0 addressed all the problems developers were complaining about with previous versions. I remember Seam was framework which was built on JSF and addressed such problems. Now, when it is solved in JSF itself, I wonder what are differences between Seam and JSF 2.0.

On the second day Jonas Bonér was talking about actors, agents, STM and other solutions making concurrent programming much easier than threads with shared state and locks. Next time I'll need to do some concurrent programming in Java I'll definitely use something from Akka.

Vaclav Pech's presentation was quite similar. He also talked about concurrent programming with actors, but in Groovy. As usual Vaclav gave very good presentation.

Vaadin is the next thing I want to use. At work I use GWT and I don't really like it. GWT compilation is very long and asynchronous callbacks are making code more complicated. Besides most of work is done on the server anyway. Programming in Vaadin is very similar to programming in GWT, but everything is server side. Vaadin uses GWT for presentation, so it is possible to write custom components for Vaadin in GWT, but then compilation is needed only once. Damn, this could save many hours of my life.

Bruno Bossola's presentation was very good and funny. No suprise here :) Bruno talks about things that many developers really need. I agree somewhere we lost real Object Oriented programming. Bruno also mentioned a book which I feel is unfairly forgotten. "Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development" by Craig Larman. When I started working for NCDC more than few years ago, my boss put this book to company's library and recommended it to us. I read it and I feel it made me a better developer. If you put all your code into one huge class or even method, buy or borrow this book and read it. Even if it's old it's worth it. Some things don't change even in IT ;)

If I can have some hint for the organizers I'd like to suggest to make presentations longer. Many presenters didn't manage to show everything they wanted. I think 1.5 hour is minimum.

I heard food was also a problem on the first day. It didn't suffice for everybody, but I managed to grab my plate so I don't complain :)

Monday, May 11, 2009

GeeCON - wrażenia (jak najbardziej pozytywne)

Ostatnio (7-8 maja) byłem na konferencji GeeCON w Krakowie. Rewelacja! Prawdę mówiąc, nigdy nie byłem na tak dużej i tak dobrej konferencji. Poziom prelegentów naprawdę wysoki, organizacyjnie także wszystko super.

Osobiście najbardziej podobała mi się prezentacja Bruno Bossoli "SOLID design principles". Temat bardzo ważny, widać że ludziom brakuje takiej wiedzy, a jednak niewiele można o tym znaleźć. Może dlatego, że nie tak łatwo o tym napisać, nie jest to taka konkretna wiedza jak "jak zrobić X w technologii Y". Bruno wyłożył ją ze swobodą i humorem. Kilka razy sala wybuchała śmiechem, jak na dobrej komedii :)

Wrażenie zrobiła na mnie także Java FX pokazana przez Adama Biena. Muszę się bliżej zainteresować tym językiem.

Prezentacja o Scali była chyba przewidziana dla trochę innego audytorium. Odniosłem wrażenie, że Luc Duponcheel to naukowiec, zajmujący się problematyką języków programowania na codzień i znający je od podszewki, przez co wszystko wydaje mu się banalnie proste. Dla słuchaczy jednak takie nie było. Mimo wszystko utwierdzam się w przekonaniu, że trzeba się tym językiem zainteresować bliżej.

Miško Hevery przedstawił kilka ciekawych problemów dotyczących testowania. Dowiedziałem się m.in., że TDD jest jak seks - jeśli nie sprawia Ci przyjemności, znaczy że źle to robisz ;) Poznałem też ciekawe narzędzie, którego chciałbym zacząć używać w firmie w której pracuję. Mianowicie testability-explorer - narzędzie pokazujące na ile kod jest "testowalny". Tak się składa, że testowalność kodu przekłada się na jego dobry design, więc jest to istotna metryka.

O Groovym co nieco już wiedziałem. Właściwie to uczyłem się Ruby'ego, ale okazało się, że Groovy jest jego kalką :) Nie wiedziałem natomiast, że kompilator Groovy'ego akceptuje składnię Javy. Oznacza to, że możemy klasę w Javie zamienić na klasę w Groovym (przez zmianę rozszerzenia pliku lub skopiowanie jego zawartości) i stosować składnię Groovy'ego tylko tam gdzie chcemy, stopniowo. Widziałem też, że ludzie, którzy wcześniej nie widzieli Groovy'ego/Ruby'ego, byli zachwyceni :) Fakt, skrócenie 6 linii kodu do jednej robi wrażenie :)

Kolejne narzędzie, które chętnie wypróbowałbym w firmie to Gradle. Z tym jednak nie będzie już tak łatwo, bo nie da się tego "dołożyć" do istniejących struktur. Jeśli budujemy projekt mavenem, to zastosowanie Gradle'a wiązałoby się z całkowitą rezygnacją z mavena, a to nie będzie proste. Tym niemniej narzędzie jest warte zainteresowania. Może da się je wykorzystać przy jakimś nowym projekcie jak się pojawi.

Nie wspomniałem jeszcze o szkoleniu. W ramach konferencji można było po promocyjnej cenie (naprawdę niskiej - 100zł) wziąć udział w szkoleniu. Ja wybrałem szkolenie z Web Services, choć teraz trochę żałuję że nie z Java FX. Cóż, pozostają książki i internet.

Nie mogę także nie pochwalić się pierwszym certyfikatem z Javy - BE-004. Jest to certyfikat potwierdzający udział w "Java Beer Advanced Training" :)

Pozostaje mi podziękować jeszcze raz organizatorom za świetną konferencję. Było naprawdę super, kto nie był ma czego żałować.