JavaSvet - otvorena java zajednica

 
glavna stranica arr2javasvet  english version arr2java.net

Devoxx 2008

Dejan Krsmanović

Kao i poslednjih 7 godina, i ovog decembra je Antverpen bio mesto okupljanja velikog broja Java programera. Razlog je Devoxx, najveća konferencija ovog tipa u Evropi i kako organizatori vole da kažu, naveća nezavisna Java konferencija u svetu. Konferencija je i ovog puta u potpunosti rasprodata par nedelja pre početka, tako da je i ove godine broj posetilaca ostao isti – oko 3200. Po rečima organizatora, posetlaca je bilo iz svih Evropskih zemalja, kao i mnogih van Evrope. Po običaju, veći broj ulaznica je podeljen univerzitetima po Belgiji, pa je bilo i par stotina studenata kojima je ovo bila idealna prilika za traženje posla.

Devoxx?! Zar nije Javapolis?

Kao što su mnogi primetili, Devoxx je novo ime za JavaPolis konferenciju, a razlog promene imena je to što je Java registrovano ime od strane Sun-a. Iako je Sun nudio da besplatno dozvoli korišćenje starog imena, organizatori su želeli da ostanu nezavisni, pa otuda promena. U prvom trenutku, novo ime je bilo Javoxx, ali pošto je i ono aludiralo na Javu, moralo je još jednom biti promenjeno, ovog puta u Devoxx. Ova promena imena, iako je bila iznuđena, imaće za posledicu još jednu stvar – širenje oblasti koje će biti pokrivene u budućim konferencijama na tehnologije koje nisu usko vezane za Javu.

Organizatori su se potrudili da i ovom broju ljudi boravak na konferenciju bude prijatniji, pa su obezbedili još jednu salu za predavanje – ukupno 6. S obzirom da je uglavnom u svih 6 sala bilo razičito predavanje, nekada je bilo veoma teško odabrati gde ići. Organizacija je i ovog puta bila na visokom nivou i za svaku pohvalu. Sam proces registracije prvog dana je bio brz – na ulazu se dobijao samo bedž, dok se u samoj sali delio ranac sa majicom i ostalim poklonima. U svakom slučaju, red nije bio predugačak, tako da su se te formalnosti brzo obavljale. Pre predavanja, bio je organizovan doručak, a između predavanja ručak i užina. Uz to, aparati za kafu kao i frižideri sa pićem su bili dostupni sve vreme. Jedina stvar na koju su svi imali ozbiljnu zamerku je bio Internet – veza se teško uspostavljala, često se prekidala a sam Internet je bio vrlo spor.

Ceo Devoxx je bio podeljen na dva dela – Prva dva dana su bili tzv University Days, kada su bila detaljnija predavanja od po 3 sata. Druga 3 dana je bila konferencija, kada su predavanja trajala po sat vremena. Naravno, bilo je i tzv BOF sesija, koje su se održavale uveče, bilo je i kratkih predavanja od po 15 minuta (tzv Quickes) koje su obično održavana za vreme pauze za ručak. U svakom slučaju, za svakog je bilo po nešto i onaj ko je hteo ceo dan da provede na Devoxxu, mogao je da bude od 8 i 30 ujutro sve do 22h uveče. Od utorka do četvrtka u donjem delu su bili izlagači. Kao i svih godina do sada, sve jake svetske firme koje nešto znače u Java svetu bile su prisutne (Sun, IBM, Oracle, Adobe, SpringSource, RedHat…). Čini mi se, po prvi put na ovoj konferenciji, ove godine bio je prisutan i Microsoft.

Posebno zanimljiv je bio deo sa knjigama. Sve poznatije knjige su se ovde mogle kupiti, a neka izdanja su bukvalno planula već prvog dana pa ih je posle bilo nemoguće kupiti!

Glavne teme

Iako je konferencija sadržala predavanja sa prilično različitim temama, nekoliko njih je bilo posebno zastupljeno.

