Чому немає власних інтерпретаторів Javascript для Windows / Mac / Linux?


38

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


1
І до речі: майже ніхто не "інтерпретує" JavaScript в ці дні, майже всі браузери компілюють його в рідний код саме вчасно.
Йоахім Зауер

2
У певному сенсі є перекладач у Windows - див. Jscript . Це не зовсім Java Script, але це близько.
nhinkle

1
Звуки речей вказують на те, що Windows 8 буде певною мірою вбудований, оскільки ви можете створювати JS-програми для використання на робочому столі.
Rig

Відповіді:


67

Node.js - це саме те, про що ви просите ... та багато іншого.

Окрім виконання JavaScript, він також надає API для звичайних операцій, таких як доступ до файлової системи (JavaScript у браузері не дуже потрібен) та мережевий IO.

Він продається для побудови мережевих додатків (і це чудово в цьому!), Але це дійсно загальний час виконання JavaScript, який ви можете використовувати для створення всього, що вам потрібно. Крім того , він буде заснований на V8.


1
Ага, так, я думав лише про вузол, що стосується мережевих додатків, оскільки вони зрозуміли з їх домашньої сторінки, що саме для цього потрібно.
MebAlone

5
@MebAlone: ​​це їх головне призначення, правда. Але node.exe(або просто nodeна платформах Unix-y) - це в основному простий JavaScript під час виконання. node myJavaScript.jsзапускається myJavaScript.jsі що ще потрібно від системи виконання? (Гаразд, вам потрібні налагодження та бібліотеки, але Node.js також охоплює такі ;-)). Хорошим свідченням цього є те, що багато проектів використовують сценарії JavaScript (запускаються в Node.js, звичайно) як систему збирання.
Йоахім Зауер

1
NodeJS працює на V8 Google. Ви можете використовувати V8, щоб робити все, що завгодно. Тож навіть якщо NodeJS не підходить для вас, V8 може бути.
Ендрю Т Фіннелл

2
@Andrew: з моїх відомостей, V8 не доставляє жодних двійкових файлів, лише джерело. Тож вам доведеться створити його самостійно (або знайти сторонні бінарні файли). Якщо ви не переймаєтесь вузлом, дуже просто просто ігнорувати бібліотеки та використовувати вузол як чистий JavaScript під час виконання. Я не бачу, як ви можете зробити це з однаковою легкістю з V8.
Йоахім Зауер

Одним із прикладів мережевої програми *, що не є *, буде модуль CoffeeScript, який можна запустити в командному рядку для компіляції файлів coffeescript у javascript.
Спойк

76

Як згадував Йоахім, node.js - це саме те, про що ви просите.

Схоже, це недостатньо відомо в порівнянні з Python і особливо Perl для цього типу речей, але, можливо, це просто тому, що JavaScript не вважається дуже хорошим.

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


2
Хороші частини складають усі інші речі, які відбувається у Javascript ... це та CoffeeScript. О, CoffeeScript !
Спойк

4
+1 для Kinect на купі книг. У мене є остаточне керівництво, що сидить під монітором, щоб трохи підняти висоту монітора.
Філ

3
-1, незважаючи на кумедну фотографію, ця відповідь є по суті фантазійним способом сказати "бо це смокче", і насправді нічого не сприяє.
ГрандмайстерB

3
Ні, це зовсім не те, що він говорить.
Майкл Б

1
Lol, The Definitive Guide - це зовсім не книга з javascript, а одна про DOM веб-браузера, з початком трохи js.
gbjbaanb

28

Хост сценаріїв Windows включає в себе механізм JScript (javascript), оскільки принаймні Windows 2000 не входить у комплект, що дозволяє виконувати завдання sysadmin за допомогою javascript.

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

Це також можна вбудувати у додаток Windows за допомогою об’єкта WScript.Shell ActiveX / COM.


ах, дуже круто!
MebAlone

3
WSH також дозволяє використовувати ряд інших мов сценаріїв (наприклад, vb); і якщо я не помиляюся, можна встановити більше ( en.wikipedia.org/wiki/… ). Ви також можете використовувати його для скриптів інших програм Windows, таких як медіаплеєр, слово тощо.
Заморожений

5

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

Gjs широко використовується на робочому столі GNOME3.


2

Існує інтерпретатор javascript, написаний для додатків Java (називається Rhino ), і він, здається, призначений для запису коду сервера в javascript, але він повинен виконуватись як код Java.

Особисто я думаю, що вам набагато краще з node.js, як це приголомшливо. Для швидкого вступу ви можете зробити набагато гірше, ніж прочитати (безкоштовну) книгу NodeBeginner .


Для повноти: Rhino не змушує Javascript виконуватись як код Java, це інтерпретатор Javascript, тобто він виконує Javascript у середовищі JVM. Слід зазначити, що це не дуже швидко, порівняно з більш низькими рівнями перекладачів, як V8.
Cthulhu

хороша безкоштовна книга.
Андрій_1510
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.