JavaRush /Java блог /Random /Чего Java-кодерам ждать от 2020 года: мнения и прогнозы э...

Чего Java-кодерам ждать от 2020 года: мнения и прогнозы экспертов

Статья из группы Random
Только начался новый год, все потихоньку отходят от праздников и вспоминают о том, что надо работать. Начала января — самое лучшее время для того, чтобы заняться планированием своей профессиональной (да и личной тоже) жизни на грядущий год. Чего Java-кодерам ждать от 2020 года: мнения и прогнозы экспертов - 1Что касается Java и программирования вообще, здесь планирование и адаптация к изменениям играют огромную роль, потому что позволяют заблаговременно подготовиться к трансформациям технологий и новым трендам. Об этом мы сегодня и поговорим — о прогнозах, трендах и ожиданиях вокруг и около Java-кодинга и программирования в целом. А начнем с перечисления нескольких глобальных тенденций, которые, по мнению многих экспертов, по полной проявят себя в этом году.

Активная автоматизация кодинга

Это часть глобального ИТ-тренда на автоматизацию, которая затронет в том числе и программирование. Согласно прогнозу исследовательской компании Forrester, к 2020 году программные роботы должны прийти на смену людям в выполнении рутинных задач, которые зачастую плохо даются живым программистам. Чего Java-кодерам ждать от 2020 года: мнения и прогнозы экспертов - 2Многие эксперты в программировании соглашаются с прогнозом Forrester, предполагая, что в 2020 году все больше рутинных трудоемких задач будут автоматизироваться. “Активно развивающиеся компании и сервисы нуждаются в более быстром и оптимизированном рабочем процессе, который позволяет быстрее внедрять обновления и исправления в производство, а также обрабатывать проблемы как только они возникают. Вот почему ведущие компании и команды движутся к полной реализации практик CI/CD [CI/CD — концепция непрерывной интеграции и доставки],” — отметил Лукас Эдер (Lukas Eder), Java эксперт, а также основатель и исполнительный директор компании Data Geekery. По словам специалистов, несмотря на то, что тренд на автоматизацию в программировании идет уже не первый год, именно в 2020-ом ожидается заметное увеличение роли автоматизации в жизненном цикле создания и доставки ПО. “Одна из основных областей, в которых автоматизация уже применяется активнейшим образом — это анализ основной причины (Root Cause Analysis). Компании осознают, что цикл не заканчивается на деплое кода в продакшн, и в 2020 году мониторинг станет неотъемлемой частью CI/CD цикла, а автоматический деплой требует более совершенного мониторинга. Ведь вы должны знать, когда в релизе появляются новые ошибки, не полагаясь на пользовательские отчеты, и обладать всей информацией, необходимой для их исправления,” — добавил Эдер. Многие крупные компании, среди которых Intuit, Zynga, TripAdvisor, Comcast и другие, уже давно активно внедряют автоматизацию в свои рабочие процессы, и Java-программистам стоит учитывать этот тренд.

Искусственный интеллект (ИИ)

Еще одним трендом, который неразрывно связан с автоматизацией и по скорости распространения от нее не отстает, — искусственный интеллект (ИИ). Несмотря на то, что технологии ИИ считаются “горячей” темой уже не первый год, их популярность продолжает нарастать. Еще в 2018-м году исследовательская компания Gartner спрогнозировала, что к 2020-му году технологии на основе ИИ будут присутствовать практически в каждом новом программном продукте. Так что сейчас как раз время углубиться в эту перспективнейшую и весьма обширную тему, чтобы иметь в глазах работодателей преимущество перед другими специалистами в программировании и не только. В сфере разработки применяются различные элементы ИИ, среди которых машинное обучение, интеллектуальный анализ данных, нейронные сети и многое другое. Все эти технологии могут, и в ближайшем будущем несомненно будут использоваться для того, чтобы помогать людям создавать более удобные и эффективные программные продукты. По мере распространения и популяризации, технологии связанные с ИИ становятся все более доступными. Например, сейчас всем желающим доступен целый набор открытых библиотек с алгоритмами машинного обучения, которые можно реализовать достаточно быстро даже без глубоких знаний в этой сфере. Среди наиболее популярных Java-библиотек с машинным обучением — Deeplearning4J (DL4J), Neuroph и BIG Data Project. Чего Java-кодерам ждать от 2020 года: мнения и прогнозы экспертов - 3

Ускорение инноваций

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

Переход от реагирования к проактивности

Общая направленность на ускорение и инновации создает еще один тренд: переход от реактивного подхода к проактивному. На практике это означает, что вы находите и решаете проблемы еще до того, как пользователь обнаружит ее существование. “Это можно делать с помощью различных инструментов для мониторинга, отладки, APM [Agile project management — гибкая методология разработки] и управления логами, в зависимости от ваших требований и элементов, которые вы хотите отслеживать и обрабатывать. Существует множество инструментов, которые помогут вам контролировать и анализировать ваш код, приложение и серверы. Их даже слишком много, вот почему важно понимать, что вы ищете, и что именно вы хотите отслеживать и анализировать,” — уверен Стив Роджерс (Steve Rogers), директор по разработке программного обеспечения в компании Viator, которая входит в TripAdvisor Group. Чего Java-кодерам ждать от 2020 года: мнения и прогнозы экспертов - 5“В прошлом поиск и устранение неполадок могли занимать у нас целые дни, создавая значительные затруднения. Но в итоге мы смогли решить эту проблему с помощью новых инструментов, и сейчас можем уделять больше времени проработке новых функций и прочим улучшениям наших продуктов. Какой бы из доступных на данный момент инструментов вы ни выбрали, помните о том, что инструмент должен работать на вас, помогая находить ответы на вопросы, которые позволят решать проблемы, а не отправят вас в дикую погоню за ошибкой через логи,” — советует Роджерс.

