Рубрики
Без рубрики

Состояние Java и экосистемы JVM в 2017 году

Экосистема Java и JVM. Помеченный как java, jvm.

Вступление

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

Это была часть конференции, так что игнорируйте промо в конце, если хотите.

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

Последние обновления

1) Более быстрое перемещение Java

Этот пост в блоге привлек мое внимание – Марк Рейнхолд ускоряет продвижение java вперед . Марк – главный архитектор группы Java Platform Group в Oracle.

Некоторые ключевые выводы из сообщения в блоге.

  • Циклы выпуска JDK должны стать короче. Шесть месяцев для основных версий.
  • Долгосрочная поддержка основных выпусков. Первоначальный план рассчитан на три года.
  • Ежеквартальные выпуски обновлений.

Вы можете удивиться, что шесть месяцев – это все еще довольно медленно, но для такого масштабного языка/платформы это очень впечатляюще, если оно достигнуто.

Я призываю вас прочитать статью полностью.

2) Oracle планирует открыть исходный код его JDK

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

До недавнего времени Oracle объявляла, что они будут использовать открытый исходный код своего JDK – До недавнего времени Oracle объявляла, что они будут использовать открытый исходный код своего JDK –

Это большая новость, поскольку в сообществе всегда была путаница, какой из них выбрать. OpenJDK в основном предпочтительнее, но возникла такая загадка, что Oracle JDK обладает лучшими функциями и быстрее получает обновления. Все это изменится, и со временем Oracle JDK будет объединен с OpenJDK.

3) Java EE получает перезагрузку и передается в Фонд Eclipse Foundation

Java EE была в очень плохом состоянии, отчасти потому, что обновления функций были очень медленными, и это в значительной степени игнорировалось. Мало того, что это будет перезагрузка/изменение, он также переходит в Eclipse Foundation, который является гораздо лучшим и более открытым сообществом разработчиков.

4) Java 9 и новые улучшения

Язык Java сейчас находится в версии 9. Java 8 принесла много возможностей, в этой версии их еще больше.

Краткое описание функций – http://www.baeldung.com/new-java-9 Официальный документ от Oracle – https://docs.oracle.com/javase/9/whatsnew/

Теперь у Java есть ОТВЕТ, и было добавлено множество интересных функций функционального программирования, таких как замыкания и лямбда-выражения.

5) JVM – Улучшенные алгоритмы GC

Несмотря на то, что некоторые могут не согласиться с тем, что Java является хорошим выбором для языка, JVM, с другой стороны, является, пожалуй, самым стабильным кроссплатформенным временем выполнения на сегодняшний день. В Java 7 у нас не было большого выбора в отношении оптимизации и настройки GC. Java 8 принесла G1 GC среди прочих. Java 9 сделала G1GC по умолчанию, поскольку было обнаружено, что он намного лучше, чем параллельный GC для многих вариантов использования.

Кроме того, в ближайшее время появятся еще два алгоритма. Один из них – ZGC для многотерабайтных куч, а другой – Шенандоа для низкой паузы GC. Возможно, мы увидим их раньше, так как разработка JDK теперь будет продвигаться быстрее.

Всегда есть хороший алгоритм GC, который вы можете выбрать в зависимости от вашего варианта использования.

6) Более интересные проекты выстроились в очередь

В рамках OpenJDK есть много интересных проектов, но два, которые привлекли мое внимание, были Project valhalla и Project Amber . Они в совокупности вводят типы значений, вывод типов локальных переменных, улучшенные обобщения и т.д.,

Это может изменить то, как мы используем Java, и окажет большое влияние на другие языки в JVM.

7) Языки JVM

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

Scala, Kotlin, Clojure, Eta, Groovy – вот некоторые из известных языков.

Из них выделяются Scala и Kotlin. Некоторые могут даже подумать, что Kotlin может заменить Scala (они несопоставимы). Подробнее об этом ниже.

Предположения и мнения

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

О будущем Kotlin

Ребята из Jetbrains считают Kotlin замечательным языком. Он имеет официальную поддержку Android в мобильной разработке, Spring framework имеет поддержку Kotlin. Но язык по своей сути больше похож на синтаксический сахар, чем на Java. В настоящее время он намного лучше, чем Java, благодаря своим расширенным функциям, но, учитывая, что язык Java сам по себе предлагает множество современных синтаксисов и функций, он может наверстать упущенное. И за пределами определенного пункта различия могут быть даже незначительными. Это, а также гораздо меньше разработчиков Kotlin по сравнению с Java.

Это прямо противоположно тому, что происходит в отрасли прямо сейчас, т.е. Kotlin набирает все большую популярность, но опять же, это мое мнение.

О выборе языка

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

  • Java, если вы занимаетесь объектно-ориентированным программированием.
  • Scala, если вы предпочитаете функциональное программирование (FP) + ООП.
  • И др., и если вы предпочитаете чисто функциональный и/или энтузиаст Haskell.
  • Clojure, если вам нравятся динамически типизированные языки FP.
  • Котлин если вы увлекаетесь Android и вам нужно что-то лучшее, чем Java, но не то, что требует огромной кривой обучения.(Это может измениться, как я предлагал выше)
  • Groovy в настоящее время используется в качестве языка сценариев.

Заключительные замечания

Это все, что у меня есть для обновлений. Я никогда не был так заинтересован и оптимистичен в отношении Java и JVM, как сейчас. Нет лучшего времени, чтобы стать разработчиком на платформе JVM.

P.S: Пожалуйста, укажите на любые опечатки или если что-то можно улучшить.

Спасибо за чтение.

Оригинал: “https://dev.to/bmadusudanan/the-state-of-java-and-the-jvm-ecosystem-in-2017-bna”