Dlaczego nie ma rodzimych interpreterów Javascript dla Windows / Mac / Linux?

38

Wydaje mi się, że bardzo przydatne byłoby użycie Javascript do ogólnych zadań skryptowych po stronie serwera, ponieważ ma on mniej więcej takie same funkcje jak Perl i Python. Ale AFAIK nie ma ogólnie dostępnych interpreterów Javascript dla głównych architektur maszyn. Wydaje mi się, że innym problemem może być brak bibliotek, ale na pewno pojawią się, jeśli będą tam tłumacze. Google V8 może być punktem wyjścia. Czy ktoś myśli, że wkrótce to zobaczymy?

MebAlone
źródło
1
A tak przy okazji: prawie nikt obecnie nie „interpretuje” JavaScript, prawie wszystkie przeglądarki kompilują go w natywnym kodzie w odpowiednim czasie.
Joachim Sauer
2
W pewnym sensie w Windowsie jest tłumacz - patrz Jscript . To nie jest dokładnie Java Script, ale jest blisko.
nhinkle
1
Dźwięki rzeczy wskazują, że Windows 8 będzie miał to do pewnego stopnia wbudowane, ponieważ możesz tworzyć aplikacje JS do natywnego użytku na komputerze.
Przypon

Odpowiedzi:

67

Node.js jest dokładnie tym, o co prosisz ... i więcej.

Oprócz tego, że jest środowiskiem wykonawczym JavaScript, udostępnia również interfejsy API do typowych operacji, takich jak dostęp do systemu plików (JavaScript w przeglądarce tak naprawdę tego nie potrzebuje) i sieciowe operacje wejścia / wyjścia.

Jest sprzedawany do tworzenia aplikacji sieciowych (i świetnie w tym!), Ale tak naprawdę jest to środowisko wykonawcze JavaScript ogólnego przeznaczenia, którego można użyć do zbudowania wszystkiego, co chcesz. Ponadto jest oparty na wersji V8.

Joachim Sauer
źródło
1
Huh, tak, myślałem o węźle tylko w przypadku aplikacji sieciowych, ponieważ są one wyraźnie widoczne na stronie głównej, że po to są.
MebAlone
5
@MebAlone: ​​to ich główny cel, prawda. Ale node.exe(lub tylko nodena platformach Unix-y) jest w zasadzie prostym środowiskiem wykonawczym JavaScript. node myJavaScript.jsdziała myJavaScript.jsi czego więcej potrzebujesz od systemu wykonawczego? (Ok, potrzebujesz debugowania i bibliotek, ale Node.js też je zawiera ;-)). Dobrym tego przykładem jest to, że wiele projektów używa skryptów JavaScript (uruchamianych oczywiście w Node.js) jako systemu kompilacji.
Joachim Sauer
1
NodeJS działa na Google V8. Za pomocą V8 możesz robić, co chcesz. Więc nawet jeśli NodeJS nie jest dla ciebie odpowiedni, może być V8.
Andrew T Finnell,
2
@Andrew: z tego co wiem V8 nie dostarcza żadnych plików binarnych, tylko źródło. Musisz więc zbudować go samodzielnie (lub znaleźć pliki binarne innych firm). Jeśli nie zależy ci na węźle, bardzo łatwo jest po prostu zignorować biblioteki i użyć węzła jako czystego środowiska wykonawczego JavaScript. Nie rozumiem, jak możesz to zrobić z taką samą łatwością z V8.
Joachim Sauer
Jednym z przykładów aplikacji * nie * podłączonej do sieci w węźle może być moduł CoffeeScript, który można uruchomić w wierszu polecenia, aby skompilować pliki coffeescript do javascript.
Spoike
76

Jak wspomniał Joachim, node.js jest dokładnie tym, o co prosisz.

Wydaje się, że nie jest to dobrze znane w porównaniu z Pythonem, a zwłaszcza Perlem, do tego typu rzeczy, ale być może dzieje się tak dlatego, że JavaScript nie jest powszechnie uważany za bardzo dobry.

wprowadź opis zdjęcia tutaj

Eliot Ball
źródło
2
Dobre części nadrabiają wszystko, co dzieje się w Javascript ... to i CoffeeScript. Oh CoffeeScript !
Spoike
4
+1 dla Kinect na stosie książek. Mam ostateczny przewodnik siedzący pod moim monitorem, aby nieco podnieść wysokość monitora.
Phil
3
-1, pomimo śmiesznego zdjęcia, ta odpowiedź jest w zasadzie fantazyjnym sposobem powiedzenia „bo to jest do bani” i tak naprawdę nic nie wnosi.
GrandmasterB
3
Nie, wcale tak nie mówi.
Michael B
1
Lol, The Definitive Guide - wcale nie książka javascript, ale jedna o DOMach przeglądarek internetowych, z odrobiną js na początku.
gbjbaanb
28

Windows Script Host zawiera silnik JScript (javascript) od co najmniej Windows 2000 po wyjęciu z pudełka, umożliwiając wykonywanie zadań sysadmin przy użyciu javascript.

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

Możliwe jest również osadzenie tego w aplikacji systemu Windows za pomocą obiektu ActiveX / COM WScript.Shell.

Joeri Sebrechts
źródło
ah, bardzo fajnie!
MebAlone
3
WSH pozwala także na używanie wielu innych języków skryptowych (takich jak vb); i jeśli się nie mylę, można zainstalować więcej ( en.wikipedia.org/wiki/… ). Możesz go również używać do pisania skryptów w innych aplikacjach Windows, takich jak odtwarzacz multimedialny, słowo itp.
frozenkoi
5

Oprócz node.js istnieje także gjs , który jest środowiskiem uruchomieniowym zorientowanym na GNOME, dającym dostęp między innymi do bibliotek GNOME, GTK i GLib. Wierzę, że możesz używać z nią dowolnej biblioteki obsługującej introspekcję GObject.

Gjs jest szeroko stosowany na pulpicie GNOME3.

dhasenan
źródło
2

Istnieje interpreter javascript napisany dla aplikacji Java (o nazwie Rhino ) i wydaje się, że jest przeznaczony do pisania kodu serwera w javascript, ale musi być wykonywany jako kod java.

Osobiście uważam, że lepiej sobie radzić z node.js, ponieważ jest to niesamowite. W celu szybkiego wprowadzenia możesz zrobić znacznie gorzej niż przeczytać (darmową) książkę NodeBeginner .

gbjbaanb
źródło
Dla kompletności: Rhino nie uruchamia Javascript jako kodu Java, jest to interpreter JavaScript, tzn. Wykonuje JavaScript w środowisku JVM. Warto zauważyć, że nie jest on bardzo szybki, w porównaniu z bardziej niskopoziomowymi tłumaczami, takimi jak V8.
Cthulhu
dobra darmowa książka.
Andrew_1510