Найти тему
IT notes

Краткий обзор языка программирования Java

Что из себя представляет Java на текущий момент? Это бесспорно классика, классика, наверное, с самым многочисленным на текущий момент комьюнити. Миллионы библиотек, фреймворков и приложений написанных на Java. По разным рейтингам однозначно этот язык входит в топ 5, часто по большинству номинаций выходит на первое место. Чем же он так прекрасен? Моё мнение, что код, написанный на Java склонен быть максимально структурированным и понятным. Он строго типизирован, структурирован, но, в то же время, достаточно гибок. Да, часто его называют слишком многословным, но в этом тоже кроется часть его достоинства.

Что обычно пишут на Java? В целом, язык Java достаточно универсальный, т.е. его можно назвать ЯП общего назначения. Но я бы выделил два основных направления, где он по настоящему широко используется. Прежде всего, это суровый enterprise, т.е. огромное количество банковского ПО, портальных решений, ERP систем и тому подобных масштабных высоконагруженных приложений разрабатывается именно на Java. Отсюда и один из самых высоких уровней дохода, отсюда и дикая востребованность для Java программистов. Второе направление — это разработка для Android. Да, да весь софт для зоопарка Android устройств от телефонов и планшетов, до умных телевизоров и часов разрабатывается на Java (ну, или, забегая вперёд, на Kotlin). Сразу оговорюсь, что существуют и мультиплатформенные подходы к разработке для Android и iOS, но об этом чуть позже...

Кроме того, на Java разработано (несколько ярких примеров использования Java в других направлениях):

  • Hadoop (целая экосистема для работы с большими данными)
  • Линейка IDE от JetBrains (пример мультиплатформенных десктоп приложений)
  • Minecraft (пример написания компьютерных десктоп игр на Java)

В итоге, язык Java был, остаётся и будет в топе ещё долгие годы. Даже, если вдруг завтра его потеснит какой-нибудь Kotlin, то в этом случае Java не утратит своей популярности ещё долгие годы. К тому же Java активно развивается и, по моим ощущениям, даже с некоторым ускорением, ибо этого требует всевозрастающая конкуренция.

Недостатки. Да они есть, и их немало. Как, в прочем, и у всех ЯП. Не изобрели пока универсальную серебренную пулю от всего и для всего. У Java есть лозунг “написано однажды — работает везде”. Это крутая фича, которая достигается за счёт специальной "прослойки" под названием Java Virtual Machine. JVM представляет собой некую виртуальную среду-"прослойку", в которую погружается ваше скомпилированное приложение, и уже эта среда транслирует команды приложения в команды понятные конкретной платформе, например операционной системе Windows, Linux, MacOS или Android.

Обратная сторона медали — существенные дополнительные накладные расходы на использование системных ресурсов, таких как процессорные мощности и, особенно, оперативная память. Поэтому даже элементарная программа сразу же после старта может смело оттяпать несколько гигов оперативки, а в процессе своей работы будет только наращивать аппетиты. Также возможны регулярные трудноконтролируемые подтормаживания из-за работы сборщика мусора. Кроме того, вам придётся поставить достаточно объёмный пакет JVM под вашу платформу, иначе программы написанные на Java просто не будут запускаться. Но не надо сильно пугаться — всемирная практика показывает, что Java очень хорошо подходит для разработки крупных высоконагруженных и стабильных приложений Enterprise уровня. Главное, как и везде, иметь руки правильно растущие, ну, и голову конечно же тоже.

Для чего Java точно не подходит? Java точно не подходит для низкоуровневого и системного программирования, для этого лучше взглянуть на C/C++ и с некоторых пор на Rust. Java не подходит для написание web интерфейсов, тут главенствуют бессменные JavaScript вкупе с HTML и CSS. Для работы с данными Java, в целом, подходит, но на практике для этого куда чаще используют Scala (с Hadoop экосистемой) и куда ещё чаще используют языки Python и R.

Язык Java я однозначно рекомендую для изучения, даже в роли первого языка программирования. Это классика в самом хорошем смысле этого слова. К тому же, на него часто ровняются или просто похожи другие ЯП, например, C#

Смотрите мои обзоры других языков программирования.