Oracle ogłosiło dziś dostępność Javy 13. Nie jest to wydanie szczególnie duże, gdyż przynosi raptem 5 JEP-ów (Java Enhancement Proposals). Nie należy się jednak temu szczególnie dziwić, gdyż właśnie takie tempo rozwoju Javy zakłada przyjęty w 2017 roku (wraz z premierą Javy 9) harmonogram wydawniczy. Zamiast rozbudowanego wydania co około 3 lata otrzymujemy mniejsze aktualizacje co trzy miesiące.
Java 13 już jest
Przyjrzymy się nowościom, czyli wspomnianym JEP-om. Trzy z nich (JEP 350, 351 oraz 353) są już pełnoprawnymi funkcjami Javy, zaś pozostałe dwa (JEP 354 i 355) udostępnione zostały w Javie 13 jako funkcje eksperymentalne. Nowa wersja to oczywiście także liczne poprawki – ogółem rozwiązano ponad 2,1 tys. problemów, w co wkład miało nie tylko Oracle, ale także ARM, Huawei czy Ampere Computing. Z ponad 2 tys. aż 671 problemów rozwiązali niezależni deweloperzy.
Choć Oracle zaznacza, że implementacja zaledwie 5 JEP-ów to rezultat przyjętego harmonogramu, to argumentacja ta wypada umiarkowanie przekonująco. Warto bowiem zaznaczyć, że Java 13 wypada blado także na tle poprzedniczek. Java 10 przyniosła 12 JEP-ów, natomiast Java 11 to aż 17 JEP-ów. Nawet ostatnie wydanie, Java 12 zaoferowała 8 nowości. W ciągu ostatniego roku mamy zatem do czynienia z wyraźną tendencją spadkową, co zresztą także może dziwić tylko umiarkowanie, o czym za chwilę.
Java 13 – co nowego?
Najpierw przyjrzyjmy się jednak wspomnianym nowościom:
- JEP 350 wprowadza obsługę CDS, czyli współdzielenia klas danych, w taki sposób, aby możliwe było ich dynamiczne archiwizowanie,
- JEP 351 to oznaczenia zmian w garbage collectorze, który odtąd może zwracać niewykorzystaną stertę z powrotem do systemu operacyjnego,
- JEP 351 to ponowna implementacja Legacy Socket API, dzięki której zastąpiono API java.net.Socket i java.net.ServerSocket rozwiązaniem nowocześniejszym i łatwiejszym w utrzymaniu,
- JEP 354 wprowadza zmiany w składni zaprezentowanego w Javie 12 wyrażenia switch,
- JEP 355 oznacza obsługę bloków tekstu, dzięki czemu w ramach jednego literału można wprowadzać nowe wersy.
Java 13 – czy kogoś obchodzi?
Wspomnieliśmy już, że niewielka liczba wprowadzonych nowości tylko częściowo może być zaskoczeniem. Dzieje się tak, gdyż lwia część programistów zaangażowana jest w projekty, które nie pozwalają im na migracje na nowsze wersje Javy. Z wielu powodów, przede wszystkim wynikających z obaw o kompatybilność, trwają oni przy ostatnim wydaniu pochodzącym z poprzedniego cyklu wydawniczego, czyli przy Javie 8. Nie sposób oczekiwać, by premiera Javy 13 cokolwiek w tej kwestii zmieni.