Tại sao không có trình thông dịch Javascript gốc cho Windows / Mac / Linux?


38

Đối với tôi, nó có vẻ rất hữu ích khi sử dụng Javascript cho các tác vụ kịch bản phía máy chủ nói chung vì nó có ít nhiều tính năng tương tự như Perl và Python. Nhưng AFAIK không có trình thông dịch Javascript thông thường cho các kiến ​​trúc máy chính. Tôi đoán vấn đề khác có thể là thiếu thư viện nhưng chắc chắn những vấn đề này sẽ đến nếu người phiên dịch ở đó. V8 của Google có thể là điểm khởi đầu. Có ai nghĩ rằng chúng ta sẽ thấy điều này sớm?


1
Và nhân tiện: hầu như không có ai "diễn giải" JavaScript ngày nay, gần như tất cả các trình duyệt biên dịch nó thành mã gốc chỉ trong thời gian.
Joachim Sauer

2
Theo một nghĩa nào đó, có một trình thông dịch trong Windows - xem Jscript . Nó không chính xác là Java Script, nhưng nó gần.
nhắt

1
Âm thanh của mọi thứ cho thấy Windows 8 sẽ được tích hợp ở một mức độ nào đó vì bạn có thể xây dựng các ứng dụng JS để sử dụng máy tính để bàn gốc.
Giàn khoan

Câu trả lời:


67

Node.js chính xác là những gì bạn đang yêu cầu ... và hơn thế nữa.

Ngoài việc là một thời gian chạy JavaScript, nó cũng cung cấp API cho các hoạt động phổ biến, chẳng hạn như truy cập hệ thống tệp (JavaScript trên trình duyệt không thực sự cần điều đó) và IO mạng.

Nó được bán trên thị trường để xây dựng ứng dụng mạng (và nó rất tuyệt ở đó!), Nhưng nó thực sự là một thời gian chạy JavaScript có mục đích chung mà bạn có thể sử dụng để xây dựng bất cứ thứ gì bạn muốn. Ngoài ra, nó được dựa trên động cơ V8.


1
Huh, vâng tôi chỉ nghĩ về nút như đối với các ứng dụng mạng vì chúng rõ ràng từ trang chủ của chúng trên đó là những gì nó dành cho.
MebAlone

5
@MebAlone: ​​đó là mục đích chính của họ, đúng. Nhưng node.exe(hoặc chỉ nodetrên các nền tảng Unix-y) về cơ bản là một thời gian chạy JavaScript đơn giản. node myJavaScript.jschạy myJavaScript.jsvà những gì bạn cần nhiều hơn từ một hệ thống thời gian chạy? (Ok, bạn cần gỡ lỗi và thư viện, nhưng Node.js cũng có các thư viện được bảo hiểm ;-)). Một dấu hiệu tốt cho điều này là nhiều dự án sử dụng các tập lệnh JavaScript (tất nhiên là chạy trong Node.js) làm hệ thống xây dựng của chúng.
Joachim Sauer

1
NodeJS chạy trên V8 của Google. Bạn có thể sử dụng V8 để làm bất cứ điều gì bạn muốn. Vì vậy, ngay cả khi NodeJS không phù hợp với động cơ V8 của bạn.
Andrew T Finnell

2
@Andrew: từ những gì tôi biết V8 không gửi bất kỳ nhị phân nào, chỉ có nguồn. Vì vậy, bạn phải tự xây dựng nó (hoặc tìm nhị phân của bên thứ ba). Nếu bạn không quan tâm đến nút, rất dễ dàng bỏ qua các thư viện và sử dụng nút làm thời gian chạy JavaScript thuần túy. Tôi không thấy cách bạn có thể làm điều đó một cách dễ dàng như nhau với V8.
Joachim Sauer

Một ví dụ về ứng dụng được kết nối * không * trong nút sẽ là mô-đun CoffeeScript có thể chạy trong dòng lệnh để biên dịch các tệp coffeescript của bạn thành javascript.
Spoike

76

Như Joachim đã đề cập, node.js chính xác là những gì bạn yêu cầu.

Nó dường như không được biết đến nhiều khi so sánh với Python và đặc biệt là Perl cho loại điều này, nhưng có lẽ đó đơn giản là vì JavaScript không được coi là rất tốt.

nhập mô tả hình ảnh ở đây


2
Các bộ phận tốt bù đắp cho tất cả những thứ khác Javascript đang diễn ra ... đó và CoffeeScript. Ôi cà phê !
Spoike

4
+1 cho Kinect trên một chồng sách. Tôi có hướng dẫn dứt khoát ngồi dưới màn hình của mình để tăng chiều cao màn hình lên một chút.
Phil

3
-1, mặc dù bức ảnh hài hước, câu trả lời này về cơ bản là một cách nói lạ mắt 'vì nó thật tệ' và không thực sự đóng góp gì cả.
GrandmasterB

3
Không, đó không phải là những gì anh ấy nói.
Michael B

1
Lol, The Definitive Guide - hoàn toàn không phải là một cuốn sách javascript mà là một cuốn về DOM trình duyệt web, với một chút js ở đầu.
gbjbaanb

28

Windows Script Host đã bao gồm một công cụ JScript (javascript) kể từ khi có ít nhất Windows 2000, cho phép bạn thực hiện các tác vụ sysadmin bằng cách sử dụng javascript.

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

Cũng có thể nhúng ứng dụng này vào ứng dụng windows bằng đối tượng WScript.Shell ActiveX / COM.


à, rất tuyệt
MebAlone

3
WSH cũng cho phép bạn sử dụng một số ngôn ngữ kịch bản lệnh khác (như vb); và nếu tôi không nhầm thì có thể cài đặt thêm ( en.wikipedia.org/wiki/, ). Bạn cũng có thể sử dụng nó để tạo kịch bản cho các ứng dụng Windows khác, như trình phát đa phương tiện, từ, v.v.
Frozenkoi

5

Ngoài node.js, còn có gjs , đây là thời gian chạy theo định hướng Gnome cho phép truy cập vào các thư viện Gnome, GTK và GLib, cùng với các thư viện khác. Tôi tin rằng bạn có thể sử dụng với nó bất kỳ thư viện nào hỗ trợ nội quan GObject.

Gjs được sử dụng rộng rãi trong máy tính để bàn Gnome3.


2

Có một trình thông dịch javascript được viết cho các ứng dụng Java (được gọi là Rhino ) và dường như nó được thiết kế để viết mã máy chủ trong javascript, nhưng nó thực thi dưới dạng mã java.

Cá nhân, tôi nghĩ rằng bạn tốt hơn nhiều với node.js vì điều đó thật tuyệt vời. Để có một giới thiệu nhanh, bạn có thể làm điều tồi tệ hơn nhiều so với việc đọc cuốn sách NodeBeginner (miễn phí) .


Để hoàn thiện hơn: Rhino không làm cho Javascript thực thi dưới dạng mã Java, đó là trình thông dịch Javascript, tức là nó thực thi Javascript trong môi trường JVM. Đáng chú ý là nó không nhanh lắm, so với các phiên dịch viên cấp thấp hơn như V8.
Cthulhu

sách miễn phí tốt.
Andrew_1510
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.