Чем отличаются java и javascript
Java против JavaScript
В этой статье мы рассмотрим основные черты этих языков, показав, что общее название — не более, чем начальная задумка разработчиков.
Язык Java, в процессе разработки носивший названия «Oak» и «Green», официально появился на свет в 1995 году. Он заимствовал многое от C/C++, однако продвигал новые концепции, включавшие в себя легкое и безопасное программирование. Поэтому изначально именно Java воспринимался как наследник этих популярнейших языков.
Основной принцип работы кода на Java — возможность программисту писать код один раз, чтобы он мог работать где угодно. Вместо компиляции различных файлов под каждую платформу, здесь создаётся JAR-файл. И если система поддерживает Java, то файл исполняется.
Для реализации такой задумки используется JVM, или Виртуальная машина Java. Это ничто иное, как набор инструкций, определяющих компиляцию в зависимости от платформы и дальнейшее исполнение кода. Такой принцип носит название just-in-time.
Хотите разобраться в Java? Рекомендуем начать с бесплатного онлайн-интенсива по Java для чайников.
Основные области применения Java:
JavaScript
JavaScript был разработан на фоне огромных ограничений HTML. В Netscape Communications предвидели скорую потребность в динамичном функциональном вебе, поэтому всего за 10 дней они создали язык под названием LiveScript в том же 1995 году.
Позднее разработчикам пришла мысль дополнить функциональность с использованием Java. Именно так появилось окончательное название и схожий синтаксис. Правда на этом любые сходства заканчиваются. По понятным причинам, к тому времени Java в вебе еще не запускался, в то время как JavaScript быстро завоевал популярность, став вместе с HTML и CSS главными столпами современного интернета.
В отличии от Java, код которого компилируется, код JavaScript интерпретируется. То есть когда вы посещаете веб-страницу, ваш браузер получает код, написанный на JavaScript, и сразу же исполняет его. Для этого используются специальные движки, каждый браузер при этом использует свой: V8 — Chrome, SpiderMonkey — Firefox, Chakra — Edge и так далее.
Однако сегодня JavaScript больше не является исключительно браузерным инструментом. За более, чем два десятка лет с момента своего появления, JavaScript утвердился одного из самых гибких языков программирования, который применяется и в других областях:
Так что выбрать?
Учитывая современный уровень развития обоих языков, фактически выбор сводится к заданным требованиям производительности, функциональности и скорости исполнения.
Java чуть более сложный язык с большим количеством ограничений. Java-приложения менее склонны к ошибкам и в целом более функциональны, чем те, что созданы с использованием JavaScript. Но это имеет и свою цену, главная из которых — время и сложность разработки. JavaScript-приложения потребуют от вас меньше усилий, но исполняться они будут дольше, ошибок при отладке выскочит больше, да и сложный код вам писать вряд ли захочется.
Поэтому для веба лучше использовать JavaScript, а разработку сложного комплексного ПО лучше оставить Java. Что касается создания десктопных и мобильных приложений, то здесь дело вкуса. Я бы рекомендовал использовать Java, так как это обеспечит чистоту кода м меньшее количество ошибок. С другой стороны, JavaScript тоже для этого подойдет.
Если вы взглянете на статистику GitHub, то увидите, что JavaScript и Java — два гегемона современного мира программирования, опережая C/C++, Python, PHP и Ruby. Несмотря на то, что их имена схожи, что JavaScript, судя по названию, более легковесная, понятная, удобная версия Java, между ними всё же почти нет ничего общего.
В этой статье мы рассмотрим основные черты этих языков, показав, что общее название — не более, чем начальная задумка разработчиков.
Язык Java, в процессе разработки носивший названия «Oak» и «Green», официально появился на свет в 1995 году. Он заимствовал многое от C/C++, однако продвигал новые концепции, включавшие в себя легкое и безопасное программирование. Поэтому изначально именно Java воспринимался как наследник этих популярнейших языков.
Основной принцип работы кода на Java — возможность программисту писать код один раз, чтобы он мог работать где угодно. Вместо компиляции различных файлов под каждую платформу, здесь создаётся JAR-файл. И если система поддерживает Java, то файл исполняется.
Для реализации такой задумки используется JVM, или Виртуальная машина Java. Это ничто иное, как набор инструкций, определяющих компиляцию в зависимости от платформы и дальнейшее исполнение кода. Такой принцип носит название just-in-time.
Хотите разобраться в Java? Рекомендуем начать с бесплатного онлайн-интенсива по Java для чайников.
Основные области применения Java:
JavaScript
JavaScript был разработан на фоне огромных ограничений HTML. В Netscape Communications предвидели скорую потребность в динамичном функциональном вебе, поэтому всего за 10 дней они создали язык под названием LiveScript в том же 1995 году.
Позднее разработчикам пришла мысль дополнить функциональность с использованием Java. Именно так появилось окончательное название и схожий синтаксис. Правда на этом любые сходства заканчиваются. По понятным причинам, к тому времени Java в вебе еще не запускался, в то время как JavaScript быстро завоевал популярность, став вместе с HTML и CSS главными столпами современного интернета.
В отличии от Java, код которого компилируется, код JavaScript интерпретируется. То есть когда вы посещаете веб-страницу, ваш браузер получает код, написанный на JavaScript, и сразу же исполняет его. Для этого используются специальные движки, каждый браузер при этом использует свой: V8 — Chrome, SpiderMonkey — Firefox, Chakra — Edge и так далее.
Однако сегодня JavaScript больше не является исключительно браузерным инструментом. За более, чем два десятка лет с момента своего появления, JavaScript утвердился одного из самых гибких языков программирования, который применяется и в других областях:
Так что выбрать?
Учитывая современный уровень развития обоих языков, фактически выбор сводится к заданным требованиям производительности, функциональности и скорости исполнения.
Java чуть более сложный язык с большим количеством ограничений. Java-приложения менее склонны к ошибкам и в целом более функциональны, чем те, что созданы с использованием JavaScript. Но это имеет и свою цену, главная из которых — время и сложность разработки. JavaScript-приложения потребуют от вас меньше усилий, но исполняться они будут дольше, ошибок при отладке выскочит больше, да и сложный код вам писать вряд ли захочется.
Поэтому для веба лучше использовать JavaScript, а разработку сложного комплексного ПО лучше оставить Java. Что касается создания десктопных и мобильных приложений, то здесь дело вкуса. Я бы рекомендовал использовать Java, так как это обеспечит чистоту кода м меньшее количество ошибок. С другой стороны, JavaScript тоже для этого подойдет.
Чем отличается Java от JavaScript?
Короткий ответ: Java и JavaScript — это разные языки, которые совершенно не похожи друг на друга, поскольку используются для разных целей. Основная причина появления названия JavaScript — популярность языка Java, который в 1990-х был на пике своего развития.
Однако схожесть названий не меняет того факта, что это два разных языка программирования, которые полезны по-своему. Один не обязательно лучше другого: программисты используют как Java, так и JavaScript для решения разных задач.
Что такое Java?
Java — это язык программирования общего назначения, разработанный со слоганом «напиши один раз, работай где угодно». Приложения Java компилируются в байт-код, который может работать на реализациях виртуальной машины Java (JVM). JVM помогает преодолеть разрыв между исходным кодом и понятными компьютеру единицами и нулями. Любая машина, на которой установлена JVM, может запускать код Java. В веб-разработке Java играет наиболее заметную роль в качестве серверного языка и языка программирования для приложений на платформе Android.
Что такое JavaScript?
Схожие стороны Java и JavaScript
Какими бы разными ни были эти два языка, у них есть некоторые общие черты:
Основные отличия Java vs JavaScript
Java или JavaScript: как выбрать
Как и в случае со всеми языками, выбор основывается на том, что вы пытаетесь создать и какими ресурсами располагаете. JavaScript является веб-технологией, тогда как Java — это язык общего назначения, который может создавать, по сути, что угодно.
Вам следует подумать о Java, если ваш проект включает в себя:
Вам следует подумать о JavaScript, если ваш проект включает в себя:
Имейте в виду, что ни один из списков не является обширным, они предназначены только в качестве отправной точки, чтобы помочь понять, какой язык лучше использовать для ваших нужд.
Выводы
Java и JavaScript — это абсолютно разные языки. Многие разработчики считают, что изучение этих языков вплотную друг к другу является очень мудрым шагом для начинающего программиста. И перейти из одного языка в другой — сложная, но посильная задача.
В чем разница между Java и JavaScript?
Russian (Pусский) translation by Sergey Zhuk (you can also view the original English article)
Для тех, кто только начинает работу с программированием, будь то на стороне сервера или на стороне клиента, неизбежно вы столкнетесь с языками программирования Java и JavaScript.
Если у вас есть какой-либо опыт программирования в одном или другом, вы знаете, что они не совпадают, и вы, вероятно, знаете разницу между ними. Но если вы только начинаете, это может сбивать с толку по ряду причин, во-первых, от того, как названы языки.
Несмотря на то, что в своем имени они разделяют имя «Java», у них очень мало атрибутов и характеристик. В этой статье мы рассмотрим некоторые ключевые различия в языках, изучив некоторые высокоуровневые атрибуты, предлагаемые каждым языком.
В конечном счете, мы стремимся помочь тем из вас, кто новичок в программировании, и не уверены, на каком языке вы хотите учиться (или узнаете первым!). В этой статье мы рассмотрим некоторые ключевые различия, которые существуют на языках, и где каждый применим попытку вооружить вас информацией, необходимой, чтобы помочь вам сделать следующий шаг в вашей карьере.
Java и JavaScript
Возможно, лучший момент, который следует сделать, когда начинаете отличать эти два языка, заключается в том, чтобы провести сравнение следующим образом:
Однако, кроме этого, очень мало общего. Всюду по остальной части этой статьи мы рассмотрим каждый язык на очень высоком уровне, чтобы дать вам представление о том, что предлагает каждый язык и особенности каждого из них.
После того, как вы это сделаете, вы сможете увидеть разницу в двух языках и, хотя они названы одинаково и имеют похожий синтаксис, это единственное, что у них есть общего.
Что такое Java?
Мы рассмотрели Java в других руководствах на этом сайте и будем продолжать делать это, поскольку язык продолжает расти с течением времени.
Java был задуман под идеей «написать один раз, запустить где угодно», а это означает, что вы можете написать программу на компьютере, а затем развернуть ее на любом устройстве, которое имеет среду выполнения Java.
Но подождите: что такое среда выполнения Java?
Звучит не так волнующе, не правда ли? Это нормально! Как разработчики, мы не несем ответственности за написание байт-кода. Вместо этого компилятор Java компилирует наш код в байт-код.
Этот байт-код выполняется поверх среды выполнения, которая выполняется в контексте другой операционной системы. Эта операционная система может работать на сотовом телефоне, может работать на другом компьютере, может работать в Windows, OS X, Linux или любой другой системе, на которой она совместима. Вы можете прочитать все об этом на этой странице.
Звучит неплохо, да? Дело в том, что здесь есть ряд проблем. Кажется, это намного проще, чем это, и это то, над чем работают более продвинутые Java-разработчики. Это выходит за рамки данной статьи. Вместо этого мы сосредоточимся на атрибутах языка, чтобы мы могли сравнить и сопоставить его с JavaScript.
Но сначала давайте рассмотрим некоторые из возможностей, с которыми мы можем работать на Java. Важно отметить, что мы работаем на гораздо более высоком уровне. Например, мы можем работать со следующими конструкторами:
Если вы никогда не писали код раньше, некоторые из них могут звучать как жаргон. Понятно! У нас есть ресурсы, которые помогут вам научить вас тому, что вам нужно знать:
Но прежде чем перескакивать слишком далеко, чтобы принять решение о том, что вы хотите узнать, давайте посмотрим на JavaScript.
Что такое JavaScript?
Я рассмотрел JavaScript более подробно в предыдущей статье, которую вы можете прочитать здесь, но я расскажу о главных моментах, о которых упоминалось выше, в этой статье. Для более глубокого погружения обратите внимание на то, что указано выше.
JavaScript, по своей сути, представляет собой динамический язык, который является нетипизированным и его интерпретируют. Это означает:
Если вас что-то смущает, не волнуйтесь! Мы все были там:
Это много. Я знаю. Но самое приятное, что у нас есть много ресурсов, чтобы ускорить работу с JavaScript. И как только вы изучите нюансы языка, становится легче и легче работать в его пределах.
Помните, что все «я не уверен, что я делаю» естественно, и это часть обучения. Если вы никогда не видели программирования, связанного с JavaScript, я настоятельно рекомендую проверить несколько следующих курсов:
После того, как вы лучше освоите язык, важно также использовать надлежащие инструменты для разработки ваших приложений. Это включает в себя использование таких инструментов, как отладчик (который включает большинство современных браузеров). Однако это выходит за рамки данной статьи.
Примечание об объектной ориентации
Еще одно важное отличие состоит в том, что JavaScript и Java рассматриваются как объектно-ориентированные языки, но по разным причинам.
Java позволяет нам создавать экземпляры объектов из классов, которые мы создаем. Напротив, все в JavaScript является объектом. Это означает, что классов нет. И поскольку все является объектом, все имеет методы и свойства, которые мы можем использовать.
В Java, когда вы создаете экземпляр класса, у вас есть доступ к методам и свойствам, которые вы выставляете через определение класса. Если у вас есть общедоступные свойства, публичные функции и т. д., разработчик может их использовать.
В JavaScript при создании переменной, объекта или даже функции у вас есть возможность вызывать функции, которые существуют не только на этом объекте, но и на объектах, из которых данный объект получает свои свойства. Это связано с прототипическим характером наследования JavaScript, о котором вы можете прочитать в этой статье.
Какой из них выбрать?
Как вы можете видеть из вышеприведенного содержания, оба языка, хотя оба они вдохновлены C в отношении их синтаксиса, сильно отличаются друг от друга. Каждая из них также служит другой цели.
Хотя вы можете писать JavaScript на сервере с такими технологиями, как Node.js, они не являются теми же типами приложений, которые созданы на Java. Кроме того, хотя вы можете писать серверные приложения на Java, они не являются теми же типами приложений, которые вы обычно пишете с помощью JavaScript.
Заключение
По-видимому, каждый из этих языков предлагает свои уникальные наборы преимуществ и недостатков. Честно говоря, я думаю, что многое из того, что побуждает нас выбирать один язык над другим, связано с тем, что мы хотим сделать с точки зрения построения решений для себя и других.
Для тех, кто заинтересован, стоит отметить, что JavaScript стал одним из де-факто языков работы в Интернете. Это не без кривых обучения, а также множество фреймворков и библиотек, которые заставляют вас напряженно трудиться. Если вы ищете дополнительные ресурсы для изучения или использования в своей работе, ознакомьтесь с имеющимися у нас на рынке Envato.
Я провожу большую часть своего времени, работая с WordPress; Тем не менее, я также поклонник JavaScript и веду блог об этом время от времени. Если вас интересуют другие курсы и учебные пособия, которые я написал для Envato, ознакомьтесь со страницей моего профиля. Кроме того, вы можете прочитать больше статей о разработке WordPress и JavaScript в моем блоге. Не стесняйтесь следовать за мной в Twitter также на @tommcfarlin.
С учетом сказанного, оставьте все отзывы в комментарии ниже.
Java и Javascript: Полное Сравнение
В этой статье вы найдете полное сравнение двух языков программирования Java и JavaScript. Узнайте отличие Java от JavaScript.
Обновлено: August 31, 2021
Стандарты Проверки Фактов BitDegree.org
Чтобы обеспечить высокий уровень точности и актуальности информации, BitDegree.org регулярно проводит аудит и проверку фактов, следуя строгим редакторским правилам. Для соответствия стандартам надёжности, соблюдаются строгие правила добавления ссылок.
Весь контент на BitDegree.org соответствует данным критериям:
1. Только авторитетные источники такие как академические ассоциации или журналы могут быть использованы для целей исследования при создании контента.
2. Реальный контекст каждой освещаемой темы должен быть раскрыт читателю.
3. Если существует конфликт интересов в указываемом исследовании, то читатель должен быть об этом проинформирован.
Свяжитесь с нами, если вы думаете, что контент является устаревшим, неполным или сомнительным.
В самом начале я расскажу вам о каждом из языков программирования отдельно. Мы поговорим об их истории, отличительных функциях и т. д. После этого мы выведем основные критерии для сравнения Java и JavaScript. Наконец, в самом конце мы рассмотрим, в чем отличие Java от JavaScript в соответствии с критериями, установленными ранее.
Содержание
Происхождение: С Чего Всё Началось
С учетом сказанного, давайте перейдем к рассмотрению тот, в чем заключается отличие Java и JavaScript. И так как нам нужно иметь довольно хорошее представление об этих двух языках программирования, чтобы их сравнивать, мы начнем с разговора о Java.
Самые Полюбившиеся Статьи
Ищете более подробную информацию по какой-либо связанной теме? Мы собрали похожие статьи специально, чтобы вы провели время с пользой. Взгляните!
Курсы Машинного Обучения edX: Что Мы Рекомендуем?
Заинтересованы в прохождении курсов машинного обучения онлайн? Взгляните на лучшие edX курсы машинного обучения, которые вы можете пройти сейчас!
Курсы Рисования Skillshare: Лучшие Уроки Для Демонстрации Вашей Креативности
Станьте удивительным художником, пройдя отобранные вручную курсы рисования Skillshare!
Курсы Фотографии Skillshare: Как Запечатлеть Мир
Какие курсы фотографии Skillshare стоят вашего внимания? Взгляните на лучшие варианты и узнайте больше.
Java известен своим лозунгом WORA, или «напиши один раз, запускай везде» (write once, run everywhere). Этот слоган представляет универсальность и адаптируемость этого языка программирования.
JavaScript
Также как и Java, JavaScript это (чаще называемый, как JS) высокоуровневый язык программирования. Он был создан в 1995 Бренданом Эйхом из Netscape Communications. Идея JavaScript заключалась в том, чтобы упростить Java, используя тот же самый синтаксис.
У JavaScript есть несколько преимуществ перед другими языками программирования. Несмотря на то, что многие любят критиковать этот язык программирования (то же самое было и с Java; я уже поминал об этом выше в статье про Java и JavaScript) за то, что он ограничивается лишь браузерным использованием, он доказал, что язык может использоваться во многих других ситуациях.
Итак, после всего вышесказанного вы должны иметь общее представление об обоих рассматриваемых языках программирования. Давайте перейдем к следующей части нашего сравнения Java и JavaScript и поговорим о некоторых критериях нашего сравнения.
Критерии Сравнения
Вот эти три особенности: простота, абстракция и популярность. Давайте рассмотрим все три, чтобы вы могли полностью понять, с чем мы имеем дело.
Простота
Абстракция
Абстракция может звучать. абстрактно для людей, которые никогда раньше не имели дело с языком программирования. Однако, если вы полны энтузиазма, вы, вероятно, согласитесь, что абстракция является важной функцией, если речь идет о долговечности языка, и именно поэтому это описано в этой статье про Java и JavaScript.
Популярность
Java и JavaScript – Сравнение
Теперь, когда мы выяснили ключевые моменты, давайте сразу перейдем к фактическому сравнению Java и JavaScript. Мы рассмотрим всё поэтапно, чтобы избежать путаницы и быть максимально конкретными.
Какой Язык Проще?
Какой Язык Более Абстрактен?
JavaScript, Java, какая теперь разница?
На прошлом JPoint пообещал написать статью про использование GraalVM для смешивания Java и JS. Вот она.
В чем проблема? В повседневной практике часто встречаются приложения, состоящие из двух частей: JavaScript-фронтенд и Java-бэкенд. Организация интеропа между ними требует усилий. Как правило, делают их люди с разных сторон баррикад, и при попытке залезть в чужую область они начинают страдать. Еще есть фуллстек веб-разработчики, но про них всё понятно: они должны страдать всегда.
В этой статье мы рассмотрим новую технологию, которая может сделать процесс немного менее болезненным. Точнее, способ существует довольно давно, но как-то прошел мимо внимания широких народных масс.
Если кто-то из джавистов еще не писал на React, то здесь будет туториал, позволяющий это сделать. Если кто-то из джаваскриптеров не пробовал писать на Java, то в этом же туториале получится к ней прикоснуться (правда, всего одной строчкой и сквозь JS-биндинги).
JS->Java. Тряхнем стариной: Nashorn
Если хочется интероп Java->JS, такая технология в JDK давным-давно была, и называется она Nashorn (читается: «Насхорн»).
Давайте возьмем какую-нибудь реальную ситуацию. Люди из раза в раз, из года в год, продолжают писать «серверные» валидаторы на Java и «клиентские» валидаторы на JS. Особый цинизм тут в том, что проверки зачастую совпадают на 80%, и вся эта активность, по сути, — особая форма бездарно потерянного времени.
Представим, что у нас есть очень тупой валидатор:
Запустить мы его можем на всех трех платформах:
В браузере это тривиально. Просто встраиваем этот кусок кода куда угодно, и оно работает.
В Node.js надо либо уважать их феншуй по использованию require, либо хакнуть его к чертям вот таким простым кодом:
Готовый пример есть у меня на GitHub.
Готовьтесь к тому, что если вы пользуетесь такими приемами, то довольно скоро коллеги могут начать считать вас чучелом. Нам, джавистам — не привыкать, а вот профессиональные джаваскриптеры могут и оконфузиться.
Теперь долбанем всё то же самое, но под Насхорном в Java.
Как видите, можно дернуть как произвольный код, так и отдельную функцию по ее имени.
Есть, конечно, такие проблемы, которые можно решить только в ручном порядке. Например, можно состряпать полифилл типа такого:
Если хочется, чтобы код валидатора был идеально идентичным и на сервере, и на клиенте, придется для «серверных» методов написать заглушки, которые подпихиваются только в браузер. Это уже детали конкретной реализации.
Понятно, что, если вы живете в «красной зоне» кривой имени Ш., использовать Nashorn без включения мозга и написания бенчмарков нельзя. Если хорошенько подумать, можно написать такой бенчмарк, где Насхорн будет проседать, и правильней будет написать нативный код. Но надо четко понимать, что мир не ограничивается хайлоадом и перформансными темами, иногда удобство написания важней любого перформанса.
Java->JS. Проблема
Попробуем пропихнуть данные в обратном направлении, из Java в JS.
Зачем это может быть нужно?
Во-первых, что самое главное, во многих компаниях существует необсуждаемая аксиома: мы используем Java. В каких-нибудь банках. Во-вторых, по ходу решения повседневных проблем такие задачи возникают постоянно.
Рассмотрим игрушечный случай из реальной жизни. Представьте: нужно сгенерить фронт вебпаком, и хочется вписать в правый верхний угол веб-странички текущую версию приложения. Вполне вероятно, что версию бэкенда можно нормальным способом вытащить только вызвав какой-то джавовый код (легаси же). Значит, нужно создать такой Maven-проект, который будет работать в два прохода: прибить к какой-нибудь фазе Maven Build Lifecycle сборку пары классов и их запуск, которые сгенерят properties-файл с номером версии, который на следующей фазе подхватит вручную вызванный npm.
Приводить пример такого pom.xml я здесь не буду, потому что это мерзко 🙂
Более глобально проблема заключается в том, что современная культура поддерживает и поощряет программистов-полиглотов и проекты, написанные на множестве языков. Из этого возникают следующие моменты:
Иногда есть готовые решения — например, переход границы Java/С делается с помощью JNI.
Использование такой интеграции еще и тем хорошо, что, как любят говорить программисты-функционалы, «не сломается то, чего нет». Если мы в своем коде поддерживаем адовейшие pom.xml, properties и xml-файлы и другой ручной интероп, то они имеют свойство ломаться в самых неприятных моментах. Если же эту прослойку написали какие-нибудь реальные боевые ботаны, типа Oracle или Microsoft, оно почти не ломается, а когда ломается — чинить это не нам.
Возвращаясь к предыдущему примеру: зачем нам вставать два раза и делать чудеса с Насхорном, если можно не вставать вообще и писать весь UI только на Ноде?
Но как это сделать, учитывая, что нужно прозрачно посасывать данные из Java?
Первая мысль, которая приходит в голову — продолжать использовать Nashorn. Засосать в него все нужные библиотеки, подпилить напильником, и, может быть, они даже запустятся. Если среди них не будет таких, которым нужны нативные расширения. И вручную сэмулировать всю инфраструктуру Ноды. И еще что-то. Кажется, это проблема. Вообще, такой проект уже был, назывался Project Avatar, и, к сожалению, он загнулся. Если разработчики из Oracle не смогли его довести до конца, то какой шанс, что получится сделать это самостоятельно?
Java->JS. Graal
К счастью, у нас есть еще один довольно новый и интересный проект — Graal.js. То есть часть Graal, ответственная за запуск JavaScript.
Инновационные проекты из мира JDK зачастую воспринимаются чем-то далеким и нереальным. Graal в этом плане отличается — очень внезапно он вышел на сцену как зрелый конкурент.
Graal — это не часть OpenJDK, а отдельный продукт. Он известен тем, что в свежих версиях OpenJDK можно переключить JIT-компилятор из C2 на тот, что идет в составе Graal. Кроме того, в составе Graal поставляется фреймворк Truffle, с помощью которого можно реализовывать разные новые языки. В данном случае разработчики из Oracle Labs реализовали поддержку JavaScript.
Чтобы прочувствовать, насколько это просто и удобно, давайте рассмотрим игрушечный проект-пример.
Представим, что мы делаем рубку НЛО на Хабре.
В первой версии Рубки, НЛО сможет банить рандомных людей, и кнопка будет называться «Забанить кого-нибудь!». Во второй версии кнопка будет банить или троллей, или спамеров, и кого именно мы сейчас баним — будет подгружаться из Java. В целях минимализации примера меняться будет только надпись на кнопке, бизнес-логику прокидывать не будем.
Чтобы сделать реактовое приложение, нужно выполнить много действий, поэтому они аккуратно разбиты на шаги. В конце получается работающее приложение, я проверял.
Часть 1. Заготовка приложения
1. Качаем «энтерпрайзную» GraalVM (по ссылке) и прописываем обычные для Java переменные окружения.
Энтерпрайзная версия нужна потому, что только в ней есть GraalJS.
2. Делаем директорию для проекта
3. npm init (заполнить с умом, но можно и просто прощелкать кнопку enter)
4. Устанавливаем нужные модули: Webpack, Babel, React
Заметьте, что npm может оказаться слегка устаревшей версии (относительно «настоящего») и попросит обновиться. Обновляться не стоит.