TeamQuest Blog

Java 14 dostępna – przegląd nowości. Język obchodzi 25. urodziny!

Java 14 dostępna – przegląd nowości. Język obchodzi 25. urodziny!

Maciej Olanicki , 05.03.2020 r.

23 maja 1995 światło dzienne ujrzała Java – język programowania, o którym bez przesady można powiedzieć, że zmienił nasze myślenie o wieloplatformowym oprogramowaniu. Dzięki uniwersalnemu środowisku uruchomieniowemu w postaci maszyny wirtualnej, jak nigdy dotąd zbliżyliśmy się realizacji koncepcji, w której raz napisany kod działa będzie na wielu różnych urządzeniach różnej klasy z różnymi systemami operacyjnymi. W tym roku Java obchodzi 25. urodziny i świętuję je premierą nowej wersji – dostępna jest już Java 14.

Zobacz też: Programiści Java mogą odtąd skorzystać ze specjalnego instalatora Visual Studio Code

25 lat Javy

Według Richa Sharplesa z Red Hata ogromny sukces Javy wziął się między innymi z przejrzystej składni, która sprzyjała pracom utrzymaniowym. Najważniejszym czynnikiem – zwłaszcza w okresie tzw. boomu dotcomów – mogła być jednak gotowość Javy na obsługę protokołów sieciowych, przede wszystkim HTTP. Przez ostatnie dwie dekady Java dobrze adaptowała się do zmieniających się realiów, stając się np. głównym językiem back-endu na Androidzie. Dopiero niedawno Google zaczęło promować jako jej zamiennik język Kotlin.

Przeczytaj także: Java 13 dostępna. Liczba nowości maleje z wydania na wydanie

Osobną kwestię stanowi jednak cykl wydawniczy Javy oraz konsekwencje zmian wprowadzonych po premierze wersji 8. W rezultacie porzucenia części API lwia część programistów nie znalazła argumentów na rzecz migracji, zwłaszcza że wymagałoby te przepisywania niekiedy całego kodu. Oracle boryka się więc z problemem – kolejne wersje Javy nie są już tak istotnym wydarzeniem, a implementacja kolejnych JEP-ów nie wystarcza, by to zmienić. Zwłaszcza, że język traci także systematycznie na popularności i wielu rankingach zajmuje, już nie drugie, lecz trzecie miejsce, za JavaScriptem i Pythonem.

Przeczytaj też: StackOverflow Developer Survey 2019 – Python i Visual Studio Code biorą wszystko

Java 14 – co nowego?

Przyjrzyjmy się zatem nowościom, które pojawiły się w najnowszej, jubileuszowej wersji Javy. Nowości jest relatywnie sporo, gdyż Java 14 implementuje więcej JEP-ów niż wersje 12. i 13. łącznie – w stabilnej wersji jest ich 11, dwie kolejne dostarczane są postaci paczek incubator, a cztery nowości pojawiły się w wersji poglądowej:

  • JEP 305 (Preview) – pattern matching dla operatorów, czyli technika sprawdzania, czy jakieś wyrażenie zawiera element, a jeśli tak, to umożliwia jego warunkową ekstrakcję.
  • JEP 345 – (Incubator) – nowe narzędzie do pakowania bazujące na JavaFX, które ułatwi końcowy użytkownikom instalację (formaty MSI, EXE, PKG, DMG, DEB i RPM), pozwoli na uruchamianie programu z parametrami oraz może być wywołane z poziomu wiersza poleceń.
  • JEP 349 – poprawki zwiększające wydajność garbage collectora G1, dzięki implementacji alokacji pamięci obsługującej NUMA.
  • JEP 352 – nowy mechanizm mapowania plików umożliwiający wykorzystanie API FileChannel do tworzenia instancji MappedByteBuffer, które nie odnoszą się do pamięci nieulotnych.
  • JEP 358 – wyjątek NullPointerException będzie odtąd wskazywać, która zmienna miała wartość null.
  • JEP 359 (Preview) – records, czyli składnia umożliwiająca deklarowanie klas, które dla danych, które się nie zmieniają.
  • JEP 361 – nowości w wyrażeniach switch, czyli bodaj największa nowośc w Javie 14. Odtąd switchami mogą być instrukcje i wyrażenia. JEP był już dostępy testowo w Javie 12 i 13, a docelowo ma pozwolić na pattern matching dla wyrażeń switch.
  • JEP 362 – porzucenie obsługi portów Solaris i SPARC.
  • JEP 364 – usunięcie garbage collectora CMS.
  • JEP 365 – garbage collector ZGC został przeportowany zarówno na macOS-a, jak i Windowsa
  • JEP 366 – porzucenie obsługi kombinacji Parallel Scavenge i garbage collectora SerialOld.
  • JEP 367 – usunięto narzędzie i API Pack200.
  • JEP 368 (Prieview) – obsługa bloków tekstów (Text Blocks), czyli rozciągających się na wiele linijek literałów.
  • JEP 370 (Incubator) – obsługa API Foreign-Memory Access.

Więcej szczegółowych informacji na temat nowości w Javie 14 znaleźć można m.in. na stronach OpenJDK. Premiery Javy 15 spodziewamy się za 6 miesięcy.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej