Question

I've been wondering to try out server-side javascript for a while. And I'm finding a good amount of servers, like: Node.js Rhino SpiderMonkey among others.

Could anyone with experience on server-side javascript, tell me which are the best engines? and why? I like the Node.js because it's based on Google's V8 engine. And seems easy to use. But some feedback on what you would choose would be great.

Edit:

Some benchmarks for Node.

I'm thinking on going with this one but feedback is still welcome.

Thanks

Was it helpful?

Solution

I think each solution has its own advantages/disadvantages

here a list of SSJS solutions:

  • Aptana Jaxer: sadly abandoned

  • Sitepoint Persevere: based on rhino - include JSDB, supports JSON Query - by Kris Zyp, the author of JSON Schema

  • RingoJS: based on rhino - ex Helma NG successor of Helma which existed from long time ago - multi-thread - nice community - great actor on CommonJS

  • Narwhal: can work on either spidermonkey, V8, or webkit JavaScriptCore - another great actor on CommonJS - defined the JSGI API in the Jack Server

  • Joyent NodeJS: based on V8 (fast) - all is running in a single thread - all the code must be written using callbacks - lot of modules available via npm (Node Package Manager)

  • 4D Wakanda: based on Webkit JavaScriptCore aka SFX or Nitro (which has been faster than V8 and could be faster again) - include an NoSQL Object oriented JavaScript datastore with a native REST API - multi-threaded - provides a studio with a debugger, a Model Designer, and a GUI Designer - provides a Framework with Widgets directly bindable to the datastore and between each others

  • APE project: based on spidermonkey - a Push engine to synchronize in live data between many visitor browsers

  • 10gen MongoDB: A NoSQL Document store allowing code in either Erlang & JavaScript (using spidermonkey)

  • Apache CouchDB: Another NoSQL Document store also allowing code in either Erlang & JavaScript (using spidermonkey)

See a Server-Side JavaScript presentation with some history, benchmarks, & descriptions

OTHER TIPS

The word server is badly used. Those are different JavaScript implementations.

Personally the only thing I'm doubtful about these implementations is about the low amount of system libraries. Most of them come with standard stuff (sockets, filesystem etc..) but lack support for Threads and concurrency. That's why I usually use Rhino, unless I care for speed.

It might help to describe what problem you are trying to solve. There are a lot of "server-side" JS implementations that fill various needs. An there also several "server" platforms built around these implementations. I wrote one implementation on top of Rhino and Java Servlets, called Myna. Myna is for web applications, and I detailed some of its advantages in another question.

Are you trying to deploy web applications? Are you trying to script existing code? Does your code need to start quickly from a commandline, or is it going to be implemented as a daemon?

There are currently no clear winners in this space that do all of these things well, but there are good choices for specific needs.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top