Java 7 - lambda függvények
bullet Crystal -- 2010-02-10
Ma reggel olvastam a jdk7-dev listán (nem mintha rendszeresen követném, de ezen megakadt a szemem), hogy a Java 7-be végül mégis bekerülnek a lambda függvények/closure-ök, kinek hogy tetszik, az a lényeg hogy lesznek, aki nem tudja mi az az nézzen utána.

Szóval örülünk, igazából nagyon furcsa is volt, hogy ez eddig nem volt rajta a fícsörlistán, úgy tűnik az oracle rámordult a java lang expert group-ra hogy ugyan csak kéne már így 2010-ben. Ez persze részben meglepő, mert nemrég még úgy volt, hogy minél hamarabb (tavasszal) ki akarják adni a java 7-et. Üröm az örömben, hogy így kb. szeptemberre tolódik a release (ami azért elég gáz ha azt nézzük hogy eredetileg 2008 tavaszán kellett volna kijönnie), de azért én összességében örülök.

Hogy milyen lesz a lambda függvények szintaxisa és hogy az hogy fog bájtkódra fordulni, azt még senki nem tudja, elég sok ötlet kering ezzel kapcsolatban és a nagykutyák mind más megoldást pártolnak, na de ehhez is lesz majd JSR meg expert group meg community úgyhogy megoldják szeptemberig gondolom. Szerintem mondjuk elég egyértelmű hogy úgy kell lefordítani mint a névtelen osztályokat, amúgy is azokat használjuk most lambda függvények helyett (pl. swing eseménykezelésnél).

