Evo ljudi, kao što sam i obećao kratkog izveštaja sa konferencije. Teško mi je pao povratak iz Švajcarske u Srbiju pa mi je trabalo par dana da se "opasuljim", zato pišem sa zakašnjenjem
Jazoon je konferencija koja je prvi put organizovana ove godine ali to nije smetalo Švajcarcima da sve funkcioniše besprekorno: veliki broj predavanja koja se paralelno održavaju, video, ozvučenje, wireless internet... Konferencija je održana u multipleks bioskopu koji je jako konforan i bilo je dosta slobodnih mesta na predavanjima. Učesnici su imali obezbeđen ručak, besplatno piće i organizovane sadržaje nakon konferencije (žurke, izlete, biskopske projekcije).
Ono što mi se nije svidelo je to što je kvalitet predavača mnogo varirao. Bilo je predavača koji predstavlju bitna imena u Java svetu kao što su Neal Gafter ili Erich Gamma ali je bilo i mnogo lokalaca koji često nisu imali da kažu nešto vredno pažnje. Zbog takvih okolnosti izbor predavanja koje treba posetiti nije bio lak jer je u obzir pored naslova i abstrakta predavanja trebalo uzeti i procenu kredibiliteta predavača.
Predavanja su se bavila raznim novih (i starim) tehnologijama ali dve ideje su se provukle kroz veći broj predavanja o ostavile su utisak da će to biti nešto čime će se baviti Java zajednica u narednom periodu.
Prva stvar koju je spomenuo veći broj predavača je to da je brzina procesora prekinula da raste u poslednje 2-3 godine. Da je brzina procesora nastavila rast starim tempom sada bismo u našim kućnim mašinama imali procesore od 10ghz ali se to nije desilo već su proizvođači procesora rešili da povećavaju broj jezgara. Trenutno su uobičajene mašine sa dva jezgra ali će taj broj brzo porasti na 4 ili 8 jezgara, serverske mašine već sada imaju i mnogo više od toga. Zbog takvih okolnosti moramo pisati aplikacije (čak i na desktopu) koje će znati da iskoriste veći broj jezgara i iskoristiti kapacitete procesora. Konkuretno programiranje je dosta teško i lako dolazi do podmuklih bagova pa se u narednom periodu očekuje veći broj frameworka koji će omogućiti lagano konkuretno programiranje i razbijanje problema na delove koji se paralelno obrađuju.
Druga stvar koja se javila u većem broju predavanja je mišljenje da je objektno programiranje dostiglo svoj zenit i da se očekuje evolucija programskog jezika. Java zajednica je svesna prednosti koje nose jezici kao što je Ruby i potrudiće se takve prednosti anulira. Čuo sam mišljenja da treba krenuti u razvoj domain specific jezika ali ima i oprečnih mišljenja da ne treba kreirati nove jezike već treba uraditi prilagođavanje Jave. Najinteresantnije predavanje na tu temu je održao Neal Gafter: "Closures for Java 7". Radna grupa čiji je on član predlaže da Java "mazne" određene osobine iz funkcionalnog programiranja i predlaže uvođenje closure-a za Javu. Closure je na prvi pogled anonimna klasa ali pruža mnogo više od toga. Svi koji rade sa JDBC-om često imaju ovakve segmente koda:
Code:
Connection dbConnection = getConnection();
try {
doSomething(dbConnection);
} finally {
try {
closeConnection(dbConnection);
}
catch (SomeException e) {
log.error("Error", e);
}
}
Closure nam omogućava da taj kod pretvorimo u sledeće:
Code:
withDB (Connection dbConnection = getConnection()) {
doSomething(dbConnection);
}
Ako jednom napišemo closure "withDB" koji prima dva parametra: 1. konekciju i 2. blok koda i implementiramo ga na taj način što u try..finally bloku pozovemo blok koda i zatvorimo konekciju onda takava segment koda više nigde ne moramo da ponavljamo već uvek koristimo napisani closure.
Eliminisanje ovakvih segmenata koda koji su uobičajeni u svim projektima je super stvar ali mene je još više oduševila jedna druga mogućnost korišćenja closure-a. Često nam treba da iteriramo kroz neku kolekciju i obavimo određene operacija nad elementima te kolekcije. Zamislite closure koji to obavlja korišćenjem većeg broja thredova (i koristi prednosti procesora sa više jezgara

). Napisati petlju koja radi u više Threadova nije jednostavno i nije baš najbolja ideja da se takvi segmenti koda često ponavljaju ali ako to neko (Sun?) napiše na optimalan način i upakuje u jedan elegantan poziv closure-a, e onda je to opcija koju ozbiljno treba razmatrati

Uvođenjem closure-a u jezik otvoriće se čitav jedan novi front za evoluciju Jave i community će sigurno pozitivno odgovoriti pisanjem gotovih rešenja za kojekakve primene kao što je urađeno sa pisanjem gotovih biblioteka za svakakve gluposti koje ljudima mogu pasti na pamet.
Što se tiče tehnologija i frameworka, očekivao sam da ću čuti nešto revolucionarno ali se to nije desilo. Kao standard za razvoj enterprajz aplikacija u prethodnom periodu nametnuo se Spring u kombinaciji sa nekim frameworkom za perzistenciju (najčešće Hibernate). Sun je odgovorio na taj gubitak tržišta uvođenjem EJB 3.0 i polako se vratio u neki standardni izbor većih firmi za realizaciju velekih projekata. Naročito banke i veće (krute) institucije nisu spremne za eksperimentisanje sa raznim tehnologijama i uvek će se odlučiti za standard koji propiše Sun pre nego za neki framework kojim su programeri oduševljeni. Na polju web frameworka trenutno nema dominantnog rešenja. Svaki od frameworka ima svoje prednosti i mane ali mi se čini da je JSF po zastupljenosti nešto ispred ostalih baš iz onog razloga koga sam već naveo, a to je da se velike firme odlučuju za standard.
Na konferenciji se pojavio začuđujuće veliki broj ljudi iz istočne Evrope, a od "naših" u najvećem broju su bili Makedonci zahvaljujući jednoj švajcarskoj firmi koja ima razvojni centar u Skoplju koji upošljava 150 programera
Par firmi iz Beograda (uključujući i firmu za koju ja radim) i Niša je branilo čast srpske Java zajednice. Učestvovao sam u Java Black Belt takmičenju koje je bilo organizovano u holu i moram se pohvaliti 2. mestom koje mi je donelo dve knjige i majicu

. Pitanja nisu bila teška pa je u prvi plan došla brzina odgovaranja. Pretekao me je neki Brazilac, koji je držao predavanje na konferenciji, za 7 sekundi i to mu je donelo iPod. Jedan od Brazilaca je pisao o tom takmičenju u svom
blogu, tu se može videti deo rang liste i par slika načinjenih nakon takmičenja.
Ukupan utisak je pozitivan i rado bih posetio Cirih i sledeće godine (naročito što se u to vreme održava i EuroCup u fudbalu u organizaciji Švajcarske i Austrije

). Kolega sa više iskustva u prisustvovanju konferencijama kaže da se na JavaPolisu dobijaju kvalitetnija predavanja za jeftiniju kotizaciju ali Švajcarcima je ovo prvi put i sledeće godine će biti sigurno mnogo bolje.
Pozdrav svima!