Dinamički jezici

Dinamički jezici su ove godine sigurno bile glavna tema. Iskren da budem, nisam ni bio svestan koliko danas postoji dinamičkih jezika koji se izvršavaju na JVM. U toku Devoxx-a, bila su predavanja vezana za neke od njih - Scala, JRuby, Jython, Groovy itd. Pošto sam bio na predavanju Groovy and Grails in Action, moram priznati da me je to predavanje oborilo s nogu. Tema mi je bila izuzetno zanimljiva, a predavač je bio odličan. Ceo hype oko Groovy-ja je ovih godina nekako prolazio mimo mene, tako da nisam ni pretpostavljao koliko je on postao rasprostranjen. Mnogi frameworci danas imaju neku vrstu podrške za Groovy. Postoji nekoliko zanimljivih open source projekata baziranih na Groovy-ju (Grails, Griffon, Gradle, EasyB). Mnoge Fortune 500 kompanije ga koriste u svojim sistemima. A da je stvar ozbiljna govori i to što je SpringSource kupio G2One, firmu koja stoji iza Groovy-ja.

Ono što mi se jako sviđa kod Groovy-ja je što se prirodno integriše sa Javom – moguće je nasleđivati Java klase u Groovy-ju, kao i Groovy klase iz Jave. Lako je početi koristiti ga budući da je Java kod sasvim validan Groovy kod. Svi Java API se mogu koristiti iz Groovy-ja, a za mnoge od njih Groovy dodaje gomilu korisnih metoda. U toku predavanja su bili prikazani primeri parsiranja i kreiranja XML-a, rad sa JDBC-om, Swingom i naravno, svi oni su mnogo jednostavnije i kraće delovali u Groovy-ju. Groovy takođe podržava stvari koje bi mnogi želeli da vide u Javi poput closures.

Koliko je interesovanje za Groovy bilo, govori činjenica da se odmah nakon predavanja knjga Groovy In Action bukvalno rasprodala! Slično se desilo i sa knjigom Scala in Action nakon predavanja o Scali. Na žalost nisam bio na tom predavanju, ali nemam sumnje da je i ono bilo zanimljivo.

JavaFX

Druga glavna tema na Devoxxu je bio JavaFX. Zvaničan izlazak JavaFX 1.0 se desio par dana pre Devoxx-a, pa je ovo bila prilika da nam Sun pokaže šta ova tehnologija može. Bilo je nekoliko predavanja vezano za programiranje u JavaFX, a i jedan keynote je bio posvećen njemu na kojem su bili prezentovani razni primeri i pokazivano kako se jednostavno prave apliklacije u JavaFX. Očigledno, Sun u poslednje vreme prilično gura JavaFX tehnologiju, pitanje je samo kako će se ona pokazati u odnosu na ostale konkurente (Adobe Flex i Microsoft Silverlight). Za sada je dostupna samo verzija za Windows, ali verzije za druge operativne sisteme će izaći vrlo brzo. Takođe, Sun je najavio da će novije verzije izbacivati relativno često.

Java 7

Java 7 je takođe bila prilično pokrivena predavanjima posebno u drugom delu konferencije. Deluje da je glavna stvar koju će Java 7 doneti, modularizacija, kako same JVM, tako i aplikacija koje pišemo. Zanimljivo je da je modularizacija tema kojom se Sun bavio više godina unazad i da su kroz JSR proces bila prijavljena dva predloga – JSR 277 i JSR 294. Sun je godinama gurao ovaj prvi, da bi ga pre nekog vremena stopirao i podržao JSR 294. Iako je pomalo nejasno zašto je bilo potrebno pokrenuti 2 JSR-a pored postojećeg OSGi frameworka koji se već godinama koristi, Sun ipak najavljuje da će usko sarađivati sa OSGi alijansom i omogućiti da buduće verzije OSGi u potpunosti koriste mogućnosti JSR 294. Takođe, Sun je u okviru OpenJDK projekta pokrenuo projekat jigsaw čiji je cilj da u narednom periodu izvrši modularizaciju JDK7.

