Szerző: Gálffy Csaba

2017. július 4. 16:00

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

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?

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

Hogyan akadályoz meg egy fejlesztő 14 karakterrel egy hackertámadást (x)

Sokszor gondoljuk, hatalmas erőfeszítés ellehetetleníteni egy támadást, pedig nem feltétlenül.

Hogyan akadályoz meg egy fejlesztő 14 karakterrel egy hackertámadást (x) Sokszor gondoljuk, hatalmas erőfeszítés ellehetetleníteni egy támadást, pedig nem feltétlenü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.

4 alkalmas, 12 órás biztonságos szoftverfejlesztés alapjai és Scrum otthonról képzésekkel köszönünk el 2020-tól.

a címlapról