Кажется, Java была объявлена ​​мертвой больше, чем любой другой язык программирования. Возможно, неудивительно, что сообщения о его смерти сильно преувеличены. Java занимает огромное место в серверной разработке, и большинство предприятий разрабатывают системы на Java. Однако в каждом слухе есть доля правды - Java был медленным языком в эпоху динамических языков, таких как Ruby и JavaScript. Традиционно основные выпуски Java занимали от трех до четырех лет разработки. Такими темпами сложно угнаться за другими платформами.

В 2017 году все изменилось. Oracle - управляющий Java - объявил, что платформа Java будет выпускаться два раза в год. Java 9, выпущенная ближе к концу 2017 года, была последней большой и долгожданной версией. После Java 9 каждый год в марте и сентябре выпускается новый крупный выпуск Java. Как часы.

Переход на этот ограниченный по времени график выпуска имеет множество последствий. Релизы больше не могут ждать функций, которые еще не завершены. Кроме того, поскольку между выпусками меньше времени, а размер команды, разрабатывающей Java, остается прежнего, в выпуск включается меньшее количество функций. Но ничего страшного - мы получим еще один релиз всего через полгода. Мы можем рассчитывать на постоянный поток новых функций и улучшений.

Интересно, что новые языковые функции теперь также предоставляются постепенно. В настоящее время язык Java развивается более динамично. Например, Java 12 поставляла Switch Expressions в качестве предварительной версии языка с явным намерением позже расширить эту функцию для поддержки полного сопоставления с образцом.

Одна из причин, по которой выпуски Java требовали так много времени и усилий, заключается в том, что платформа несколько окостенела за более чем 20 лет своего существования. В Java 9 платформа полностью модульна. Каждая часть платформы теперь помещена в свой собственный модуль с явными зависимостями от других частей. Модульная система, представленная в Java 9, обеспечивает соблюдение этой архитектуры платформы отныне.

Внутренние компоненты платформы теперь надежно инкапсулированы внутри модулей, предотвращая использование (ab) кода приложения и библиотеки. Раньше многие приложения и библиотеки зависели от этих внутренних компонентов платформы, что затрудняло развитие Java без нарушения большого количества существующего кода. Также возможно использовать модульную систему для ваших собственных приложений. Это может сделать вашу кодовую базу более удобной в обслуживании, гибкой и ориентированной на будущее.

Переход от длительного и непредсказуемого цикла выпуска к регулярным выпускам на основе календаря - большое достижение команды Java. Нам, как сообществу разработчиков, определенно потребовалось время для адаптации к этой новой реальности. К счастью, изменения в Java теперь менее значительны и постепенны. Эти более частые и регулярные выпуски легче адаптировать и адаптировать.

Для более медленных версий версия Java помечается как долго поддерживаемая (LTS) каждые шесть выпусков, начиная с Java 11. Это означает, что вы можете переходить между выпусками LTS каждые три года, если хотите. Важно понимать, что LTS предлагается такими поставщиками, как Oracle, Red Hat или даже Amazon, и не обязательно бесплатно. В любом случае, проект OpenJDK, не зависящий от производителя, продолжает создавать поддерживаемые сборки для последней разрабатываемой версии Java. Однако многое может измениться и изменится в выпусках между выпусками LTS. Если можете, садитесь на поезд частых выпусков и наслаждайтесь стабильным потоком улучшенной Java. Это не так страшно, как может показаться.