Server-Side javascript framework
D

5

6

I'm looking to replace PHP with something better (everybody seems to say that PHP is evil, right ?), and considering server-side JavaScript.

node.js seems very popular, but I'm afraid I'll go crazy with asynhronous stuff. Is it possible to write normal (synchronous) code under node ?

My whishlist: web and command-line scripting, good performance (on the The Computer Language
Benchmarks Game
, V8 seems to be an order of magnitude faster than PHP), preferably developed by some company or community so that it will not be just abandoned someday, user community with a decent modules library.

I don't consider various frameworks based on Rhino, as Rhino runs in Java, and I'm not into Java, aware of it's memory footprint, and the whole idea of compiling javascript to java makes no sense to me.

Spent some time googling, and found numerous projects: Myna, Meteor, GromJS, APE, GLUEscript, v8cgi, silkjs, wakanda, GPSEE, sorrowjs, ejscript, Persevere, PhantomJS.

Does somebody have any experience with those ? Any recommendation are welcome.

Diagenesis answered 14/7, 2012 at 21:36 Comment(4)
If you're not ready for the asynchronous model then you're right: Node.js will drive you crazy.Redress
@Sandman4... I can feel you on this question.. I did look for fancy new things for my simple implementations sometime back, but I dont do it anymore, unless it serves a business purpose. The challenge with fancy implementations is the maintenance in the long run. If your organization has enough PHP skills, do it in PHP.. OR simple .NET (i'm aware .NET is not simple though :D ).. OR use Node if your organization will move along that path to build competencies!Ology
Rhino doesn't compile to Java, it compiles to bytecode.Piraeus
Don't want to sound like a fanboy, but the idea of PHP being 'evil' is more a matter of trendiness. It's still the most used language for webdevelopment by far. People tend to think Microsoft is evil too, yet 90% of us at least have a douldboot or bootcamp with Windows.Sitin
C
6

Well Node.JS is the way to go if you ask me. You can write synchronous code, BUT only do that in command line scripts. When writing a web servers you have to go the async route otherwise it will not perform because JavaScript is single threaded and everything comes to a halt.

The reason Node.js is so fast is because of asynchronous IO.

You will get used to callbacks and eventing and after a while you don't want to go back.

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Cornelia answered 14/7, 2012 at 21:45 Comment(3)
I don't think JavaScript is single threaded, it's an implementation which is single threaded. Only I don't know if it's a limtation of node.js or of V8 itself.Diagenesis
Javascript is inherently parallel because it uses asynchronous calls. The problem is that it runs on an interpreter that is usually single threaded.Ptolemaic
JavaScript is meant to be used as it is commonly used (surprise surprise). It has the main thread that executes interpreted JavaScript that works in a non-blocking environment and multiple workers which work on separate threads (in a blocking IO environment). It can be clearly seen in Node.js (JavaScript & C++ modules) but is actually done in all (major) browsers as well (Node.js uses V8 engine after all). With that in mind, it's up to you whether you call it single-threaded or multi-threaded.Directions
T
5

Meteor. Built on top of Node.js and growing very fast.

In Meteor, your server code runs in a single thread per request, not in the asynchronous callback style typical of Node. We find the linear execution model a better fit for the typical server code in a Meteor application.

UPDATE One year later - Why Meteor

Thitherto answered 12/3, 2013 at 1:17 Comment(0)
H
4

Have you looked at Comparison of server side JavaScript solutions ?

Node.js is popular. As for php speed, have you looked at HipHop? Rewriting your code in javascript probably won't give much of a performance boost over php.

Hanrahan answered 14/7, 2012 at 21:48 Comment(1)
I spent a whole day googling so yes, I saw the wikipedia. My idea is not a performance alone (though benchmark in the benchmark game look impressive), just want to try something else than PHP, maybe somewhat more "ordered".Diagenesis
V
4

Nodejs is very good option on many fronts.

But you say you are concerned about its a async nature.

Two points on this.

  1. you never need to worry about async and can continue to write you application from top bottom like PHP. That's if you are not performing "blocking IO".

  2. If you are performing "blocking IO" like reading a database or accessing the file-system than you will need to deal with async. Luckly there are good ways to do this without the need to change you coding practices too much.

Valentinevalentino answered 15/7, 2012 at 2:42 Comment(0)
R
3

Thanks for providing the list of "numerous projects" you found. We are currently using Microsoft ASP 3.0 ("Classic ASP", coming with IIS) that provides a server-side JavaScript implementation since 1996 - it's fast, mature and due to the COM technology quite extensible. If you are not fixed to open source, it's worth a look. For our open source strategy, we will have a closer look at SilkJS.

Regurgitate answered 27/7, 2012 at 7:40 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.