Почему нет собственных интерпретаторов Javascript для Windows / Mac / Linux?

39

Мне кажется, было бы очень полезно использовать Javascript для общих задач сценариев на стороне сервера, поскольку он имеет более или менее те же функции, что и Perl и Python. Но AFAIK нет общедоступных интерпретаторов Javascript для основных машинных архитектур. Я полагаю, что другой проблемой может быть нехватка библиотек, но они наверняка возникнут, если там будут переводчики. Google V8 может быть отправной точкой. Кто-нибудь думает, что мы увидим это в ближайшее время?

MebAlone
источник
1
И, кстати, в наши дни почти никто не «интерпретирует» JavaScript, почти все браузеры как раз вовремя компилируют его в нативный код.
Иоахим Зауэр
2
В каком-то смысле в Windows есть интерпретатор - см. Jscript . Это не совсем Java Script, но он близок.
nhinkle
1
Звучит так, что Windows 8 будет в некоторой степени встроен, так как вы можете создавать приложения JS для собственного использования на рабочем столе.
Рог

Ответы:

68

Node.js это именно то, что вы просите ... и многое другое.

Помимо того, что он является средой выполнения JavaScript, он также предоставляет API для общих операций, таких как доступ к файловой системе (JavaScript в браузере на самом деле не нужен) и сетевой ввод-вывод.

Он продается для создания сетевых приложений (и это здорово!), Но на самом деле это среда выполнения JavaScript общего назначения, которую вы можете использовать для создания чего угодно. Кроме того , он будет основан на V8.

Йоахим Зауэр
источник
1
Да, я думал только об узле, как о сетевых приложениях, так как на их главной странице видно, что это то, для чего он нужен.
MebAlone
5
@MebAlone: ​​это их главная цель, правда. Но node.exe(или только nodeна платформах Unix-y) это в основном простая среда выполнения JavaScript. node myJavaScript.jsработает myJavaScript.jsи что еще вам нужно от системы времени выполнения? (Хорошо, вам нужны отладка и библиотеки, но в Node.js они тоже есть ;-)). Хорошим свидетельством этого является то, что многие проекты используют JavaScript-скрипты (разумеется, запускаемые в Node.js) в качестве системы сборки.
Иоахим Зауэр
1
NodeJS работает на Google V8. Вы можете использовать V8, чтобы делать все, что вы хотите. Так что даже если NodeJS не подходит для вас, V8 может быть.
Эндрю Финнелл
2
@ Андрей: из того, что я знаю, V8 ​​не поставляет никаких двоичных файлов, только источник. Таким образом, вам придется создать его самостоятельно (или найти сторонние двоичные файлы). Если вы не заботитесь об узле, очень легко просто проигнорировать библиотеки и использовать узел в качестве чистой среды выполнения JavaScript. Я не понимаю, как вы можете сделать это с такой же легкостью с V8.
Иоахим Зауэр
Одним из примеров * не * сетевого приложения в узле может быть модуль CoffeeScript, который можно запустить из командной строки для компиляции ваших файлов coffeescript в javascript.
Спойк
77

Как упомянул Joachim, node.js - это именно то, что вы просите.

Похоже, он не очень хорошо известен по сравнению с Python и особенно с Perl для такого рода вещей, но, возможно, это просто потому, что JavaScript не считается очень хорошим.

введите описание изображения здесь

Элиот Болл
источник
2
Хорошие части компенсируют все остальное, что происходит в Javascript ... это и CoffeeScript. О, CoffeeScript !
Спойк
4
+1 за Kinect на стопку книг. У меня под монитором находится полное руководство, чтобы немного поднять высоту монитора.
Фил
3
-1, несмотря на забавную фотографию, этот ответ - по сути причудливый способ сказать «потому что это отстой», и на самом деле ничего не дает.
GrandmasterB
3
Нет, это не то, что он говорит.
Майкл Б
2
Lol, The Definitive Guide - вообще не книга на javascript, а книга о DOM веб-браузера, с небольшим количеством js в начале.
gbjbaanb
29

Windows Script Host включает механизм JScript (javascript) по крайней мере с Windows 2000 из коробки, что позволяет вам выполнять задачи sysadmin с использованием javascript.

http://en.wikipedia.org/wiki/Windows_Script_Host

Также возможно встроить это в приложение Windows, используя объект ActiveX / COM WScript.Shell.

Джори Себрехтс
источник
ах, очень круто!
MebAlone
3
WSH также позволяет вам использовать ряд других языков сценариев (например, vb); и если я не ошибаюсь, можно установить больше ( en.wikipedia.org/wiki/… ). Вы также можете использовать его для
создания
6

В дополнение к node.js есть также gjs , которая является средой, ориентированной на GNOME, предоставляющей доступ к библиотекам GNOME, GTK и GLib, среди прочих. Я считаю, что вы можете использовать с ней любую библиотеку, которая поддерживает самоанализ GObject.

Gjs широко используется на рабочем столе GNOME3.

dhasenan
источник
3

Существует интерпретатор javascript, написанный для приложений Java (называемый Rhino ), и он, похоже, предназначен для написания серверного кода в javascript, но должен выполнять его как код java.

Лично я думаю, что вам гораздо лучше с node.js, так как это круто. Для быстрого ознакомления вы можете сделать намного хуже, чем читать (бесплатную) книгу NodeBeginner .

gbjbaanb
источник
Для полноты картины: Rhino не заставляет Javascript выполняться как код Java, это интерпретатор Javascript, то есть он выполняет Javascript в среде JVM. Следует отметить, что это не очень быстро, по сравнению с более низкоуровневыми интерпретаторами, такими как V8.
Ктулху
хорошая бесплатная книга.
Andrew_1510 15.09.13