Modularizacija će po svemu sudeći zahtevati uvođenje novih ključnih reči u Javu koja će omogućiti definisanje modula, zavisnosti modula od drugih modula itd. Svakom modulu biće moguće dodeliti verziju i definisati verzije drugih modula od kojih on zavisi. U krajnjoj instanci biće moguće da jedna aplikacija istovremeno ima učitano više modula različitih verzija a da na dolazi do konflikta (npr ako vaša aplikacija koristi spring i hibernate, a i spring i hibernate koriste neku treću biblioteku u različitim verzijama).

Osim modularizacije, postoji dosta predloga za sitnija unapređenja Java sintakse, koja će verovatno olakšati pisanje koda i smanjiti broj linija u kodu (slično Java 5 promenama), međutim ostaje da se vidi koja će od njih biti prihvaćena. Tokom cele konferencije, na tablama koje su bile okačene u hodnicima, ljudi su mogli da glasaju za feature koji smatraju da treba da budu u Java 7.

Za one koji su Javu 7 čekali zbog podrške za closures – jedno veliko razočarenje. Closueres neće biti deo Jave 7. Razlog za to je nepostojanje koncenzusa oko toga kako bi implementacija trebalo da izgleda. Posle nekoliko godina rasprave i nekoliko različitih prototipova za closures, Sun je odlučio da ne podrži nijedan predlog!

Inače, Java 7 bi trebalo da izađe početkom 2010. godine

JavaEE 6

Sledeća grupa predavanja je bilo posvećeno Java EE 6, kao i specifikacijama koje su uključene, konkretno JPA 2.0, Servlet 3.0, JSF 2.0, WebBeans 1.0 itd... Java EE 6 će omogućiti definisanje profila, tj. manjeg seta specifikacija koje će serveri moći da implementiraju umesto kompletnog seta Java EE specifikacija. Za sada je u izgledu da će biti definisan tzv. Web profil, mada još nije do kraja odlučeno šta će sve biti u njemu a šta neće. Stiče se utisak da je ideja sa JavaEE 6, bolja integracija specifikacija, kao i spuštanje zahteva koje serveri treba da ispune da bi bili JavaEE kompatibilni. Takođe, i dalje je veliki akcenat na pojednostavljenju tako da će biti moguće koristiti EJB-ove u okviru Servlet kontejnera i sl.

Što se tiče servleta, oni će verziji 3.0 dobiti je mogućnost asinhronog rada (Comet). Prosto, biće moguće da server šalje podatke klijentu asinhrono što će itekako dobro doći određenoj klasi aplikacija.

Jedna od novih specifikacija je WebBeans. Ova specifikacija je nastala kao rezultat iskustva sakupljenih tokom razvoja JBoss Seam projekta, kao i Google Guice frameworka. Ova specifikacija koja olakšava povezivanje različitih komponenti: JSF, EJB3, JavaBeans itd, nudi prilično zanimljiv možda pomalo i radikalan pristup (uvođenje konverzacija, korišćenje anotacija za Dependency Injection i sl), pa će biti zanimljivo videti hoće li biti adekvatno prihvaćena od strane programera.

Od ostalih predavanja, pomenuću predavanje o Spring DM serveru, koje predstavlja vrlo zanimljiv pristup. Za razliku od klasičnih JavaEE aplikacija koje su „monolitne“ jednom kada se uradi deploy, Spring DM server omogućava deployment aplikacija baziranih na OSGI modulima koji se onda mogu nezavisno deployovati, menjati i sl. U principu, malo toga je ovde novo – Spring DM server je u stvari Tomcat, OSGi kontejner je Equinox... Ali momci iz Spring-a su sve to spakovali i prepakovali dobar deo popularnih open source projekata u OSGi module.

