Czy Java jest darmowa?

| 14 lutego 2019

Ostatnio coraz częściej pojawia się pytanie czy Java jest płatna. W skrócie odpowiedź brzmi Nie. Java jest darmowa. Można jednak wykupić wsparcie i łatki bezpieczeństwa od Oracle, ale nie jest to wymagane.

Od Java 11 firma Oracle, która ma prawa do tego języka zaczyna wydawać dwie wersje Javy:

  • Java 11, do pobrania bezpośrednio ze strony Oracle. Tej wersji bezpłatnie można używać tylko do celów niekomercyjnych,
  • Open JDK 11 do pobrania na stronie https://jdk.java.net/11/ . Wersja ta udostępniana jest na licencji GPL i może być używana bezpłatnie również do celów komercyjnych.

Jaka jest różnica między tymi wersjami?

Z technicznego punktu nie ma żadnych większych różnic. Obie wersje działają tak samo szybko, tak samo stabilnie i posiadają praktycznie te same funkcjonalności (są marginalne różnice). Mało tego: Java 11 do Oracle budowana jest na bazie Open JDK 11. Na czym polega więc różnica? Oracle deklaruje, że wersję Open JDK 11 będą wspierali 6 miesięcy po jej wydaniu, natomiast ich wydanie Java 11 będzie wspierane do 2023 roku, a w wersji przedłużonej do 2026 roku.

Na czym polega wsparcie?

Jako wsparcie rozumie się głównie łatanie luk bezpieczeństwa. Jeśli takowe zostaną znalezione to Oracle szybko załata problem i wyda poprawkę. Jeśli jednak korzystamy z Open JDK 11 i okres 6 miesięcy od wydania minie to nasze oprogramowanie może być narażone na ataki przez znane luki bezpieczeństwa.

Ile to kosztuje?

Miesięczna opłata to 2,50 dolara za użytkownika i 25 dolarów za jeden procesor na serwerze.

Dla małej firmy z 15 pracownikami i 2 serwerami będzie to: $62,5 miesięcznie, $750 rocznie. Natomiast korporacji z tysiącami pracowników i setkami serwerów zdecydowanie więcej.

Czy ktoś to kupi?

W przypadku większych programów koszt nieustannego migrowania do kolejnych wersji Javy może znacznie przewyższać koszty licencji. Dodatkowo każda luka bezpieczeństwa może być niesamowicie kosztowna (systemy bankowe, maklerskie). Ciężko powiedzieć ile firm zdecydowało się na zakup licencji, ale wątpię, żeby Oracle narzekał na brak kasy.

Nie chcę płacić i chcę otrzymywać łatki bezpieczeństwa

Takiej opcji nie ma, ale Open JDK ma być teraz wydawane co pół roku. Wystarczy więc, że co pół roku zainstalujesz nową wersję Open JDK i tyle. Java jest (w miarę) kompatybilna wstecz, więc najczęściej nie ma problemów w migracji do nowszych wersji.

Źródła:

6 thoughts on “Czy Java jest darmowa?

  1. Entuzjasta

    Pituś bajduś.

    Java BYŁA fajna.

    Ale przy obecnej polityce Oracle po prostu należy ją omijać. Nie dlatego że. Ale po prosu jest wiele innych dobrych języków programowania – C#, C++, Python, ECMA Script a nawet PHP – przy których nie ma takiego cyrku – jaki zafundowało entuzjastom Javy Oracle.

    Przypomnijmy – w przypadku Javy konieczne jest zainstalowanie JRE/JDK przez end-usera – a 99% ZU po prostu nie ogarnie tematu. A my, wiedząc że nie ogarnie, nie będziemy narażać się na wkręcenie w ten cyrk. I tyle.

    Reply
    1. Sławek Ludwiczak

      Nie do końca. Java jest całkowicie bezpłatna i niewiele się w tej kwestii zmieniło. Oprócz JDK od Oracle jest co najmniej kilka innych dystrybutorów, którzy zapewniają dodatkowo dłuższe wsparcie, w tym tacy giganci jak RedHat/IBM, czy Amazon. Dodatkowo zastosowanie Javy to głównie aplikacje enterprise działające po stronie serwera. Użytkownik końcowy, podobnie jak np. przy PHP nie musi mieć zainstalowanej Javy, nie musi wiedzieć jaką technologię wykorzystuje np. dana strona internetowa „pod spodem”.
      Jeśli chodzi o aplikacje desktopowe, to aktualnie nie ma już rozróżnienia na JRE i JDK. Tworząc aplikację desktopową, dołączamy do niej w procesie budowania niezbędne elementy, tworząc kompletną paczkę. Wraz z rozwojem projektu GraalVM powoli staje się także rzeczywistością tworzenie w Javie aplikacji, które są później kompilowane do postaci natywnej.

      Reply
    2. Sławomir Kostrzewa

      „Przypomnijmy – w przypadku Javy konieczne jest zainstalowanie JRE/JDK przez end-usera – a 99% ZU po prostu nie ogarnie tematu.”.
      W przypadku C# trzeba zainstalować .NET, co może nie jest trudne, ale już z Pythonem to już całkiem masakra, bo przecież wersja 3 nie jest kompatybilna z 2. Do tego JRE możesz zainstalować na dowolnej platformie co już w przypadku .NET nie jest takie oczywiste, program w C++ musisz przekompilować aby przenieść go na inną platformę a i tak nie masz gwarancji że kompilacja się uda. Reasumując te drobne komplikacje które wprowadził Oracle wcale nie powodują że Java BYŁA fajna, nadal jest bezpłatna i ucząc się jednego języka ogarniesz wszystkie kwestie interfejsów od desktopowych, przez web serwisy kończąc na aplikacjach webowych. Do tego serwery typu Tomcat są bezpłatne i mogą zostać uruchomione na bezpłatnym linuksie.

      Reply
  2. Kuba

    Już nie. Informacja ze strony Oracle.com:
    Ważna aktualizacja licencji na Oracle Java
    Licencja na Oracle Java zmieniła się dla wydań, zaczynając od 16 kwietnia 2019 r.
    Nowa umowa licencyjna Oracle Technology Network dla Oracle Java SE znacząco się różni od poprzednich licencji na Oracle Java. Nowa licencja zezwala na określone typy użytkowania bezpłatnego — na przykład do użytku osobistego lub w celach tworzenia aplikacji — lecz inne typy użytkowania, dozwolone w poprzednich licencjach na Oracle Java, mogą już być niedostępne. Przed pobraniem i rozpoczęciem użytkowania tego produktu proszę dokładnie przejrzeć warunki. Odpowiedzi na często zadawane pytania są dostępne tutaj.

    Licencja komercyjna i Asysta Techniczna są dostępne w ramach niskokosztowej subskrypcji Java SE.

    Reply
  3. Koszyk

    No właśnie niestety mamy ten problem, bo mamy oprogramowanie, które wymaga JRE 🙁 I nagle z dnia na dzień musielibyśmy kupić około 1000 licencji na JRE 🙁 Producent oprogramowania już migruje na C#, ale póki nie zmigruje, mamy problem. Zatrzymaliśmy na razie aktualizacje JRE i mamy zachomikowaną instalkę ostatniej darmowej wersji JRE (Oracle już ją schował), ale to oznacza brak poprawek bezpieczeństwa

    Reply

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *