1995 год был напряженным. Microsoft запустила долгожданную Windows 95. Беспилотный космический корабль Galileo прибыл к Юпитеру. Pixar выпустила «Историю игрушек», первый в истории анимационный фильм, полностью созданный на компьютере. Однако вы бы не стали читать эту статью, если бы разработчики из Sun Microsystems (которая позже объединилась с Oracle Corporation) не представили и не развернули Java в те дни.

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

Услуги по разработке Java охватывают широкий спектр приложений, от одноранговых, с открытым исходным кодом и встроенных до беспроводных приложений и приложений JXTA. Согласно Индексу TIOBE, Java является самым популярным языком программирования в мире разработки приложений.

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

Если вы не жили в стороне от мира, вы могли заметить, что прежняя практика выпуска основных выпусков Java каждые три года изменилась. По мере продвижения работы над Java SE 9 в 2017 году некоторые начали задаваться вопросом, есть ли способ развивать платформу Java SE и JDK более быстрыми темпами.

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

Последняя версия, Java SE 12, была официально выпущена Oracle в марте 2019 года.

Добро пожаловать в языковую школу Java!

Одна из самых обширных тенденций, которой должны придерживаться разработчики приложений Java, - это расширение диапазона языков, используемых в виртуальной машине Java (JVM). Языки сценариев, такие как Python, Ruby, R, Scala, Kotlin, Clojure, C, C ++, привлекают всеобщее внимание.

JavaOne, крупнейшая конференция по Java, была переименована в CodeOne, чтобы подтвердить идею о том, что она включает больше языков, технологий и сообществ разработчиков. Согласно информации на официальном сайте, Java больше не будет центральным элементом конференции; Посетители также должны ожидать подробных обсуждений Go, Rust, Python, JavaScript и R, а также плодотворных бесед на такие актуальные темы, как чат-боты, микросервисы, искусственный интеллект, блокчейн и т. д.

Пройдя дальше, мы увидели появление GraalVM, проекта, который по сути является расширением JVM, предназначенным для поддержки большего количества языков JavaScript и режимов выполнения. Проект Graal включает новый высокопроизводительный компилятор Java, который можно задействовать в оперативной конфигурации на виртуальной машине HotSpot или в предварительной настройке на виртуальной машине субстрата.

Нам нужно поговорить о Котлине

Котлин, правда? Мы согласны с тем, что его фанатская база может быть не самой большой по сравнению с другими языками программирования, но, как следует из двухгодичного обзора RedMonk, Kotlin перескочил с 65 на 27 место менее чем за год. Это, безусловно, достижение, но не удивительно.

В настоящее время разработчики мобильных приложений могут выбирать из двух официальных языков программирования для разработки под Android - Java и Kotlin. Следовательно, Java больше не является языком программирования по умолчанию для разработки приложений для Android. Помимо работы на JVM, Kotlin также на 100% совместим с Java и разработан, чтобы его обожали разработчики Java. Классы, написанные на Kotlin, можно смешивать с классами, отображаемыми на Java, и решение будет работать без сбоев. С другой стороны, Kotlin, в отличие от Java, имеет определенные функции, упрощающие разработку приложений для Android и обслуживание кода приложений. Кроме того, он имеет ряд языковых функций, которые решают общие проблемы Java.

Но самое главное, Kotlin в настоящее время является языком первого уровня для разработки приложений для Android. Признательность Google за язык и стремление оказывать поддержку Kotlin очень много значит для его будущего развития и популярности.

Почему такая реактивная?

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

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

Чтобы облегчить жизнь разработчикам, умные люди придумали еще один инструмент - Spring 5.0 Framework. Эта платформа обеспечивает комплексную модель программирования и конфигурации для современных корпоративных приложений на основе Java на любой платформе развертывания. Хотя структура не требует какой-либо конкретной модели программирования, она приобрела свой статус в сообществе Java как дополнение или даже замена модели Enterprise JavaBeans (EJB).

Ветер перемен также исходит от проекта R2DBC (Reactive Relational Database Connectivity). Он позволяет асинхронно передавать данные любым конечным точкам, которые на них подписаны. Он представляет новый API, который позволяет использовать асинхронный неблокирующий код, который эффективно работает с реляционными базами данных. Кроме того, R2DBC поддерживает облачные приложения, в которых находятся реляционные базы данных, такие как PostgreSQL, MySQL и другие.

Сейчас так пасмурно

Разработчики Java не свободны от облачных вычислений. Чтобы ускорить разработку облачных приложений, ведущие компании-разработчики Java объединились для переноса технологий Java EE в Eclipse Foundation, где они будут развиваться под названием Jakarta EE.

Eclipse MicroProfile использует существующие инструменты Java EE (например, AX-RS, CDI, JSON-P) и объединяет их с новыми для создания базовой платформы, оптимизированной для микросервисной архитектуры. Три наиболее важных области, в которых разработчики хотят, чтобы Jakarta EE расставила приоритеты, - это лучшая поддержка микросервисов, встроенная интеграция с Kubernetes и более высокие темпы инноваций.

Хочу больше?

Наука о данных и Java

Java применима практически везде, и обработка данных не исключение. Независимо от того, какой модный фреймворк вы предпочитаете, будь то Apache Spark или Hadoop, всегда есть хорошо поддерживаемый клиент Java, с которым можно работать. Не говоря уже о клиентах для всех видов баз данных NoSQL или SQL.

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

Огромное сообщество гарантирует доступность множества библиотек для обработки данных и облачных вычислений. Сохранение кода ETL (извлечение, преобразование, загрузка), обработки данных и машинного обучения в одной экосистеме - определенно хорошая идея.

Разработка приложений Интернета вещей

Интеллектуальная межмашинная связь, поддерживаемая достижениями в технологиях Интернета вещей (IoT), заставит программистов писать совершенно разные приложения. В среде IoT различные устройства будут «общаться» друг с другом через Интернет. В то же время каждое подключенное устройство должно содержать встроенное приложение для связи с другими устройствами и обмена данными. В отличие от других языков программирования, Java совместима со многими устройствами и платформами. Кроме того, он дополнительно ускоряет разработку встроенных приложений, предоставляя широкий спектр API и библиотек.

Разработка индивидуальных решений для работы с большими данными

В настоящее время большинство предприятий используют специальное программное обеспечение для управления огромными объемами данных, собранных из различных источников. Хотя в Java нет встроенных функций, облегчающих разработку специализированных решений для больших данных, разработчики могут воспользоваться широким спектром инструментов и сред разработки, чтобы быстро писать их на Java. Компании-разработчики программного обеспечения могут рассмотреть, например, Hadoop, Accumulo, HBase, ElasticSearch и аналогичные платформы Java, которые помогают программистам создавать собственные решения для больших данных в соответствии с потребностями бизнеса. Также существует ряд IDE, которые можно применять для написания решений для больших данных на Java или Scala.

Все, что вам нужно, это Java

Имея 12 миллионов разработчиков по всему миру, Java остается языком №1, который выбирают программисты. Более того, как показывает своевременная поставка улучшений в Java 12, благодаря непрерывному продуманному планированию и вовлечению экосистемы, у платформы Java есть все шансы развиваться и расти в облаке.

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

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

В Qulix Systems мы заботимся о Java и всегда рады обсудить с вами современные технологии Java. Так что, если у вас есть какие-либо вопросы, не стесняйтесь обращаться к нам по адресу [email protected].

Первоначально опубликовано на https://www.qulix.com 29 марта 2019 г. Анастасией Бородинец.