19 marca premierę będzie miała Java 12. W Sieci pojawiają się już pierwsze przeglądy nowości, porównania i artykuły na temat zalet migracji z Javy 11 na najnowszą wersję. Oracle ma jednak spory problem z cyklem wydawniczym JDK, który z całą pewnością wpłynie także na popularność Javy 12. Lwia część programistów wciąż obstaje przy Javie 8 i ma ku temu wiele powodów. Czy nowa wersja JDK może cokolwiek zmienić?
Java 8 – zbyt dobra, by odejść
Migracja na cykle wydawnicze oparte na kilkumiesięcznych interwałach to już od jakiegoś czasu globalny trend w rozwoju oprogramowania. Dwie premiery na rok z reguły skutkują także utrzymywaniem jednej lub więcej wersji o wydłużonym okresie wsparcia. Nie inaczej jest z Javą. Wydana w marcu 2014 roku Java 8 była przedostatnim przedstawicielem dotychczasowego modelu opartego na wieloletnich przerwach i dużych nowościach z wydania na wydanie.
Wszystko zmieniło się wraz z premierą Javy 9, którą od wydania „ósemki” dzieliły ponad 3 lata. Java 9 była ostatnim przedstawicielem starego cyklu i jednocześnie pierwszym nowego – na Javę 10 musieliśmy czekać już tylko 4 miesiące. Java 9 była jednak wydaniem przełomowym także pod względem technicznym – pozbyto się wielu API, wdrożono Project Jigsaw, który miał podzielić JDK na moduły i ułatwić w ten sposób utrzymanie dużych aplikacji i bibliotek.
Gdzie drwa rąbią, tam wióry lecą. Tim Anderson z redakcji The Register wziął w ostatnim czasie udział w londyńskiej konferencji Qcon. Niespodziewanie prezentacja dotycząca funkcji Javy 11 przerodziła się w dyskusję na temat ciągłej popularności Javy 8. Jedna z prelegentek zdecydowała się nawet na uruchomienie twitterowej ankiety, w której pytała programistów, z jakiej wersji Javy korzystają. Wśród 1371 osób, które odpowiedziały na pytanie, 78% korzysta z Javy 8.
Zobacz też: Które blogi dla programistów Java warto czytać?
Oracle w obliczu trudnego wyzwania
Wnioski z tej dyskusji powinny być dla Oracle pouczające. Javy nie da się wyrwać z kontekstu jej ponad dwudziestoletniej historii. Migracja na Javę 9 oznaczałaby dla wielu programistów ogromne problemy z kompatybilnością i zależnościami – problem tkwi nie tylko w usunięciu API, ale także braku obsługi starych bibliotek przez Javę 9 i nowsze wersje JDK. Nie oznacza to jednak, że na tym polu nie dokonują się żadne postępy.
Martin Verburg z JClarity zauważył, że z tysiąca najpopularniejszych bibliotek z repozytorium Maven 65% jest „już” kompatybilnych z Javą 9 i nowszymi wersjami. Zaledwie pół roku temu odsetek ten wynosił 42%. To jednak wciąż za mało, by przekonać do migracji tysiące programistów – podczas Qcon wielu uczestników przyznało, że nowsze wersje to niewiele wnoszące iteracje i zwyczajnie nie czują potrzeby, by migrować.
Trudno oczekiwać, aby Java 12 miała tu cokolwiek zmenić. Do grudnia 2020 roku Java 8 wspierana będzie w zastosowaniach niekomercyjnych, rozszerzone wsparcie potraw do marca 2025 roku. Oracle w ciągu najbliższych miesięcy musi więc zrobić wszystko, by przekonać ogromną rzeszę programistów Java, że kolejne wersje wydawane co pół roku rzeczywiście mają do zaoferowania coś więcej, niż problemy z kompatybilnością.
Zobacz też: JavaFX usunięta z Java JDK 11 - od teraz samodzielny moduł