— Привет, Амиго. Меня зовут профессор Ханс Нудлс. Я – глава Ученого совета «Galactic Rush», а также курирую проект по обучению тебя программированию на Java.
— День добрый, профессор Нудлс.
— Я хочу рассказать тебе, почему Java – это очень крутой язык программирования.
— Ты не раз еще услышишь, что неоспоримое преимущество Java над другими языками – это мультиплатформенность. Что же это такое и с чем его едят? Но начну немного издалека.
— Дело в том, что компьютер умеет исполнять только простейшие числовые команды. Для собак есть команды «Рядом», «Лапу» и другие, слыша которую собака что-то делает важное.
У компьютера роль таких команд выполняют числа: каждая команда закодирована некоторым числом – кодом (их еще называют машинным кодом).
— Писать программу в виде чисел очень сложно, поэтому люди придумали языки программирования и компиляторы. Такой язык с одной стороны понятен человеку, с другой – компилятору. Компилятор – это специальная программа, которая переводит текст программы, написанный на языке программирования, в набор машинных кодов.
— Обычно программист пишет программу на языке программирования, а затем запускает компилятор, который на основе написанных программистом файлов с кодом программы делает один файл с машинным кодом – окончательную (скомпилированную) программу.
- Программа на языке C++
-
Компилятор
- Программа состоящая из машинных кодов
— Получившаяся в итоге программа сразу может выполняться на компьютере. Минусом такого подхода есть то, что код полученной программы сильно зависит от процессора и операционной системы. Программа, скомпилированная под Windows, не будет работать на телефоне с Android.
— Т.е если я написал программу и скомпилировал ее для Android, то она не будет работать, если я попробую запустить ее под Windows?
— Да.
— Ясно
— Но у Java гораздо более инновационный подход.
- Программа на языке Java
-
Java‑компилятор
- Программа состоящая из специально независимых кодов (байт‑код)
-
Java VM
- Программа состоящая из машинных кодов
— Компилятор Java не компилирует все классы в одну программу из машинных кодов. Вместо этого он компилирует каждый класс по отдельности и не в машинные коды, а в специальный промежуточный код (байт-код). Компиляция в машинный код выполняется при запуске программы.
— А кто же компилирует программу в машинный код при ее запуске?
— Есть специальная программа под названием JVM (Java Virtual Machine) – Виртуальная Машина Java. Именно ее запускают первой, когда нужно запустить программу, состоящую из байт-кода. А уже JVM перед выполнением нужной программы компилирует ту в машинный код.
— Как интересно. А зачем понадобилось так делать?
— Это очень мощный ход. И одна из причин тотального доминирования Java.
— Благодаря такому подходу программы, написанные на Java, могут выполняться практически на любом устройстве – компьютеры, телефоны, банкоматы, тостеры, банковские карточки(!).
— Круто!
— Преимуществ такого подхода очень много. Именно поэтому все программы на Android тоже пишутся на Java. А благодаря развитию мобильного сектора, Java занимает доминирующее положение в следующих отраслях программирования:
1) Enterprise: тяжелые серверные приложения для банков, корпораций, инвестфондов и т.д.
2) Mobile: мобильная разработка (телефоны, планшеты), благодаря Android.
3) Web: лидирует PHP, но и Java держит солидный кусок рынка.
4) Big Data: распределенные вычисления в кластерах из тысяч серверов.
5) Smart Devices: программы для умного дома, электроники, холодильников с выходом в интернет.
— Java – это не просто язык, это целая экосистема: миллионы готовых модулей, которые ты можешь использовать в своей программе. Тысячи сообществ и форумов в интернете, где можно попросить помощи или совета.
— Чем больше ты будешь программировать на Java, тем больше будешь находить ответов на вопрос
— «Почему именно Java?». На этом на сегодня все.
— Спасибо, профессор. Очень интересная и вдохновляющая лекция.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