Каковы нынешние реалии стандарта языка? Используются ли в каких-то моментах фишки новых версий (если это вообще возможно)? Ибо судя по всем статьям, практически большинство до сих пор сидит на восьмёрке.
Да. Это отчасти правда.
Основные заказчики Java разработки - это банки. А они не любят миграции версий
без какой-то особой причины. Я работал с тремя банками и я могу сказать что большая часть кода - это
легаси. И совершенно
нет никакой надежды что будет bump версии языка. Product owner-ы в таком случае
задают вопрос - "а что мы с этого будем иметь". И обычно для банка - ничего особенного. В некоторых
случаях (использование CORBA или JAXb, com.sun.*) повышение версии чревато проблемами. Что-то
может резко отвалиться в новой версии.
Самые интересные новшества после JDK8 с моей точки зрения были не в языке а в других слоях JRE/JDK (GC, FFI, vectorization, unmanaged memory). Но вы еще попробуйте эти новшества
продать бизнесу. Успехов вобщем.
На какой версии лучше всего практиковаться в написании кода, да и обучаться в целом?
Да. Ты можешь брать самую последнюю LTS-версию. Брать preview нет никакого смысла. Очень
сомнительно что для учебы тебе кто-то даст в туториалах экспериментальные фичи. Скорее наоборот.
Есть ли вообще предпосылки на переход большей части энтерпрайза в ближайшем будущем (ближе к 2030) на более современную версию? Почему тезис о дорогом переходе не нивелируется тем, что за 10 лет со времён восьмёрки завезли достаточно "контента", например, новый синт.сахар и обновленный GC?
Никакого глобального перехода на самом деле нет. Потому что нет такой проблемы.
По сути проблемой например для Java 21 может стать "end of extended support" а он условно отмечен
например на 2031 год. Вы еще
попробуйте доживите до этого года и попробуйте сидеть на одном проекте
столько лет.
Java может стать
COBOL-ом XXI столетия. Но у нее будет даже меньше проблем чем у Кобола, потому что
байткод и стек-машина имеет больший потенциал. Тоесть пока жива концепция байт-кода и пока существуют
процессоры Фон-Нейман архитектуры, можно сказать что Java неубиваема.
Вообще не стоит вам сильно циклиться только на языке. Параллельно существуют
Scala, Kotlin, Groovy, Clojure
и их само существование делает много альтернатив. Одна JVM - бесконечное число языков.