Что такое JVM и почему стоит разрабатывать приложения на платформе Java

Почему стоит разрабатывать приложения на платформе Java

История Java началась в 1995 году с появлением первой версии языка. "Написано однажды, работает везде" ("Write Once, Run Anywhere") гласил слоган нового языка. Это означало, что Java не просто ещё один язык программирования, а целая платформа, на которой можно было строить приложения для чего угодно, начиная от мощных серверов в дата-центрах до кофеварки, которая стоит у вас на кухне.

Как это работает?

Программист пишет программу на языке программирования Java, но компьютеры Java не понимают. Они говорят на своём собственном языке - машинных кодах. Для того чтобы перевести программу с языка понятного программисту, будь то Java, Си, Go или любой другой язык, на язык машинных кодов используются специальные программы - компиляторы. И тут возникает небольшая проблема. Железо бывает разное и разные компьютеры говорят на разных диалектах машинных кодов, поэтому запустить скомпилированную программу на любом компьютере не получится. Придётся переводить программу на каждый диалект отдельно.

Компилятор Java переводит программу не в машинные коды, а в промежуточный язык, называемый байт-код. И вот этот самый байт-код и является секретным ингредиентом. Он запускается не на самом железе, а в JVM (Java Virtual Machine). JVM - это специальная программа, которая служит переводчиком с байт-кода на язык машинных кодов. Установите JVM в телефон - вот вам мобильное приложение. Хотите веб приложение? Нет проблем, устанавливаем JVM на сервер и запускаем свой сайт с фотографиями домашних питомцев.

С момента появления платформы Java прошло уже более 20 лет и знаете что? Она до сих пор процветает и развивается. Язык Java годами прочно занимает первое место в рейтинге популярности языков программирования TIOBE, лишь иногда уступая первенство древнему титану мира программирования - языку Си.

Чем хороша разработка для JVM?

Независимость от платформы

Как упомянуто выше, программу написанную на Java можно запускать хоть на Windows, хоть на Linux, хоть на холодильнике. Главное, чтобы на устройстве была установлена JVM.

Безопасность

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

Развитая экосистема и большое сообщество разработчиков

За 20 лет Java обросла библиотеками и фреймворками на любой вкус. Программисту не нужно изобретать велосипед, достаточно взять набор готовых решений и собрать из них необходимый функционал. Для владельцев бизнеса это означает экономию времени и денег на разработку приложений, а также гарантирует, что недостатка в разработчиках не будет.

Современные многофункциональные IDE

Хотя этот пункт больше важен непосредственно для разработчиков, он оказывает влияние на их продуктивность. А это опять же ведёт к снижению времени на разработку. Качественная, хорошо настроенная IDE является продолжением рук разработчика и позволяет не отвлекаться от кодинга на посторонние вещи.

IntelliJ Idea, Eclipse и NetBeans - три самых популярных на сегодняшний день IDE для разработки на Java. Они имеют целую кучу инструментов для разработчика, умеют интегрироваться с библиотеками, фреймворками, системами сборки и кучу всего остального, разве что кофе варить пока не научились. IntelliJ Idea, которую лично я для себя выбрал, продолжает удивлять неожиданными полезными фичами до сих пор, даже спустя 4 года работы с ней.

Производительность

Java существует уже более 20 лет. Всё это время она развивалась, улучшалась и оптимизировалась. Современная Java не только не уступает в производительности другим современным языкам программирования таким как Ruby или JavaScript, а даже превосходит их по скорости. Также Java прекрасно поддерживает многопроцессорные системы и способна использовать их ресурсы по максимуму. Это, кстати, касается не только веб-приложений, ведь смартфоны сегодня имеют на борту четырёх, шести и даже восьмиядерные процессоры.

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

Не только Java

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

Всё дело в том, что Java долгое время был чисто объектно ориентированным языком программирования. К сожалению, парадигма чистого ООП себя изжила. Сложность разрабатываемых систем сильно возросла, и ООП само по себе уже не способно справиться с такой сложностью.

К счастью, на помощь пришла парадигма функционального программирования, разработанная ещё в середине прошлого века. Однако, поскольку Java не спешила перенимать идеи функционального программирования, стали появляться другие языки, которые использовали ФП в той или иной мере для борьбы со сложностью систем и придания языку более выразительного синтаксиса.

Среди таких языков функциональный до мозга костей Clojure, динамический Groovy, прагматичные Kotlin и Ceylon, реактивная и масштабируемая Scala, а также многочисленные адаптации под JVM других языков программирования таких как Ruby, JavaScript, Pascal, PHP, Python и многих других. Каждый может выбрать себе язык по вкусу для быстрого и эффективного решения задач.

Истории успеха

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

STAV Online - онлайн платформа для обучения учеников датских школ национальному языку. Обучение проводится по методике игрофикации: вместо книг - игровые миры, а бонусные очки будут наградой прилежному ученику. Преподаватель же может отслеживать успеваемость как класса в целом, так и отдельных учеников. Поскольку ученики и учителя работают с приложением в основном с планшетов, приложение также адаптировано под мобильные устройства. На данный момент количество пользователей приложения составляет более 10 тысяч учеников и свыше тысячи учителей.

Никто не любит ошибки в приложениях. Поиском недочётов и ошибок занимаются тестировщики. Найдя ошибку, тестировщик должен описать её симптомы и шаги для воспроизведения ошибки. Можно, конечно, делать это на бумаге, но мы-то с вами живём в век цифровых технологий. Поэтому мы разработали для наших тестировщиков приложение QA Assistant, которое позволяет в удобном интерфейсе описывать ошибки, сценарии тестирования приложения, составлять отчёты и многое другое. Подробнее о проекте можно почитать в статье посвящённой данному проекту.

Все любят играть в игры и наши разработчики не исключение. Но поскольку мы не только игроки, но и программисты, мы также делаем игры. Вот, например, ремейк видеоигровой классики - Snake, который мы разрабатывали для одного из наших клиентов. Игра доступна в Google Play. А вот клон головоломки Plumber в несколько необычном исполнении. Вместо труб - провода, вместо кранов - лампочки. Игра доступна в Google Play и App Store.

Итоги

JVM - это современная, развитая, надёжная и стабильная платформа, которая позволяет разрабатывать приложения любой сложности и назначения. Разработка под JVM экономит время и деньги владельца бизнеса, а также приносит удовольствие разработчику. Довольный разработчик - эффективный разработчик. Приложения, написанные под JVM, безопасны, производительны и надёжны, а также легко переносятся на различные аппаратные платформы.

Стоит ли начинать разработку своего продукта на Java? Однозначно да! Хотя бы попробуйте, вам понравится.

Связаться