Консультация

Консультируем с 9 до 18:30 Выходной: суббота и воскресенье


Сообщение об ошибке
Сообщение об ошибке

Почему Java живее всех живых

3 Апреля 2019

Говорят, что у Java нет будущего, и всем надо поскорее переходить на языки вроде Go. В «похоронных» заявлениях при этом встречаются два варианта. Одни уверены, что «Java умирает» вполне буквально: мол, прошло время популярности этого языка. Другие считают, что язык застрял в прошлом веке технологически. Так ли это на самом деле? Рассмотреть оба варианта предлагают на vc.ru. Публикуем некоторые тезисы из материала.

«Java никому не нужна»


Давайте посмотрим на суровые числа и рейтинги. Самый известный «хит-парад» – TIOBE Index. Да, к его методологии и результатам есть громадные вопросы, слепо верить ему нельзя, но и полностью игнорировать тоже невозможно. Открываем самые актуальные данные, за март 2019-го: Java находится на первом месте. Согласно TIOBE, это не просто не «умирающий язык», а самый популярный в мире.

Другой известный источник – ежегодный опрос разработчиков от Stack Overflow. Тут с методологией всё понятнее, выборка в 100 000+ респондентов – это очень хорошо, а популярность сайта среди самых разных разработчиков позволяет надеяться, что в этой выборке нет какого-то принципиального статистического перекоса.

Откроем результаты этого опроса за 2018-й. С первого взгляда позиции Java гораздо слабее, взято только пятое место. Но впечатление меняется, если посмотреть внимательнее на «опередивших»: это JavaScript, HTML, CSS и SQL. Во-первых, здесь в опросе фигурировали не только языки программирования, но и языки разметки, что меняет дело. А во-вторых, все опередившие варианты объединяет то, что зачастую разработчики пользуются ими в дополнение к основному языку. Если и дотнетчик, и джавист немного используют SQL, так что в опросе оба упомянули его, делает ли это SQL важнее C # и Java?

И здесь интересно посмотреть на третий источник, опрос от JetBrains. В этом случае вывод оказался таким: самый используемый язык в целом – JavaScript, но вот самый популярный конкретно в качестве основного – Java.


Общий вывод получается таким: насчёт «самого популярного» языка можно спорить, но «один из самых популярных» – безусловно. Почему вообще популярность языка имеет большое значение, и надо «писать на том же, на чём другие»? Конечно, строгого требования нет, кто-то пишет на Haskell и счастлив. Но есть несколько значимых факторов.

Например, размер рынка труда. Если в вашей компании решит уволиться ключевой разработчик, написавший проект на чём-то редко используемом, насколько легко будет найти ему замену? И обратная проблема: если вы и есть тот самый уволившийся разработчик, легко ли вам будет найти хорошую работу по вашему профилю? У Java рынок труда один из самых больших – куда больше, чем у того же Go.

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

«Java застряла в прошлом веке»


Теперь перейдём ко второму тезису: пока локомотив технологий несётся вперёд, тут язык из 90-х, зачем пользоваться им при наличии более современных?

Вообще говоря, для многих важнее не язык сам по себе, а его платформа и «всё, что вокруг»: решения от крупных вендоров и опенсорсные библиотеки от энтузиастов, поддержка в IDE и альтернативные JVM-языки. И если рассматривать всё это в целом, то развитие происходит активное: то в новой версии фреймворка JUnit всё переделывают, то Red Hat затевают новый сборщик мусора, то IntelliJ IDEA очередными нововведениями облегчает жизнь разработчика.

Но можно даже не рассматривать сторонние проекты, а посмотреть, что происходило непосредственно с Java в последнее десятилетие. В 2011-м Oracle приобрела Sun Microsystems, заполучив таким образом Java. И компания не забросила покупку на полку, а вложила ресурсы в развитие. Вышедшая в 2014-м версия Java 8 стала масштабным событием, благодаря лямбда-выражениям и другим нововведениям язык ощутимо менялся и модернизировался.

В 2017-м с появлением Java 9 добрался до релиза многолетний проект по модуляризации JDK. На Java-разработчиках это не сказалось так ощутимо, как лямбда-выражения, но это показательно в другом отношении. Как и в любом другом крупном проекте, существующем десятилетиями, внутренние зависимости в JDK со временем стали напоминать спагетти. И ради его «распиливания» эти зависимости пришлось распутывать в стройную систему – то есть, по сути, был проделан гигантский рефакторинг. С проектами, которые по-настоящему «увязли в прошлом», такого не происходит.

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

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