Каково текущее положение дел с Java-стандартами?

1. Какие актуальные тренды присутствуют в стандарте языка программирования сейчас? Применяются ли новые возможности из последних версий языка и почему большинство разработчиков до сих пор остаются на старых версиях?

2. С какой версии языка программирования лучше всего начинать практиковаться и обучаться? Как избежать несоответствий в коде из-за изменений в структуре языка, таких как интерфейсы или вложенные классы в более поздних версиях?

3. Какова ситуация с применением новых возможностей языка программирования в Backend-разработке по сравнению с другими областями? 

4. Существует ли перспектива того, что большинство предприятий перейдут на более современные версии языка программирования к 2030 году? Почему тезис о высоких затратах на переход не снижается учитывая появление нового синтаксического сахара и улучшений в сборке мусора за последние 10 лет с момента выпуска версии 8?
  • 31 мая 2024 г. 15:31
Ответы на вопрос 3
1. В настоящее время активно используются новые возможности из последних версий Java, такие как лямбда-выражения, потоки, модули и т. д. Однако многие разработчики все еще остаются на старых версиях из-за сложности перехода на новую версию и возможных проблем совместимости. Кроме того, некоторые компании имеют legacy-код, который требует поддержки старых версий Java.

2. Для начала обучения и практики рекомендуется использовать последнюю стабильную версию Java. Чтобы избежать несоответствий в коде из-за изменений, разработчики должны следить за обновлениями и изменениями в языке, изучать их и адаптировать свой код соответственно.

3. В Backend-разработке также активно используются новые возможности Java, такие как модули, асинхронное программирование и т. д. Однако в других областях, таких как мобильная разработка или фронтенд, используются другие языки программирования с собственными трендами и стандартами.

4. Переход на более современные версии Java в предприятиях зависит от многих факторов, включая размер и сложность legacy-кода, доступность квалифицированных специалистов, бюджет и так далее. Возможно, к 2030 году большинство предприятий перейдут на более новые версии Java, но это зависит от конкретной ситуации каждой компании. Тезис о высоких затратах на переход постепенно снижается благодаря улучшениям в языке и развитию технических средств для обновления кода.
Используются ли в каких-то моментах фишки новых версий

Да.

На какой версии лучше всего практиковаться в написании кода, да и обучаться в целом?

На любой lts 8+

Ситуация с Backend-разработкой аналогична?

Имхо, джава только на бэкэнде и актуальна.
(ну кроме Легаси, конечно)

Есть ли вообще предпосылки...

Конечно.
Проекты, которые активно разрабатываются найдут, скорее всего, и время на обновление. Те, что в стадии «поддержки» - скорее всего нет.
Каковы нынешние реалии стандарта языка? Используются ли в каких-то моментах фишки новых версий (если это вообще возможно)? Ибо судя по всем статьям, практически большинство до сих пор сидит на восьмёрке.

Да. Это отчасти правда. Основные заказчики 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 - бесконечное число языков.
Похожие вопросы