Java 11 dla 12 mln programistów na osiem kolejnych lat. I tak naprawdę wcale nie musisz za to płacić

Strona główna Aktualności

O autorze

12 milionów programistów na świecie korzysta z Javy – to numer 1. wśród języków programowania, stwierdził dziś Sharat Chander, dyrektor rozwoju Javy SE w Oracle, przy okazji wprowadzenia na rynek Javy 11, pierwszego wydania o wydłużonym okresie wsparcia od czasu przejścia na nowy, szybki cykl wydawniczy. Ale czy długo jeszcze tym numerem jeden pozostanie po zmianie modelu licencyjnego na płatne subskrypcje?

Zobaczmy co w nowej Javie piszczy. Przede wszystkim dostajemy kolejną licencję, która zastępuje dotychczasową Binary Code License (BCL), wykorzystywaną w świecie Javy od ponad 10 lat. Jak wyjaśnia Chandar na łamach korporacyjnego bloga, Oracle dostarczać będzie JDK nie tylko w Oracle OpenJDK korzystającym z GNU GPLv2 (z tzw. Classpath Exception), ale także pod komercyjną licencją. Jest ona przeznaczona dla tych, którzy będzą korzystać z Oracle JDK jako części produktów lub usług Oracle, lub też tych, którzy nie chcą korzystać z otwartego oprogramowania.

Java za darmo, ale nie zawsze za darmo

Co to w praktyce oznacza dla użytkowników? Cóż, kilka miesięcy temu Oracle wprowadziło nowy model subskrypcji dla Javy SE, bazujący na abonamencie. Nie żeby nas to zaskoczyło, czuliśmy przez skórę, że tak to się musi skończyć. Wdrożenia serwerowe i chmurowe kosztują więc 25 dolarów za fizyczny procesor miesięcznie. Wdrożenia na desktopie to tylko 2,50 dolara za użytkownika miesięcznie. Jak ktoś chce kupić hurtem, dostanie zniżkę.

Przy okazji ogłoszono, że od stycznia 2019 klasyczna Java SE 8 już nie dostanie żadnych aktualizacji, także łatek bezpieczeństwa – chyba że kupimy subskrypcję.

Czy można korzystać z Javy za darmo? Pewnie, że można. Uważajcie jednak, by nie wpaść w pułapkę i nie pobrać binarnej OpenJDK ze stron Oracle, jak to wiele osób robi z przyzwyczajenia, to automatycznie zmusza nas do płacenia.

Aby legalnie korzystać z darmowego Oracle OpenJDK, trzeba go sobie zbudować samemu, ze źródeł dostarczanych na licencji GPLv2+CE, lub też pozyskać wersję binarną OpenJDK od któregoś z konkurentów. Swoje kompilacje OpenJDK oferują m.in. RedHat i IBM.

Nie tylko licencjonowaniem programista żyje

Przejdźmy do spraw technicznych. Java 11 przynosi gniazda (nests), mechanizm kontroli dostępu opisany w JEP 181. Dostosowuje się on do zagnieżdżonych typów, dzięki czemu klasy będące logicznie częścią tej samej jednostki kodu, ale które są kompilowane do różnych plików klasy, mogą uzyskać bezpośredni dostęp do swoich prywatnych członków bez konieczności wstawiania przez kompilator pomostowych metod dostępności.

Oprócz tego warto zwrócić uwagę na rozszerzenie formatu pliku klas o nową formę puli stałych, która przerzuca tworzenie na metody bootstrapowe (JEP 309), oraz wprowadzenie nowego odśmiecacza pamięci Epsilon, który kontroluje alokację pamięci, ale nie implementuje mechanizmów recyklingu pamięci (JEP 318). Java 11 to także ustandaryzowany klient HTTP (JEP 321), teraz w pełni asynchroniczny, nowa składnia dla parametrów w wyrażeniach lambda (JEP 323), pozwalająca wykorzystać słowo kluczowe var przy ich deklarowaniu, podstawowa implementacja protokołu bezpiecznej komunikacji TLS 1.3 i kilka innych ulepszeń kryptograficznych.

Pełna lista nowości znajduje się w informacjach o wydaniu, trzeba jednak pamiętać, że wśród nich są także informacje o usunięciu czy porzuceniu przestarzałych technologii. Moduły Java EE i CORBA zostały usunięte, a już niebawem taki los czeka silnik JavaScriptu Nashorn. Zamiast niego przyjdzie korzystać z tej nowej modnej superszybkiej maszyny wirtualnej GraalVM, która uruchamia nie tylko JavaScript, ale też Pythona, Kotlina a nawet C. Usunięto też narzędzia Pack200 i ich API, stosowane od niepamiętnych czasów do kompresji plików JAR.

Z JDK zniknął też JavaFX, framework do tworzenia aplikacji desktopowych i rozbudowanych aplikacji internetowych. Ale czy w erze wszechobecnego Electronu, Node.js i JavaScriptu ktoś będzie za nim płakał?

Komercyjne wsparcie dla Javy 11 jest gwarantowane przez Oracle na przynajmniej następne osiem lat. Kolejnym wydaniem o wydłużonym okresie wsparcia będzie Java 17, planowana na wrzesień 2021 roku.

© dobreprogramy