Тренд на надежность

Усиление фокуса на надежности и бесперебойности работы ПО — это еще один глобальный тренд на 2020-й год. С автоматизацией и ускорением выпуска новых релизов и функций проблема надежности и отлаженности любого продукта становится особенно остро. Это заставляет компании адаптироваться, больше времени в цикле разработки уделяя надежности программного продукта. “В 2020 году нам нужно быть более agile. С движением в сторону автоматизации рабочего процесса, надежность стала играть более важную роль. Мы в компании Intuit используем так называемый подход непрерывной надежности (Continuous Reliability). Он позволяет нам контролировать доступность и качество работы наших программных продуктов. В частности, мы достигли этого благодаря использованию OverOps [OverOps — решение для обнаружения ошибок в работе приложений на Java, Scala, Clojure и Groovy] в различных средах, среди которых QA, пре-продакшн и стейджинг. С помощью OverOps команда получает возможность обнаруживать ошибки до того как они повлияют на пользователя, что увеличивает надежность приложения и обеспечивает наилучший UX,” — рассказал Сумит Нагал (Sumit Nagal), главный инженер по качеству в компании Intuit.

Пусть говорят. Прямая речь экспертов о Java в 2020-ом

Ну а продолжим уже прямыми цитатами от Java экспертов о том, чего они ожидают и какие прогнозы могут дать на 2020-й год.

“Реактивное программирование будет формировать стратегии доступа к данным Java, открывая двери для нового класса приложений.”

“Java экосистема активно развивается в течение более 20 лет, и 2020-й год не станет исключением. Лично я ожидаю появления Hibernate 6. А также теперь, когда R2DBC (Reactive Relational Database Connectivity) достиг версии 1.0, я с нетерпением жду, как реактивное программирование будет формировать стратегии доступа к данным Java, открывая двери для нового класса приложений с интенсивным использованием данных,” — отметил Влад Михалча (Vlad Mihalcea), эксперт по Java и автор книги High-Performance Java Persistence.

“Все более важно видеть и понимать общие тенденции в разработке, и то, как они влияют на Java приложения.”

“Конечно, в 2020-ом мы получим Java 14 и Java 15. Однако, отходя от Java, языка программирования, все более важно видеть и понимать общие тенденции в разработке, в частности те, что относятся к деплойменту, запуску и отладке (например, в облаке), а также к безопасности. Поскольку облака и микросервисы становятся основным выбором для реализации, разработчикам важно понимать, как это влияет на Java приложения в долгосрочной перспективе,” — считает Триша Ги (Trisha Gee), эксперт по Java из компании JetBrains.

“Переход к другим способам работы с базами данных.”

“От 2020-го года я ожидаю перехода к другим способам работы с базами данных. В 2016-ом я начал читать лекции по SQL и другим языкам структурированных запросов. Движение в этом направлении идет, и мы видим все больше и больше инструментов и фреймворков, для которых базы данных не являются, так сказать, “гражданами второго сорта,” — сказал Майкл Симонс (Michael Simons), разработчик из компании Neo4j.

“Повседневный Java-код, а также код, который вы найдете в библиотеках, будет выглядеть несколько иначе, чем в предыдущие годы.”

“С новыми языковыми опциями, такими как “Pattern Matching for instanceof”, “Switch Expressions” и “Text-Blocks”, повседневный Java-код, а также код, который вы найдете в библиотеках, будет выглядеть несколько иначе, чем в предыдущие годы. Это безусловно будет проблемой для многих традиционных Java-разработчиков. Java также добавит в привлекательности благодаря улучшенной поддержке преждевременной компиляции и генерации собственных изображений для безсерверных сред,” — считает Томас Даримонт (Thomas Darimont), Java разработчик в компании codecentric AG.

“В 2020-ом многое будет происходить с Graal и поддержкой фреймворков.”

“Что касается непосредственно языка Java, в 2020-ом мы ожидаем появления еще двух версий, 14 и 15. Обе версии снова будут содержать множество новых функций, которые помогут нам в нашей разработке. Поскольку ни одна из этих версий не является LTS, мы не ожидаем, что до 2021 года появится JDK 17. Кроме того, многое будет происходить с Graal и поддержкой фреймворков. Именно в этой сфере я ожидаю особенно быстрого движения вперед, чтобы без колебаний переключиться на Graal,” — поделился своими ожиданиями Майкл Витц (Michael Vitz), старший консультант в компании innoQ Deutschland GmbH.
Комментарии (7)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Сергей Уровень 7 Expert
15 января 2020
Главный посыл всё тот же: развивайся в том, чем занимаешься и всегда будешь при деле. Халявщиков и слабаков никто не любит. Нужно быть специалистом! Всё! Пора за работу!
fktrctq Уровень 22
14 января 2020
что то не понял, вы хотели этой статьёй повысить мотивацию или ее убить!? наверное и правда кодеры становятся не нужны если тут такое читаем! я на 4 уровне, и вы мне сейчас ну прям чутка дали по ушам
LonWoLonWo Уровень 20
13 января 2020
"Среди наиболее популярных Java-библиотек с машинным обучением — Deeplearning4J (DL4J), Neuroph и BID Data Project." Попробую предположить, что BIG Data Project
Zhaxylyk Уровень 35
13 января 2020
Все это изменения хорошо или плохо в целом для программирования?