Aminek nem igazán örülök, az az, hogy kivették a Swing JDatePicker komponenst is :( szegény swingbe rájár a rúd így az utóbbi időben, először a Swing Application Frameworköt vették ki, most meg ez. Előbbit még meg is értem, biztos bonyolult téma (mondjuk kb mindent elmond a Swingről hogy a Sun-nál nem bírták alapjaiban sem eldönteni hogy hogy kellene swing programot írni...), utóbbit (JDatePicker) viszont nem igazán értem. Mi olyan veszettül nehéz egy ilyen komponens implementálásában??

Na mindegy, a swing eddig se volt a Java csúcsa, úgyhogy nem dől össze a világ, a closure-öknek meg örülünk nagyon.

További részletek itt, itt, itt és itt
Java Store
bullet Crystal -- 2009-08-29
A Sun (vagy lehet inkább most már az Oracle-ről kellene beszélni) nem éppen a desktop platformjáról híres, de azért megtesz ezt-azt a fejlesztéséért. A Java Store egy olyan online szolgáltatás, melyen keresztül a felhasználók saját fejlesztésű desktop alkalmazásaikat tölthetik fel, és így azokat ingyen vagy pénzért terjeszthetik. Ezek az programok nyilván elsősorban swinges és JavaFX cuccok lesznek, legalábbis ez lenne a cél.

A Java desktop a JavaFX kapcsán már megmutatta, hogy minél jobban alkalmazni akarja a write once - run anywhere elvet, mivel elméletben a JavaFX programok egyaránt futtathatóak telefonon, böngészőben és desktopon. Ezt a hozzáállást a Java Store is követi, ezért különválasztották tőle a back-end szolgáltatását, a Java Warehouse-t. A programozó a warehouse-ba tölti fel az elkészült alkalmazást, a warehouse-hoz pedig különböző kliens-szolgáltatások kapcsolódnak, melyek felületet adnak a végfelhasználónak a letöltéshez - jelenleg az egyetlen ilyen kliens a Java Store. Nyilván az a cél, hogy legyen egy olyan kliens is, ami mondjuk telefonon fut. Más platform most így hirtelen nem is jut eszembe...

A Java Warehouse/Store szolgáltatások jelenleg private beta állapotban futnak, ez azt jelenti, hogy csak USA-beli fejlesztők használhatják, és nekik is meghívót kell hozzá igényelni. Valamikor 2010-ben kerül majd public állapotba a szolgáltatás.

Mikor először néztem utána ennek a Java Store témakörnek, a FAQ-ban egy elég érdekes bekezdést találtam, nagyjából az volt a lényege, hogy a private beta program után az egész szolgáltatás fizetős lesz - magyarul fizetnem kell majd azért, hogy - akár ingyenes - programokat feltöltsek a warehouse-ba. Ez eléggé olyan fafej oracle-s hülyeségnek tűnik, eléggé ki is buktam mikor ezt olvastam - azt még megértem hogy az Oracle nagyobb profitot akar kihozni a Sun-ból, de ne ilyen kretén módon már... Most nem találom ezt a részt, remélem azóta eltűntették, ez is olyan "baki" volt, mint az, mikor a G1 garbage collector használatát fizetőssé akarták tenni.
Aszinkron szervletek
bullet Crystal -- 2009-05-23
Nemrég megjelent a Java Servlet 3.0 API (JSR-315) final draft, tehát mostmár nem várhatóak túl nagy változások. A szervletek nagyon fontos részét képezik a Java EE platformnak, mivel sok már technológia - pl. JSP, JSF - alapját képezik.

A Servlet 3.0 -ban már az eddigi XML konfigurációs adatokat (web.xml) megadhatjuk annotációkkal is, ez persze nagyjából természetes, magától értetődő fejlesztés, és már régóta lehetett tudni, hogy ilyen lesz. Ami érdekesebb és én eddig nem hallottam róla, az az, hogy a szervletek aszinkron módon is működhetnek, ami nagyon jól jöhet, ha lassú erőforrásokra (pl. nagy adatbázisokra, távoli gépen futó webszolgáltatásra, stb) kell várnia az alkalmazásnak.

Az új API persze még nincs teljesen kész, és még nincs is adták ki hivatalosan, mint specifikációt. Ha kész lesz, utána kezdik csak el fejleszteni az implementációkat, úgyhogy még elég sokat kell várnunk arra, hogy kipróbálhassuk az új fícsöröket.
JCF
bullet Crystal -- 2009-05-13
A Java Collection Framework a standard Java API része, a gyakran használt adatszerkezetek Java implementációinak összefoglaló neve. Minden épkézláb Java programozónak illik ismerni - minél jobban. A JCF-ben az absztrakt adatszerkezetek (pl. lista, táblázat, halmaz) interfészek, melyeknek több konkrét implementációja is van. Az implementációk nagyon eltérhetnek egymástól, és meg kell gondolni, hogy mikor melyiket használjuk, ugyanis egy rossz választás később nagyon komoly teljesítményproblémákhoz vezethet. Érdemes változódelarációknál, paramétereknél az interfészeket használni típusként, így adott esetben könnyebbé válik az implementáció lecserélése (csak a példányosítást kell átírni) - persze leginkább érdemes elolvasni alaposan a JCF osztályok és interfészek dokumentációját. Egy rövid, hasznos áttekintés itt.
project kenai
bullet Crystal -- 2009-03-07
nagyon nagy port nem kavart ugyan, de azért lehetett róla hallani, hogy a Sun elindította saját project hosting szolgáltatását, ez lenne a kenai.com. Igazából egyáltalán nem baj sztem, hogy a google code és a sourceforge mellett ez is működik, legalább eloszlik a terhelés, ill. itt egy helyen meglesznek a sun opensource cuccai (pl xVM). Az utóbbi pár napban elég rendszeresen látogatom, és nekem jónak tűnik. Persze lehet, hogy csak azért, mert még nincs nagyon leterhelve (egyelőre pár tucat projekt indult). Nincs nagyon túlcicomázva, de nagyjából mindent megkapunk amit egy project hostint szolgáltatástól el lehet várni, van egy korrekt fórum, alakulgató közösség, szal jó lesz :) Van freenode csatorna is, #projectkenai (amúgy kb senki nincs ott, 4-5 ember max). Ha nekem egyszer lesz vmi opensource projektem (sosem lesz de mindegy), akkor sztem ide fogom feltolni (már csak azért is mert kedvenc égitestemé :))