Java и javascript кроссплатформенный

Объясните понятно, чем отличаются Java и JavaScript?

Два совершенно разных языка. Просто у JavaScript приписали в начале слово Java для раскрутки за счет существующего и популярного на тот момент языка.

Ну если совсем просто говорить:
JavaScript применяется в 95% на веб-страницах.
Это всякие слайдеры, пошаговые формы регистрации, удобный просмотр картинок, выпадающие окошки и меню, и прочее интерактивное в интернете.

Java — язык кроссплатформенного системного программирования.
Фактически это крупные программные продукты гигантов ORACLE, IBM, большинство обеспечения телефонов и смартфонов, такие игры как Minecraft и Terraria. Продукты одинаково работающие как на Windows, так и на Linux, Unix, MacOS. А заодно и самый востребованный язык программирования.

самые востребованные это Cишки, в последнее время популярен Питон, но никак не ява.
Привет через 2 года

Алекс Красс Просветленный (40010) Ну все как обычно, первая пятерка постоянно дерется за превосходство, в основном лидером до недавнего времени по проектам был Си, по использованию и востребованности Java. Последние два года Java просел. В общем-то лучше просто анализировать разные источники: 1. Общая сводка (2013 год правда) : http://langpop.com/ 2. Index Tiobe (есть динамика по годам) 3. openhub (си по проектам просел сильно) https://www.openhub.net/languages/compare 4. http://trendyskills.com/ 5. PYPL (PopularitY of Programming Language index) 6. редмонк http://redmonk.com/sogrady/2014/01/22/language-rankings-1-14/

Всем, кроме первых 4-х букв в своем названии.. .

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

Читайте также:  Python list get or default

JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

Если проще — то Java применяют для написания программ для телефонов/смартфонов/компов. А Javascript это скриптовый язык для написания клиентских скриптов для веб-сайтов (в основном).

Если именно в плане языка, то основное отличие в типизации: в JavaScript — динамическая, в Java — статическая. И в модели ООП, в JavaScript оно прототипное.

А сферы применения очень разные, на JS и серверную часть пишут — Node.js, а на Java клиентскую — Апплеты, GWT(правда там трансляция в JS) если речь про веб, но это скорее как исключение из правил.

Источник

Запускаем Node.js на JVM

Прошли те дни, когда целые компании зависели от одного поставщика технологий. Даже маленькие фирмы и любители найдут оптимальное для себя решение, объединяя технологии в одном проекте. Долгое время Java держала первенство среди серверных технологий. Но сегодня Node.js повсюду.

Но даже с ростом популярности Node.js и JavaScript, Java не теряет силу. Кроме того, немногие организации могут позволить себе перенести всю платформу с JVM на Node.js. Это значит, что компания должна либо продолжать использовать текущий стек технологий, либо запускать несколько стеков, которые будут общаться через сетевое API. Однако есть и другой способ: запустить Node.js прямо в процессе JVM. И J2V8, наконец, сделала это возможным.

J2V8

J2V8 это набор коннекторов к V8 для Java. J2V8 упаковывает V8 как динамическую библиотеку и предоставляет Java API для V8 через Java Native Interface (JNI). С J2V8 Вы можете выполнять JavaScript используя V8 также, как если бы использовали Rhino или Nashorn.

Читайте также:  Search php search поиск

Изначально J2V8 был разработан для предоставления высокопроизводительного JavaScript в Tabris.js, кросс-платформенной мобильной библиотеке.

За последние месяцы я настраивал сборку Node.js как динамической библиотеки и обеспечивал взаимодействие с Java API для неё. Теперь вы можете выполнять скрипты для Node.js прямо из Java. В отличии от прочих решений, которые пытаются реализовать Node.js используя другие движки, это настоящий Node.js со всеми багами и возможностями. Node.js запускается в том же процессе что и JVM и всё взаимодействие происходит синхронно через JNI.

Совместное использование Node.js и JVM

J2V8 предоставляет API для выполнения скриптов в Node.js, вызова функций JavaScript из Java и наоборот, подключения NPM модулей и запуска очереди сообщений Node.js. Все модули ядра Node.js также присутствуют.

Запуск Node.js на JVM позволяет легче провести миграцию для любого, кто использует большой Java стек, но хочет начать использовать Node.js. Например, Вы можете запустить на Node.js сервер (такой как Express.js) и вызывать существующие методы Java для обработки запросов.

static String NODE_SCRIPT = "var http = require('http');\n" + "" + "var server = http.createServer(function (request, response) );\n" + " response.end(someJavaMethod());\n" + ">);\n" + "" + "server.listen(8000);\n" + "console.log('Server running at http://127.0.0.1:8000/');"; public static void main(String[] args) throws IOException < final NodeJS nodeJS = NodeJS.createNodeJS(); JavaCallback callback = new JavaCallback() < public Object invoke(V8Object receiver, V8Array parameters) < return "Hello, JavaWorld!"; >>; nodeJS.getRuntime().registerJavaMethod(callback, "someJavaMethod"); File nodeScript = createTemporaryScriptFile(NODE_SCRIPT, "example"); nodeJS.exec(nodeScript); while(nodeJS.isRunning()) < nodeJS.handleMessage(); >nodeJS.release(); >

NPM

Вдобавок к вызову существующих методов Java из Node.js, J2V8 предоставляет возможность вызывать JavaScript функции (в том числе NPM модулей) прямо из Java. С такой интеграцией, Java пользователи могут сразу начать использовать NPM модули прямо в JVM. Например, Вы можете использовать jimp для обработки изображений в Java.

public static void main(String[] args) < final NodeJS nodeJS = NodeJS.createNodeJS(); final V8Object jimp = nodeJS.require(new File("path_to_jimp_module")); V8Function callback = new V8Function(nodeJS.getRuntime(), new JavaCallback() < public Object invoke(V8Object receiver, V8Array parameters) < final V8Object image = parameters.getObject(1); executeJSFunction(image, "posterize", 7); executeJSFunction(image, "greyscale"); executeJSFunction(image, "write", "path_to_output"); image.release(); return null; >>); executeJSFunction(jimp, "read", "path_to_image", callback); while(nodeJS.isRunning()) < nodeJS.handleMessage(); >callback.release(); jimp.release(); nodeJS.release(); >

Подключение J2V8

Интеграция с Node.js уже доступна в J2V8 (версия 4.4.0). Вы можете использовать ее на Windows (32-х и 64-х разрядных), MacOS и Linux (64-х разрядных). Используйте следующую зависимость в pom, чтобы получить ее из Maven Central (этот пример для Windows 64-х, не забудьте поменять для других платформ):

 com.eclipsesource.j2v8 j2v8_win32_x86_64 4.4.0 

От переводчика

J2V8 дает нам новый уровень абстракции, позволяющий выбрать наиболее подходящую технологию для каждой отдельной задачи в рамках целого проекта. Как разработчика меня всегда привлекала надежность Java и удобство Node.js. И, в скором времени, надеюсь, мы увидим примеры успешных проектов, сочетающих в себе лучшее из двух миров.

Читайте также:  Even or odd numbers in php

Источник

Оцените статью