Java 9 znamy już datę premiery

15
9378
java logo
java logo

Po wielu latach prac, Oracle ogłosił, że 22 września 2016 zostanie wydana nowa Java 9. Jest ona bardzo długotrwałym i żmudnym projektem, który rozpoczął się niemal od czasu gdy Oracle przejął firmę Sun Microsystems. Po tym zdarzeniu firma musiała skompletować od początku zespół, który rozpoczął proces zmian oraz modularyzacji języka. Pojawiły się nowe wersje Javy, w szczególności Java 8, oraz dużo poprawek błędów w trakcie trwania tego procesu.

Na początku maja szef architektów Java Platfom Mark Reinhold upublicznił harmonogram prac nad Java 9:

  • 2015-12-10: Feature Complete
  • 2016-02-04: All Tests Run
  • 2016-02-25: Rampdown Start
  • 2016-04-21: Zero Bug Bounce
  • 2016-06-16: Rampdown Phase 2
  • 2016-07-21: Final Release Candidate
  • 2016-09-22: General Availability

Jak widać, Reinhold daje Oracle dużo czasu pomiędzy etapami na ewentualne poprawki błędów. Największą zmianą w Javie 9 jest przejście do modułowości. Tak zwana „układanka” to zbiór klas, bibliotek i różnych innych danych wraz z metadanymi. Pierwszym moim skojarzeniem były pudełka z klockami, która można dokładać do projektu kawałkami w miarę potrzeby. Już widzieliśmy wstęp do wprowadzenia modułowości w Javie 8, a mianowicie były to profile kompaktowe. Ale te klocki zawarte w Javie 9 będą dużo mniejsze. Założeniem projektu jest usunięcie problematycznych plików RT i JAR, a zastąpienie ich przez profile kompaktowe (compact profiles).

Modułowość również poprawi bezpieczeństwo aplikacji, co jest bardzo potrzebne. Java 9 wprowadzi wyraźne różnice pomiędzy komponentami i jasno określi, co musi pozostać wewnątrz modułu, a co może się znaleźć na zewnątrz. Dzięki temu możliwość ataków poprzez odnoszenie się do metod, które poszerzą uprawnienia aplikacji lub jej dostęp do danych, pozostanie mocno zmniejszona. Nowy linker, który zajmie się linkowaniem modułu został nazwany jlink.

Pozostaje nam czekać cierpliwie na premierę długo wyczekiwanej przez entuzjastów języka Java nowej 9-tki.

Poprzedni artykułdigiKam 4.13.0 i przygotowania do przejścia na KDE Frameworks 5
Następny artykułAstropy, czyli Python w Astronomii

15 KOMENTARZE

  1. Czy ten artykuł jest dla przedszkolaków? „pudełka z klockami”, „bezpieczeństwo aplikacji, co jest bardzo potrzebne”, „Nowy linker, który zajmie się linkowaniem”.

  2. Jak z wydajnością programów skompilowanych Javą 9 w stosunku do Javy 8? Czy Java dogodni kiedyś C++ jesli chodzi o szybkosc wykonywanego kodu? Kiedys dla zabawy przepisalem generator posuniec programu szachowego do javy i okazalo sie ze jest o polowe wolniejsza w porownaniu do c++. TRAGEDIA!!!

    • W pewnych wąskich zastosowaniach Java jest w stanie prześcignąć c++, zresztą c++ nie jest tak przenośny. Po prostu każdy język ma jakąś swoją niszę, gdy chcesz mieć kod szybki od samego początku piszesz w C++, jeśli kod ma się wykonać wszędzie i nie brać wielu zasobów bierzesz Pythona, gdy chcesz mieć aplikację o przenośności Pythona i wydajności długoterminowej zbliżonej do c++ bierzesz Javę. Proste.
      A na koniec: https://osworld.pl/czy-java-faktycznie-jest-taka-wolna/

    • Z całym szacunkiem, ale:

      1) Java nie powstała po to, żeby programy w JVM były wykonywane szybciej, niż w C++. Chodziło raczej o to, żeby koszt tworzenia oprogramowania był mniejszy, niż dla C++. (To tak w dużym uproszczeniu i skrócie.)

      Co nie zmienia faktu, że rzeczywiście w niektórych przypadkach szybkość JVM jest większa, niż szybkość oprogramowania pisanego w C++.

      2) Co do Twojego generatora – to czy słowo „TRAGEDIA” odnosi się do Javy, czy też do Twoich umiejętności używania Javy?

      Nie chcę ani Cię atakować, ani niczego sugerować. Po prostu zwracam uwagę na fakt, że język programowania to tylko narzędzie. Nawet jeśli mamy dobre narzędzie, to niekoniecznie znaczy, że jesteśmy w stanie dobrze je wykorzystać.

      Pamiętam, kiedy z Pythona przesiadłem się na Javę. Przez pierwszy miesiąc próbowałem pisać w Javie tak, jakbym pisał w Pythonie. Wyniki były opłakane. Każdy język ma swoją specyfikę, którą trzeba poznać. W Javie piszemy inaczej, niż w Pythonie czy C++. Z mojego doświadczenia wynika, że takie jednorazowe eksperymenty z przepisywaniem kodu na inny język dają raczej kiepskie wyniki. Zupełnie inaczej jest, kiedy oprogramowanie od początku zostanie zaprojektowane do wykorzystania tego innego języka.

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj