Частый вопрос среди тех, кто только собирается изучать программирование и вот-вот сделает выбор в пользу Java — где и как можно использовать этот язык? Общая фраза “где угодно” вряд ли удовлетворит интерес. Поэтому предлагаем посмотреть на рейтинг Java среди других языков программирования, его преимущества и основные сферы применения.

Место Java среди других ЯП

Сначала немного истории. Java появилась 24 лет назад как ответ на потребность в платформенно независимом языке. Иными словами, языке для создания ПО, которое встраивается в любые девайсы: стационарные ПК, бытовые приборы, а впоследствии и мобильные устройства. Это, а также постоянные улучшения в частых релизах (актуальная версия Java — 12) позволили ей быстро распространиться и “захватить мир”. Сегодня Java доминирует в разработке корпоративных приложений, веб-сайтов для больших проектов в e-commerce, мобильных приложений. В мире — более 10 миллионов Java-разработчиков и более 3 миллиардов устройств, на которых используется Java. Этот язык — бессменный лидер среди десятков других. Согласно рейтингу TIOBE, в котором ЯП расположены по количеству поисковых запросах на порталах Wikipedia, Google, YouTube и других, Java занимает первое место с долей 16% (результаты мая), опережая на несколько процентов язык С и вдвое — C++ и Python.

Ключевые преимущества Java

Главный плюс Java — принцип “написано однажды — работает везде”. Это значит, что ПО, написанное на одной платформе, будет запускаться и на других устройствах. В принципе, Java буквально способна “петь из каждого утюга”: она используется для создания приложений для мобильных устройств, удаленных процессоров, беспроводных модулей, датчиков, да и в целом — практически любых электроустройств. Адаптивность — одна из причин, по которой Twitter перешел на JVM. Java — в числе самых популярных языков на GitHub по количеству коммитов. Язык востребован благодаря огромному выбору библиотек под любые задачи. Ну а многомиллионное сообщество постоянно наращивает их количество. Таким образом, Java постоянно развивается и создателями языка, и его “пользователями”. Благодаря разнообразию библиотек, этот ЯП — гибкий, поэтому он прекрасно подходит для реализации новых функций. И для больших корпораций, и для компаний меньшего масштаба эти ценно. Так, гибкость языка помогла компании Spotify построить набор модулей для разработки микросервисов Apollo. Перечислить все бренды, которые используют Java, невозможно. Так что можно ограничиться несколькими топовыми: Java активно задействуется для построения серверной части. В Amazon практически вся “внутренняя кухня” работает на Java; Oracle использовала Java еще до поглощения Sun Microsystems; даже официальный сайт Пентагона использует Java. Большую роль этот ЯП играет и в поддержке сервиса Netflix. Их инфраструктура работает на Linux, а кодирование видео — на машинах Windows. Благодаря тому, что в Java есть множество инструментов с открытым исходным кодом, мониторинг и обновление данных в разных средах становится гораздо проще. Международная финтех компания LMAX использует Java для того, чтобы операции на фондовой бирже проводились с минимальными задержками. В целом, во множестве крупнейших компаний бекэнд-часть написана Java для решения вопросов, связанных с безопасностью, переносимостью и производительностью. Звучит неплохо, но можно ли делать с Java что-то по-настоящему крутое? Еще как. Вот лишь 10 из сотен интересных возможностей программирования на Java :)

1. Android-разработки

То, что в свое время Google выбрал Java для разработки Android, безусловно подогрело интерес к этому языку среди разработчиков. Сегодня это самая популярная операционная система, и практически все мобильные приложения для нее написаны на Java.
Интересует мобильная разработка? Учи Java!

2. Облачные проекты

Миграция в облако — необратимый процесс на глобальном рынке. Компании переносят на облачные платформы все — от хранилищ данных и отдельно взятых сервисов до IT-инфраструктуры целиком. А самым популярным языком программирования для корпоративных разработок в облаке стал Java. В прошлом году независимая организация Cloud Foundry Foundation (CFF) провела опрос среди 600 ИТ-специалистов и выяснила, что для разработки корпоративных приложений в облаке Java используют 58% респондентов. Java применяют в создании серверов приложений в облаке, сетевого программного интерфейса и т.д. Java нужна не столько для разработки новых приложений в облаке, сколько для гарантии, что приложение будет одинаково успешно работать в современном “платформенном миксе” из облака, мобильных и десктопных устройств.

3. Виртуальная и дополненная реальность

Еще одна привязка Java к облаку — AR/VR разработки. Многие мобильные приложения (и под Android в том числе) с технологией дополненной / виртуальной реальности расположены в облаке. И их гораздо больше, чем кажется: travel- и игровые приложения, соцсети, приложения в сферах моды и красоты, образования и т.д.

4. Программный инструментарий