Meni lično jedno od korisnijih predavanja je bilo ActiveMQ and ServiceMIX in Action. Pošto sam već radio sa ActiveMQ, ali nikada nisam imao vremena da previše ulazim u detalje, ovo predavanje je bilo tačno ono što mi je trebalo – gomila informacija o tome kako konfigurisati ActiveMQ, šta znači koja opcija u konfiguraciji i šta sve ActiveMQ može. Plus, predavač je stvarno bio dobar.

Inače, „buzzword“ ove godine je po svemu sudeći REST! Osim što je bilo nekoliko predavanja o REST aplikacijama, antipaternima i sl, gotovo na svakom drugom predavanju se u nekom kontekstu on pominjao. Novi Seam i novi Spring imaju podršku za REST, JavaEE 6 uključuje JAX-RS API (RESTful Web Services).. praktično da nije bilo predavanja gde on nije bio pomenut!

Veliki brat

Verovatno najkontroverznija stvar na ovogodišnjoj konferenciji bio je svojevrstan eksperiment koji su organizatori napravili u saradnji sa IBM-om, pri čemu su “zamorčići” bili svi posetioci Devoxx-a. Naime, u bedž svakog posetioca Devoxx-a bio je ugrađen RFID čip. Takođe, na ulazu svake sale bili su čitači ovih čipova. Svaki prolazak pored čitača se registrovao pa je teoretski za svakog posetioca koji je imao ovaj bedž moglo da se zna u kojoj je sali. Na osnovu ovoga, organizatori su mogli izvući mnoge njima korisne podake – da li je neka sala puna, koja predavanja su bila posećenija od drugih, koja predavanja su ljudi napuštali nakon početka itd. Naravno, mnogima se ova ideja nije svidela pošto su imali opravdan osećaj da ih neko prati. Jedna od korisnih posledica korišćenja RFID bedža bilo je i jednostavnije uzimanje podataka na štandovima. Umesto ubacivanja vizit karti ili popunjavanja formulara, na nekim štandovima su postojali čitači i aplikacije koji su mogli pročitati podatke sa čipa.

Sve o ovoj temi, posetioci su mogli da čuju na keynote-u koju su dražali ljudi iz lokalne IBM kancelarije, a koji su bili inicijatori ovog eksperimenta. Tu je moglo i da se primeti da je ta tehnologija daleko od savršenog, pošto je bilo dosta grešaka – neke sale koje su bili pune, su u sistemu izgledale poluprazne i obrnuto. Stvar je bila u tome što čitači nisu bili dovoljno precizni kada veliki broj ljudi prolazi kroz vrata na kojem su bili instalirani. Moram priznati da sam imao veća očekivanja od cele te priče sa čipovima i samog predavanja, pošto se sve nekako svelo na markentiška naglabanja. U svakom slučaju, predavanje mi nikako nije bilo za keynote.

Za kraj...

Javapolis (tj. Devoxx) je i ove godine opravdao moja očekivanja pa i dalje smatram da za te pare nema bolje konferencije vezane za Javu u Evropi (a možda i u svetu!). Doduše, za razliku od prethodna dva puta kada sam bio na Javapolisu, ove godine James Gosling nije bio.

Za one koji nisu bili, postoji mogućnost da predavanja gledaju na web-u, pošto su i na ovoj konferenciji su sva predavanja bila snimana. U toku godine, postepeno će biti objavljivana na sajtu www.parleys.com. Na tom sajtu se sada mogu videti sva predavanja od prošle godine, kao i sa nekih konferencija koje su se održale u međuvremenu, i svakako predstavlja značajan resurs za sve koje žele da prošire svoje znanje iz oblasti Jave. Inače, kao što je prošle godine bilo prestavljeno, ceo sajt je sada prerađen u Flex a postoji mogućnost skidanja prezentacija i gledanja u off-line režimu.

Za kraj mogu samo da poželim da i naredni Devoxx bude jednako uspešan kao i ovaj i da se vidimo u Antwerpenu i 2009!