Preview Feature

Java 7, 8, czy 9, była wydawana w długich odstępach czasu sięgających kilku lat. Najdłuższy przestój był pomiędzy Javą 6 i 7 i wynosił aż 5 lat. Długie odstępy czasu wynikały w dużej mierze z faktu, że twórcy Javy stawiali sobie ambitne plany co do tego, co powinno pojawić się w kolejnych wydaniach. Jak to w życiu bywa, nie wszystko udawało się "dowieźć" na czas i wydania kolejnych wersji się opóźniały. Miało to negatywny wpływ na społeczność, która oczekiwała nowości, które w innych językach programowania pojawiały się częściej.

Kurs programowania Java

Poczynając od Javy 10 wprowadzono nowy system wydań. teraz nowa wersja pojawia się co pół roku - w marcu i wrześniu każdego roku. Takie podejście sprawiło, że co prawda w kolejnych wersjach Javy nie ma już tak wielkich zmian wprowadzanych na raz jak to bywało wcześniej, np. wprowadzenie wyrażeń lambda i strumieni w Javie 8, ale za to wraz z każdą kolejną wersją otrzymujemy drobne usprawnienia, które ułatwiają pisanie kodu. Twórcy Javy zauważyli jeszcze jeden problem. W Javie bardzo duży nacisk kładzie się na kompatybilność wsteczną. Jeżeli więc do języka zostaje dodana jakaś nowa konstrukcja, albo słowo kluczowe, to w kolejnych jej wersjach nie można ich ot tak usunąć (tzn. można, ale na pewno wiele osób byłoby niezadowolonych i mogłoby to skutkować odwróceniem się od Javy). Jednocześnie przed wprowadzeniem niektórych zmian, fajnie byłoby dać możliwość przetestowania nowych funkcjonalności szerszej grupie osób i wprowadzić ewentualne poprawki na podstawie uzyskanej od nich informacji zwrotnej.

Od Javy 12 niektóre funkcjonalności mogą być dodawane do języka jako tzw. Preview Feature. Elementy tak oznaczone, np. switch expressions z Javy 12, albo text blocks z Javy 13, to ukończone i w pełni funkcjonalne usprawnienia języka, które jednak należy w swoim kodzie traktować ostrożnie. Jeżeli jakaś funkcjonalność jest oznaczona jako preview feature, oznacza to tyle, że jest ona kompletna i w pełni użytkowa, ale twórcy Javy dają sobie możliwość wprowadzenia do niej pewnych zmian lub nawet całkowitego ich usunięcia w kolejnych wersjach Javy. Przykładem, gdzie się to przydało jest switch expressions, gdzie słowo break zostało zamienione na yield.

Funkcjonalności, które dodawane są do języka jako preview feature, są domyślnie wyłączone. W celu ich włączenia, podczas kompilacji należy dodać dodatkową flagę:

javac --release 13 --enable-preview Hello.java

Jeżeli korzystasz np. z IntelliJ IDEA, również należy to włączyć. W tym celu możesz przejść do ustawień projektu i wybrać odpowiednią opcję z listy Project Language Level:

intellij_preview_feature

Dyskusja i komentarze

Masz pytania do tego wpisu? Może chcesz się podzieliś spostrzeżeniami? Zapraszamy dyskusji na naszej grupe na Facebooku.