Choć Java 10 jeszcze na dobre się nie zadomowiła, już doczekaliśmy się jej kolejnej wersji. 25 września została udostępniona Java 11. Najwięcej zamieszania wśród programistów wywołuje kwestia licencji. Rozwiewamy wątpliwości, dla kogo nowa Java będzie płatna a kto i na jakich zasadach będzie mógł korzystać z niej za darmo.
Wersje Javy
Jeszcze do niedawna na kolejne wersje Javy programiści musieli czekać 2-3 lata. Najdłuższa, pięcioletnia, przerwa miała miejsce pomiędzy Javą 6 (2006) i 7 (2011) i była związana z przejęciem firmy Sun przez Oracle. Choć na kolejną, ósmą wersję trzeba było czekać następne trzy lata, przyniosła ona największe zmiany w jakości tworzenia oprogramowania. Java 9 (2017) mimo że nie wprowadzała tak wielu nowości związanych z pisaniem kodu, jak poprzedniczka, to udostępniła funkcjonalny system modułów wprowadzający nowe możliwości w tworzeniu aplikacji – JShell. Najciekawszą zmianą w wydanej w marcu 2018 roku Javie 10 był z kolei feature „local variable type inferencje”. Nowe wersje Javy mają teraz pojawiać się dwa razy w roku – w marcu i we wrześniu. Jakie nietechniczne zmiany wiążą się w wydaniem Javy 11?
Zmiana reguł gry
Zgodnie z wcześniejszymi zapowiedziami, Oracle od wersji 11 Javy kończy z udostępnianiem swojego JDK za darmo do użytku komercyjnego (utrzymana ostanie darmowa wersja dla użytkowników tworzących projekty na własne potrzeby). Co więcej, bezpłatne JDK 11 do zastosowań komercyjnych w ogóle nie zostanie wydane. Obowiązujące od stycznia 2019 roku opłaty to 2,5 USD za użytkownika miesięcznie a także dodatkowo 25 USD za fizyczny procesor, jeśli pracujemy na serwerach i w chmurze. Co istotne, przy obliczaniu kosztów trzeba wziąć pod uwagę liczbę rdzeni, na których działa program oraz określony przez Oracle współczynnik dla danego procesora. Dla tych, którzy zdecydują się na hurtowy zakup licencji przewidziano zniżki. Java 11 to LTS, czyli Long-term Support. Oznacza to, że jej komercyjna wersja będzie wspierana aż do 2023 roku, a w wersji przedłużonej do 2026 roku. To poważny argument, aby wybrać tę wersję Javy w długo utrzymywanych projektach. Wydanie kolejnego LTS planowane jest za trzy lata.
Darmowa opcja dla wszystkich
Choć Oracle nie wyda już darmowej Javy do komercyjnego użytku, rozwiązaniem dla wielu programistów może być OpenJDK wydawane na licencji GPL. To wersja, której wciąż może każdy używać bezpłatnie. Oracle zobowiązało się do wspierania jej darmowymi aktualizacjami minimum przez sześć miesięcy od daty wydania. Co dalej? Wszystko w rękach społeczności open source oraz firm, którym zależy na rozwoju projektu. Nie ma również konieczności, aby już teraz ugrade’ować Javę 8. Komercyjna licencja przewiduje rozwój tej wersji do marca 2022 roku, natomiast przedłużone wsparcie aż do marca 2025.
Zmiany licencyjne oraz ograniczenie wsparcia wersji rzez Oracle niekomercyjnej OpenJDK, co zrozumiałe, nie budzą zachwytu wśród społeczności programistów. Czy to oznacza, że Java przestanie być numerem jeden wśród języków programowania? Czas pokaże.