Mellékleteink: HUP | Gamekapocs
Keres

Mégis a Jigsaw-val jön a Java 9

Gálffy Csaba, 2017. július 04. 16:00

Hivatalosan szeptember 21-én érkezik a Java 9, egy utolsó percben hozott döntésnek köszönhetően már a Project Jigsaw implementációjával. Lassú lépés a nyelvnek, hatalmas ugrás az ökoszisztémának?

hirdetés

Régóta adós a Java fejlesztését irányító közösség a modularizálás támogatásával. Ezt hozza el végre a Java 9 még idén szeptemberben, ezzel egy lassan évtizedes történet végére kerülhet pont. Az ellenállást sikerült megtörni, jön a Java Platform Module System (JPMS).

Jigsaw: el se hisszük, hogy jön

A Jigsaw (hivatalos nevén JSR 376, vagy Java Platform Module System) igazi áttörés a Java történetében, amely egy alapoktól újragondolt, szabványos modularitást hoz az ökoszisztémának. A Jigsaw szülése azonban elképesztően nehezen ment, a Javát átvevő Oracle még 2010-ben (!), a Java 7 kapcsán helyezte kilátásba annak implementációját, ehhez képest most, hét évvel később is csak nagyon nehezen sikerült betolni a technológiát a hivatalos szabványba.

A modularitás meglehetősen általános fogalom a programozásban, a Java jelenleg is tartalmazza ezt bizonyos formában, például a JAR állományokkal, az OSGi-n keresztül vagy külső keretrendszerekkel, mint a Spring. A JPMS ezekhez képest azonban jelentős és átfogó ugrást ígér, amit maga a nyelv és a JDK kap meg, nem kell majd hozzá külön frameworköt használni.

Dia Elek Márton kiváló előadásából

A JPMS olyan fejlett képességeket ígér, mint a modulok dinamikus töltése és ürítése memóriából, azok verzióinak kezelése (sőt: ugyanazon modul több verziójának párhuzamos futtatása), az explicit függőségkezelés, stb. A fejlesztés két fő irányelvet követett: megbízható konfiguráció és erős tokozás. Előbbi a class-path mechanizmust cseréli egy modern függőségkezelésre, utóbbi egyértelművé teszi, hogy mely publikus típusok érhetőek el más komponensek számára és melyek nem.

A modularitásra egyébként a Java skálázódása miatt lett égető szükség: a nyelv ugyanis nem tudott hatékony választ adni a modern szerveroldali alkalmazások által támasztott követelményekre, amire rásegített az is, hogy a fejlesztést de facto ma is irányító Oracle évekig tétlenségre kényszerítette az ökoszisztémát. Ez lehetővé tette az olyan nyelvek szerveroldali térnyerését mint a JavaScript (node.js), a Java 9 így egyértelműen erre jön válaszcsapásként.

Meggondolta magát az ipar

Az igazi fordulatot az hozta, hogy a Java fejlesztését irányító iparági közösség, a Java Community Process Executive Committee új szavazást tartott a kérdésben és immár 24-0-ra (tehát egyhangúlag) úgy döntött a testület, hogy a Jigsaw legyen a Java 9 része. Korábban, május elején ugyanez a testület (ugyanezekkel az emberekkel) még 13-10 arányban leszavazta a javaslat formájában elé kerülő JSR 376-ot, arra hivatkozva, hogy az implementáció túlságosan felforgatja a Javát és nincs mögötte általános iparági konszenzus. Akkor több cég (IBM, Red Hat, stb.) képviselői is a javaslat ellen szavaztak, most azonban (feltételezhetően némi nyomásra) immár sikerült megtalálni az emlegetett iparági konszenzust.

Az IBM-et sikerült meggyőzni: "A JPMS jelenlegi formájában erős alapot jelent egy új Java SE platform architektúrához és a jövőben a visszajelzések és a tapasztalatok alapján erre fogunk majd építeni". A Red Hat azonban tartózkodott az új szavazáson, a cég képviselőjét nem sikerült meggyőzni, azonban nem is akarta tovább hátráltatni a Java 9 megjelenését és tartózkodott az új szavazáson. Változtatott a véleményén és megszavazta a javaslatot az Eclipse Foundation, a Hazelcast és a Twitter képviselője is, arra hivatkozva, hogy megfelelő ütemben fejlődött a Jigsaw, megérett a rajtra.

A jelenlegi hivatalos menetrend szerint a végleges Java 9 szeptember 21-én debütál majd.

Facebook

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.
Kotlin alapok Androidhoz, Android refaktorálás, React Native gyorsítósáv, UX és analitika, Azure IoT Edge, fintech élesben: alkalmazásfejlesztés banki aggregátor API-ra, itthon először!