Java 9 znamy już datę premiery

Java 9 znamy już datę premiery

przez -
15 8022
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.