Именно Java использовалась при создании популярных средств разработки ПО: IntelliJ Idea, Eclipse, Netbeans. А также — бизнес-объектов SAP, системы отслеживания ошибок Jira (которая также используется как система управления проектами) и многого другого.

5. Работа с Big Data

Есть мнение, что для работы с большими данными больше подходят Python и R. Но аналитика данных — это отдельная планета. Для разных задач используются разные языки и Java в их числе. В частности, для внедрения Hadoop (файловая система и набор инструментов для обработки данных) и Kafka (распределенный программный брокер сообщений для показа потоков данных в режиме реального времени, сбора больших данных и их анализа). В Java есть ряд библиотек и фреймворков, заточенных под работу с Big Data. Например, Weka, Rapid Miner, JSAT, Java Machine Learning Library — Java-ML, Java Data Mining Package — JDMP и другие.

6. Беспилотные автомобили

Чтобы самоуправляемые машины были безопасными, нужно проработать до малейших нюансов решение “компьютером” задач, которые для человека кажутся элементарными. Например, определение типа объекта, расстояния, состояния (движется — стоит на месте), распознавание лиц. И здесь программирование на Java играет важную роль. Есть достаточно много туториалов, которые помогут вникнуть в суть вопроса.

7. “Робомедицина”

Чат-боты в телемедицине (как и в других сферах) — в общем-то не новость. А вот роботы-доктора — наше скорое будущее. Благодаря встроенным технологиям Интернета вещей, врачи не заходя к пациенту смогут выполнять простейшие манипуляции: измерять температуру, слушать сердечный ритм, измерять давление. А когда-нибудь на помощь обычным врачам придут роботы. Пару лет назад китайский робот Xiaoyi, оснащенный искусственным интеллектом, успешно справился с экзаменом для получения медицинской лицензии, набрав 465 из 600 баллов. Исследователи из университетов Пекина и Циньхуа потратили год на то, чтобы “заправить” в базу знаний робота содержимое десятков справочников и учебников по медицине. И, как видим, успешно! Да и в любой другой сфере робототехника не менее востребована. Например, в искусстве: программист Дэн Ройер создал арт-робота Makelangelo, который рисует постеры.

8. Разработка игр

Множество популярных игр написаны на Java, и многие из них хорошо знакомы каждому. Примерно с начала двухтысячных началась эпоха расцвета Java-игр, тогда же появились RuneScape, Gangstar, Zuma и многие другие. “Звездными” проектами на Java остаются видеоигра Assassin’s Creed и не теряющий актуальность Minecraft. Последний еще и крепко “подсаживает” на Java: чтобы писать плагины для Minecraft, нужно знать джаву, а потом уже не остается ничего другого, кроме как создавать и другие программы на нем. Почему Java —привлекательный язык для разработки игр? Во-первых, потому что пакет графических программ Open JavaFX (OpenJFX) облегчает работу над созданием визуала, который так важен для геймеров. Во-вторых, есть специализированные библиотеки для гейм-разработок, например, Lightweight Java Game Library (LWJGL). В-третьих, в игры на Java можно пошпилить на любом устройстве. Если вас интересует этот ЯП для разработки игр, можете почитать специализированные форумы, а еще лучше — узнать, каково быть гейм-разработчиков на практике. Начните с простейшего — выполните несколько проектов-задач в разделе “Игры” на JavaRush.

9. Спецэффекты в киноиндустрии

С Java можно пойти гораздо дальше в создании визуала. Крупнейшие компании по киношным спецэффектам используют Java для разработки программно реализованных чудес. Например, Industrial Light and Magic, которая участвовала в создании визуальных эффектов для “Мстителей”, “Капитана Марвел”, “Тора”, “Трансформеров”, “Звездных войн” и других блокбастеров с миллионами фанатов по всему миру.

10. Космические разработки

NASA использует Java для ряда крутых приложений. Например, World Wind — набора для разработки ПО (SDK — software development kit). Он позволяет рассмотреть крупным планом любой участок Земли, задействуя при этом искусственный спутник Landsat и данные Радиолокационной топографической миссии шаттла (SRTM). 3D-визуализация чем-то напоминает Google Earth, только все полностью написано на Java. Спектр написанных в NASA программ на Java широк: от инфраструктурных приложений до сервисов поддержки пользователей и аналитических инструментов. Как подчеркивали “местные” разработчики, благодаря Java можно создавать мультиплатформенные, производительные, простые для понимания решения. При этом — не затратные в разрезе цикла разработки ПО.

И это только сливки на торте

Есть десятки и сотни проектов, в которых можно применить программирование на Java. Популярность языка растет, востребованность разработчиков — тоже. А над каким проектом мечтали бы поработать вы?
Что почитать еще:

Почему нужно учить именно Java?

Уровни языков программирования

Зачем становиться программистом