2017 год уже стал историей, и сейчас самое время на минутку остановиться и взглянуть какие события и изменения случились в мире Java за прошедшие двенадцать месяцев. За это время много всего случилось: от драмы с Project Jigsaw до задержки выхода Java 9 — в общем, повидали мы всякого.
![Чем жила Java в 2017 - 1]()
Начался переход MVC 1.0 под управление сообщества.
Добавление поддержки TensorFlow 1.0 упростило пользователям Java задачи по внедрению и использованию машинного обучения.
Kotlin 1.1 получил поддержку JavaScript и JVM, а также внедрил все необходимое для работы с грядущей Java 9.
А в это время в мире JVM появился новый по-настоящему функциональный язык программирования — Lux.
В то же время продолжаются судебные тяжбы между Oracle и Google, касающиеся Java API, и не видно им конца и края.
Вышла IntelliJ IDEA 2017.1 с поддержкой Java 8.
Среди новостей об Eclipse был предварительный обзор Eclipse Oxygen, который показал значительное улучшение удобства использования и рабочего окружения в Sirius.
![Чем жила Java в 2017 - 6]()
Gradle получил поддержку Java 9, а JDK 18.3 Early Draft Review стал доступен для загрузки. «The State of the Octoverse» подтвердили любовь GitHub к JavaScript, Python и Java.
![Чем жила Java в 2017 - 8]()

Январь
Java встретила 2017 год уймой различных событий. Jeff Luszcz прошелся по ряду проблем с использованием «свободного» Java софта, в частности — не очевидной для пользователей Java SE «не-бесплатности» JRE, а также потенциальной опасности неконтролируемого использования в своих проектах открытого кода.
Февраль
Появился Java-micro — новый фреймворк, призванный облегчить создание микросервисов на Java. Был анонсирован JHipster 4 с поддержкой Angular 2 и другими нововведениями. Новая глобально распределённая высокомасштабируемая мультиверсионная NewSQL СУБД, разработанная Google — Cloud Spanner добралась до статуса беты и получила полную поддержку Java.
Март
Конечно же, самой большой новостью месяца стал Angular 4. Впрочем, не менее интересным было открытие каталога программ NASA для всех желающих.
Май
Чем же запомнился май? Читатели в основном были озабочены новостями от индекса TIOBE, демонстрирующего что Java ступила на наклонную ведущую вниз, хотя по-прежнему удерживала лидирующие позиции (что делает и сейчас). Впрочем, большую часть мая тон новостям задавала драма, развернувшаяся вокруг Java 9. Сообщество раздирали споры об изменениях, предложенным в JDK 9 и Project Jigsaw, который позднее стал самой важной частью Java 9. В день голосования ряд участников не захотели проголосовать за Jigsaw, тем самым сместим дату релиза «девятки». Среди других новостей промелькнул анонс того, что отец Java, Джеймс Гослинг, организовал совместное предприятие с AWS
Июнь
Главные новости этого месяца включают объявление даты официального релиза Java 9. Теперь это 21 сентября. Georges Saab объяснил, почему эта задержка ничего не меняет в статусе Project Jigsaw.Июль
JetBrains, родители нашей любимой IDE IntelliJ IDEA 2017.2 не стали откладывать до официального релиза Java 9, а выпустили по расписанию заранее реализовав поддержку новой версии языка. Точно так же поступили и с JPMS (Java Platform Module System) — платформа обновилась по расписанию.Август
Еще больше новостей о Java 9 медленно подводят нас к дате релиза. А солнечное затмение в реальном мире, выбилось в ТОП-5 постов об Eclipse IDE по результатам августа (дело в том, что слово «eclipse» переводится как «затмение»).
Сентябрь
Релиз Java 9 и Java EE 8 показал, что все задержки того стоили. После долгих перипетий с выпуском Java 9, Oracle предложила вернуться к старой модели релизов с двумя выпусками в год. Под звуки фанфар был выпущен Spring Framework 5. Java EE официально перешла в Eclipse Foundation, а IBM открыла исходные коды собственной JVM.Октябрь
Поток новостей о Java 9 все не иссякает. В это время по сети гуляют многочисленные мнения о модульности. Так, Rabea Gransberger настоятельно рекомендует разработчикам детальней познакомиться с модулями, а Simon Ritter подчеркнул, что «JDK 9 не принес больших нововведений для разработчиков, главной целью было сделать среду модульной». По мнению Nicolai Parlog «Java 9 может сделать для модульности то, что Java 8 сделала для функционального программирования». Однако Lukas Eder настаивает, что «Jigsaw не еще некоторое время будет востребован пользователями, поскольку уже есть Maven и OSGi».
Ноябрь
В рамках инициативы по ускорению цикла разработки, Oracle анонсировали что «большинство промежуточных релизов должны содержать как минимум одно или два заметных улучшения». Также в этом месяце состоялся релиз Javalin, легковесного веб-фреймворка для пользователей Java и Kotlin, и Apache Kafka, которая пробыла в аду разработки ужасающе долго. А еще выяснилось, что большинство оригинально кода на GitHub написана на Java.Декабрь
Чем ближе к концу года, тем меньше крупных новостей. Oracle объявила, что следующая версия Java получит название JDK 10. Спасибо, КО!
2018 и дальше
Что ожидает Java в наступающем году? Что ж, по новому графику Oracle, следующий релиз должен быть готов в конце марта или начале апреля 2018 года. Скорее всего, новая функциональность в Java 10 будет представлена наработками, находящимися сейчас в JEP в статусе «Targeted» или «Proposed to Target». На данный момент это:- Local-Variable Type Inference — предложение по введению в Java ключевого слова var, что избавило бы от необходимости указывать тип локальной переменной явно.
- Объединение «леса» JDK в единый репозиторий (сейчас их восемь - root, corba, hotspot, jaxp, jaxws, jdk, langtools, nashorn).
- Garbage-Collector Interface (улучшение изоляции исходного кода различных сборщиков мусора с помощью интерфейса для Garbage Collector).
- Parallel Full GC для G1. В JDK9 сборщиком мусора по умолчанию стал G1, в то время как раньше базовым сборщиком был Parallel GC, у которого был также параллельный полный сборщик мусора, а вот у G1 — нет. Предлагается сделать полный сборщик мусора для G1 также параллельным.
- Application Class-Data Sharing — эта наработка предлагает улучшить загрузку и отслеживание, расширить существующую функцию разделения классов (CDS), чтобы позволить классам приложений размещаться в общем архиве.
- Thread-Local Handshakes — предложение способа выполнения коллбека по потокам без выполнения глобальной точки безопасности VM. Простой способ остановки отдельных потоков, а не всех вместе (или ни одного).
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