Прогнозы развития Java и Javascript в 2020 году

Прогнозы развития Java и Javascript в 2020 году

8 апреля, 2020 Выкл. Автор FYI

Согласно индексу TIOBE сейчас  Java – наиболее популярный язык программирования. Этот индекс показывает, насколько часто в поисковых системах появляются вопросы о конкретном языке. И хоть этот индекс не дает четкого представления о реальном количестве кода, написанного на конкретном языке, он показывает популярность языка в мире.

Язык и платформа

В корпоративном секторе Java занимает лидирующее положение по сравнению со своим основным конкурентом C# за счет своих основных преимуществ — кроссплатформенности, обилия мощных фреймворков (Spring, Hibernate, Apache), широкой поддержки со стороны сообщества. Также стоит отметить, что Java — это не столько язык, сколько платформа. Одно и то же приложение, написанное на Java, будет успешно работать на различных ОС без внесения изменений в код.

Обратная сторона популярности языка — это его «неповоротливость», изменения в нём не могут быть слишком частыми и революционными, они должны быть эволюционными и не заставлять разработчика каждый раз переписывать код с нуля, т.е. обеспечивать обратную совместимость. Это поспособствовало появлению новых языков, таких как Scala, Groovy, Kotlin, Go, которые, несмотря на внешнюю независимость, используют в качестве среды выполнения JVM (Java Virtual Machine).

За эту неторопливость Java часто ругали ранее, но начиная с 2018 года Oracle изменила цикл выпуска версий Java на полугодовой, когда новая версия выходит каждые полгода и привносит различные новшества.

Новые версии, новые функции?

С новыми версиями Java всё больше приближается к актуальным запросам и трендам современной разработки – в новых версиях появляются новые конструкции, паттерны (var, pattern matching, легковесные потоки, аналогичные JS «обещания» и т.д.). Например, в 12 и 13 версиях добавлены:

— текстовые блоки

— Dynamic CDS Archive (ускорение запуска приложения)

— улучшенный алгоритм сборки мусора

— интегрированные микротесты производительности

— упрощенный синтакс switch-выражений

14 версия Java принесёт:

— запись как замена POJO

— «понятные» сообщения NPE

— поддержка энергонезависимой памяти

Кроме этого с апреля 2019 года компания Oracle изменила лицензионную политику. Все выпуски JDK (JDK11, JDK 8 Update 211), вышедшие позднее этой даты, при коммерческом использовании должны лицензироваться.

За это Oracle предоставляет долгосрочную поддержку «устаревших» версий Java. Данные изменения политики лицензирования касаются Oracle JDK, в то время как OpenJDK остаётся бесплатной. Кроме того, есть релизы, основанные на OpenJDK:

— Liberica JDK – стоит отдельно выделить, т.к. разрабатывается опытными разработчиками Oracle JDK, выходцами из команды Oracle

— AdoptOpenJDK

— Red Hat OpenJDK

— Amazon Corretto

В 2020 году Java остаётся и будет в обозримом будущем основным широкоиспользуемым языком (особенно в корпоративной разработке). Язык поддерживается и развивается, хоть и не резкими скачками; очень широко поддерживается сообществом.

На чем работать и что учить в 2020 году?

С какого языка начинать свое обучение? Мы бы рекомендовали не гнаться за новыми, модными языками типа Go, Rust, так как еще до конца непонятно, переживут ли они первую стадию своего роста и развития. Есть вероятность, что через пару лет о них никто и не вспомнит. Для первого погружения в профессию правильнее выбрать что-то устоявшееся и проверенное временем. Для backend — это Java.

Несмотря на то, что Java входит в круг влияния Oracle, этот язык все же базируется на независимой непроприетарной технологии ближе к миру Open Source. Java развивается уже почти 25 лет, и, в отличие от новомодных языков, ориентированных на решение каких-то конкретных задач, закрывает почти все области прикладной разработки: структуры данных, многопоточность, имеет множество проверенных фреймворков для реализации всех возможных архитектур от классической клиент-серверной до организации микросервисов и средств для функционального программирования Сложно представить какую-то область, которая бы не поддерживалась в Java. Не надо изучать язык досконально, но погрузиться в основные области нужно. Имея эту классическую базу, разработчик сможет с легкостью изучить любой другой язык, если потребуется.

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

С другой, редкие релизы были одновременно и сильной стороной Java. Стабильность и надежность — два основных фактора, влияющих на принятие решения при выборе технологии для разработки. А сейчас срок поддержки новой версии сильно уменьшился. Последний релиз с долгой поддержкой — одиннадцатый.

Но современные реалии диктуют свои условия: скорость развития технологий, спрос на новые решения и высокая конкуренция между языками программирования требуют изменений устоявшихся традиций и Java следует им.

В 2020 году Java сохранит низкий порог для входа в разработку

JavaScript – лидер по количеству проектов на GitHub. До сих пор, ничего покупать для разработки на Java и JavaScript не нужно — есть бесплатные свободно распространяемые инструменты. Для Javascript достаточно браузера и текстового редактора, для Java потребуется скачать бесплатный OpenJDK. Есть, конечно, и профессиональные среды разработки вроде IntelliJ IDEA.

JavaScript имеет множество реализаций. Наиболее известны V8 ( ядро браузера Chrome разработки Google) и SpiderMonkey (движок браузера Firefox). Интересно, что есть и разработка российских программистов — оптимизированный движок njs, использующийся популярным веб-сервером nginx. Стандарты языка Javascript разрабатываются международной общественной организацией — Европейской ассоциацией производителей компьютеров.

Потребность в разработчиках на обоих языках весьма велика, и всеобщая цифровизация приводит к тому, что снижения ее в ближайшее время не ожидается.