Обучение
- AI. Работа с нейросетями
- Подготовительные курсы
-
Программирование
- Промышленная разработка программного обеспечения на Java
- Промышленная разработка ПО на ASP.NET
- Разработка игр на Unity
- Курсы создания сайтов и Front-end разработки
- Разработка мобильных приложений под iOS
- Разработка мобильных приложений на Android
- Разработка веб-приложений на PHP
- Разработка веб-приложений на Python
- Разработка на C++
- Разработка игр на С++
- Разработка на Node.js
- Программирование на Go (Golang)
- Реляционные базы данных и SQL
- Веб-разработка на Ruby on Rails
- 1С программирование
- Fullstack
- Наука о данных
- Тестирование ПО
- Центр профессионального развития
- IT Bootcamp
- Гуманитарные и экономические дисциплины в IT
- Управление проектами и продуктами
- Бизнес- и системный анализ
- Веб-дизайн и компьютерная графика
- Системное и сетевое администрирование
- Информационная безопасность
- Маркетинг и продажи
- Английский язык для IT
Обучение
- AI. Работа с нейросетями
- Нейросети: практическое применение
- Искусственный интеллект в управлении командами и процессами
- Программирование
- Промышленная разработка программного обеспечения на Java
- Промышленная разработка ПО на ASP.NET
- Разработка игр на Unity
- Курсы создания сайтов и Front-end разработки
- Разработка мобильных приложений под iOS
- Разработка мобильных приложений на Android
- Разработка веб-приложений на PHP
- Разработка веб-приложений на Python
- Разработка на C++
- Разработка игр на С++
- Разработка на Node.js
- Программирование на Go (Golang)
- Реляционные базы данных и SQL
- Веб-разработка на Ruby on Rails
- 1С программирование
- Тестирование ПО
- Ручное тестирование ПО
- Мобильное тестирование приложений
- Автоматизированное тестирование на Python
- Автоматизированное тестирование на Java
- Автоматизированное тестирование на JavaScript
- Автоматизированное тестирование на C#
- Тестирование безопасности
- Гуманитарные и экономические дисциплины в IT
- Technical writing
- IT HR
- PR в IT
- Управление финансами в IT
- Управление проектами и продуктами
- Project management
- Product management: Основы управления IT-продуктом
Почему Java живее всех живых
Говорят, что у 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 по-прежнему остаётся одним из самых востребованных и при этом развивающимся языком. Именно он оказывается удачным выбором для начинающих специалистов в большей части случаев.