2017. szeptember 21-én jelent meg a Java 9 számos technológiai újítással. A PROGmasters rögtön elkezdte szervezni az aktív fejlesztőknek szóló szakmai továbbképzéseket, amelyek segítenek felkészülni a verzióváltásra és kiaknázni az újdonságokban rejtőző előnyöket. A képzést Kövesdán Gábor, a PROGmasters és a BME oktatója, a „Szoftverfejlesztés JavaSE platformon” című könyv szerzője tartja, akit a tanfolyam részleteiről kérdeztünk.
– Milyen újításokat hoz a Java 9?
– A Java 9 legfőbb és egyben legvitatottabb témája a most bevezetett modulrendszer. Eddig nem volt lehetőség a programkomponenseinket modulokba szervezni, csak kisebb egységeket, úgynevezett package-eket (csomagokat) használtunk. A package-ek belső implementációs részeit elrejthettük a jobb áttekinthetőség kedvéért. Azonban arra nem volt lehetőség, hogy egy package bizonyos részeit csak adott package-ek számára tegyünk elérhetővé. Ilyenkor vagy több package-et kellett használnunk, lemondva a strukturáltabb és átláthatóbb kódról, vagy kevésbé megbízható kézi ellenőrzéseket kellett végeznünk. Ezért volt szükség egy nagyobb egység, a modul bevezetésére.
– A modulrendszeren kívül milyen meglepetéseket tartogat még a Java 9?
– Számos további érdekesség került a nyelvbe, mint a JShell, vagy az aktuális programozási trendeknek megfelelő könyvtári megoldások. Ilyen a reaktív programozás Flow API-ja, vagy a HTTP kliens, amely az egyre inkább terjedő HTTP/2 protokoll push üzeneteit is támogatja. Ezen kívül további kényelmi újítások is születtek, amelyek megkönnyítik a fejlesztést.
– Miért fontos, hogy a fejlesztők megismerjék az új verziót?
– Mivel a modulok alkalmazása az egész platformot érinti, ha nem megfelelően vezetik be, akkor a korábbi Java programok kompatibilitását is tönkre teheti. A fejlesztők részéről ezért érezhető egyfajta ellenállás és szkepticizmus is az új verzióval kapcsolatban. Ennek ellenére úgy gondolom, mindenkinek lépést kell tartania a trendekkel, hogy kiszolgálhassák az új igényeket és elkerülhessék a problémákat. Mondok egy példát: az új verzió megjelenése után megjelent egy közlemény, hogy a Java 9 nem kompatibilis egy olyan szoftverrel, amit hazánkban kötelező jelleggel sok embernek kell használnia. A felhívásban arra kérték a felhasználókat, hogy térjenek vissza a Java 8-ra. Mivel azonban a Java egy világszerte elterjedt platform, ezért inkább fordítva kellene gondolkodni és felkészülni a kompatibilitási gondok elhárítására.
– A Java 9 szeptember 21-én jelent meg, ti pedig pár nap után már vállalati fejlesztőknek tartottatok képzést róla. Hogyan sikerült ilyen hamar megismerkedni vele?
– Lelkes szoftverfejlesztőként és oktatóként már jó ideje figyelemmel kísértem a Java 9 fejlődését, és a nyílt szabványosítási eljárásnak köszönhetően előre tudtam tájékozódni az újdonságokról. A fejlesztői fórumok, portálok jól tükrözték azt is, hogy mi érdekli leginkább a kollégákat. Sajnos, az, hogy mit használnak a gyakorlatban, nem esik ezzel teljesen egybe. Az ipar valamelyest késik, hiszen sok kész szoftvert szükséges foltozgatni és karban tartani, amelyek még korábbi technológiákat használnak. Azonban az első lépés az új megoldások használatához az, ha megismerjük azokat. Utána tudjuk mérlegelni, hogy mennyire kifizetődő vagy kockázatos egy konkrét technológia használata.
– A sok újdonság közül mire tértél ki részletesebben?
– A modulrendszert mindenképp fontos volt alaposan körüljárni, hogy a résztvevők tájékozódhassanak róla. Ettől eltekintve az volt az irányadó, hogy milyen trendek uralkodnak a szakmában. Az RxJava és a Reactor keretrendszerek a reaktív programozási elvekhez nyújtanak eszközkészletet, és a Spring szintén nemrég megjelent 5-ös verziója is erősen épít erre. A jól ismert Spring MVC mellett egy teljes, immár reaktív szemléletre építő webes keretrendszer, a Spring WebFlux is megjelent. Ezért a reaktív programozásról mindenképp szerettem volna részletesebben beszélni, ahogy a HTTP/2-ről is, ami a szintén friss Java EE 8-ban debütáló Servlet 4.0 API-ban is támogatást kapott. A népszerű webkonténerek (Tomcat, Jetty, Undertow) is támogatják már a HTTP/2-t az újabb verzióikban
– Milyen formában van lehetőség részt venni a Java 9 képzésen?
– A Java 9 képzést a PROGmasters saját oktatási helyszínén vagy kihelyezett képzés formájában szervezzük meg, az érdeklődők igényei szerint. Leginkább a két napos időtartam lenne ideális, de azt tapasztaltuk, hogy a cégek nehezen tudják ennyi időre leállítani a munkát és elengedni a fejlesztőiket egy a tanfolyamra. Ezért döntöttünk végül az egynapos formátum mellett, bár így kicsit több az elmélet a gyakorlathoz képest, mint ahogy eredetileg terveztem. Az egyik partnercégünk viszont kihelyezett tanfolyamként rendelte meg a képzést a Java 8 újdonságaival együtt hat félnapos alkalomra. Így könnyebben meg tudják szervezni, és nem kell leállni a munkának sem. Ez a formátum sokkal ideálisabb, így nem kell kihagyni anyagrészt, sem sietni. Van időnk mindent alaposan kigyakorolni, rövidebb önálló feladatokkal is meg tudnak küzdeni a résztvevők.
– Mik a további terveid az új szoftververziók oktatásával kapcsolatban?
– Egy Java EE 8 és Spring 5 képzést el tudnék elképzelni a későbbiekben, ha lesz időm kidolgozni az anyagot… Emellett a korábbi Java könyvemet is szeretném frissíteni a Java 9 újdonságaival.