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:

3 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

Dodaj komentarz

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