Nowa Java gwałtownie przyspiesza, zarówno z tempem wydań jak i działaniem

W tym roku Java kończy 23 lata, wciąż też co by nie mówić,jest najpopularniejszą platformą programistyczną na świecie. Gdyjednak przyjrzymy się realiom pracy z Javą, ma się wrażenie, żejest to język zacofany, choćby w porównaniu do microsoftowego C#na platformie .NET. Obietnicą szybszego rozwoju i nowoczesności,dzięki której nie będziemy musieli sięgać po dziwne wynalazki wrodzaju Kotlina, jest nowy, półroczny cykl wydawniczy Javy.Zaprezentowany w tym tygodniu JDK 10 Javy jest pierwszym wydaniem wtym cyklu. Czy to czterokrotne przyspieszenie pozwoli odnowićzainteresowanie językiem i platformą?

Nowa Java gwałtownie przyspiesza, zarówno z tempem wydań jak i działaniem

22.03.2018 | aktual.: 22.03.2018 19:02

Gdy Oracle zapowiadało w zeszłym roku nowy cykl wydawniczy,główny architekt Javy Mark Reinhold przyznał – choćdotychczasowe duże wydania co dwa lata pozwalały na wprowadzaniedużych nowych zmian w sprawdzonym kodzie o wysokiej jakości, tojednak wszystko to odbywało się kosztem tempa rozwoju pomniejszychinterfejsów, zmian w języku i funkcji maszyny wirtualnej, któremogły być wprowadzone dopiero wtedy, gdy te duże zmiany byłygotowe. Takie podejście mogło się sprawdzić wtedy, gdy Javarywalizowała z kilkoma innymi platformami, ale nie dziś, gdy narynku mamy wiele platform rozwijających się bardzo szybko.

Oracle zdołało dotrzymać obietnicy. Na wiosnę zadebiutowałoJDK 10, pierwsze nowe wydanie tego szybkiego cyklu, ogólnie jużdostępne, bez jakichkolwiek poważnych usterek. Wydanie to będziejednak wspierane bardzo krótko, aktualizacje dla niego będąwydawane tylko do września. Wtedy też zostanie wydany JDK 11,wersja o wydłużonym (trzyletnim) okresie wsparcia (LTS). Takiewersje LTS będą pojawiały się co trzy lata.

Ciekawostką może być to, że Oracle wyraźnie zainspirowanecyklem wydawniczym Ubuntu, przymierzało się nawet do wydania wmarcu czegoś, co by się nazywało Javą 18.3. Plany te zostałyjednak porzucone, okrągłe numerki będą szły kolejno.

Co najciekawszego w JDK 10?

Nowe wydanie przynosi dwanaściedużych nowości, szczegółowo opisanych w dokumentach JavaEnhancement Proposal (JEP). Poniżej wspomnimy jedynie onajważniejszych (naszym zdaniem), odsyłając zainteresowanychszczegółami do dokumentacji Oracle.

Local variable typeinference – inferencja typów została rozszerzona nadeklaracje lokalnych zmiennych. Dzięki temu nie trzeba będzie długorozpisywać się z deklaracjami zmiennych lokalnych.

Parallel Full GC for G1– domyślny w Javie 9 odśmiecacz pamięci G1 stosuje jednowątkowyalgorytm typu mark-sweep-compact, kiedy nie potrafi odzyskać pamięciwystarczająco szybko, powraca do starego równoległego odśmiecacza.Aby ograniczyć najgorsze opóźnienia, udało się ten nowyodśmiecacz też uczynić równoległym.

Application Class-DataSharing – mechanizm Class-Data Sharing został rozszerzony omożliwość przechowywania klas aplikacji we współdzielonymarchiwum. Pozwala to zmniejszyć rozmiary procesów Javy w pamięci(średnio o około 3-4%), przyspiesza ich uruchamianie (o nawet20-30%) i ułatwia wykorzystanie zarchiwizowanych klas.

Thread-Local Handshakes– to nowy sposób wykonania wywołania zwrotnego na wątkach bezkonieczności wywoływania globalnej pauzy (safepoint) maszynywirtualnej. Dzięki temu możliwe i opłacalne będzie zatrzymywanieindywidualnych wątków, a nie jak do tej pory, albo wszystkich, albożadnego.

Experimental Java-BasedJIT Compiler – na systemach linuksowych działających naarchitekturze x86-64 będzie można wykorzystać nowy kompilatorJust-in-Time o nazwie Graal. To pierwszy krok na drodze zbudowaniakompletnego kompilatora JIT dla JDK, a ostatecznie zaimplementowaniaJavy na Javie w ramach Projektu Metropolis – tak by ostatecznieJavę pisało się w Javie, a nie jak dzisiaj głównie w C++ iassemblerze.

Root Certificates –w JDK pojawia się domyślny zestaw certyfikatów root UrzędówCertyfikacji (CA). Ich otworzenie ma uczynić otwarte wersje OpenJDKbardziej atrakcyjnymi dla deweloperów i zmniejszyć różnice międzynimi, a kompilacjami Oracle.

To oczywiście tylko wierzchołek góry lodowej, ale jedno jestpewne: w półrocznym cyklu wydawniczym wszystko zdarzyć się będziemogło. Opóźnienia w realizacji takich ambitnych projektów jakLoom (uproszczenie programowania współbieżnego), Panama(połączenie JVM i kodu natywnego) czy Valhalla (inkubatorzaawansowanych funkcji maszyny wirtualnej i języka) nie wpłyną nawprowadzanie pomniejszych innowacji.

W naszej bazie oprogramowania możecie znaleźć już oficjalnąwersję JDK 10 naWindowsa. Zwykłym użytkownikom wystarczy oczywiście środowiskomaszyny wirtualnej Javy, JRE 10, dostępne u nas również w wersjinaWindowsa. Zainteresowani otwartymi wersjami JDK 10 na Linuksa imacOS-a znajdą je na stronachOracle.

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (122)