Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between Rhino and Spidermonkey JavaScript engines?

For the first time, I began learning Javascript, however on the start I stuck up with two possible options: Rhino and Spidermonkey. Could you please, tell me what is one, and what is another, so I can easily choose for myself the best option that suits my needs. If it makes easier for you, you can list advantages and disadvantages of both Javascript versions.

like image 627
Dzek Trek Avatar asked Jan 17 '12 16:01

Dzek Trek


People also ask

What is Rhino Script engine?

Rhino is a JavaScript engine written fully in Java and managed by the Mozilla Foundation as open source software. It is separate from the SpiderMonkey engine, which is also developed by Mozilla, but written in C++ and used in Mozilla Firefox.

Is V8 better than SpiderMonkey?

V8 is the fastest, because it compiles all JS to machine code. SpiderMonkey (what FF uses) is fast too, but compiles to an intermediate byte-code, not machine code. That's the major difference with V8. EDIT- Newer Firefox releases come with a newer variant of SpideMonkey; TraceMonkey.

Is JavaScriptCore faster than V8?

js uses V8. JavaScriptCore tends to start up & load/parse JS much faster than V8.

Is SpiderMonkey open source?

SpiderMonkey is the first JavaScript engine, written by Brendan Eich at Netscape Communications, later released as open source and currently maintained by the Mozilla Foundation.


2 Answers

It depends on what you're trying to do with JavaScript. If your intent is just to learn the language then I recommend using a web browser such as Chrome or Firefox and using their built-in (or addon) JavaScript consoles.

As to your specific question about standalone JavaScript interpreters, here are some notes:

  1. Rhino - implemented in Java, intended primarily for use as a scripting engine extension for the Java platform. Includes an interactive command-line console, which will be helpful for learning.
  2. SpiderMonkey - implemented in C/C++, intended for use as the JavaScript engine in Firefox.

See also:

  1. V8 - implemented in C++, designed primarily as the Chrome browser's JavaScript implementation; well suited for embedding.
  2. node.js - a standalone, evented, asynchronous JavaScript environment, based on V8.
  3. Narwhal - a CommonJS platform.
  4. Windows Script Host - includes a JScript interpreter (ECMAScript based, very similar to modern JavaScript).
like image 136
maerics Avatar answered Dec 09 '22 05:12

maerics


Rhino is written in Java. SpiderMonkey is written in C/C++. I wouldn't go near either for the purposes of "learning JavaScript", for which a browser is probably more suitable.

like image 27
Quentin Avatar answered Dec 09 '22 04:12

Quentin