Ask HN: Best server-side Javascript framework
I'm building a simple SaaS app and have been using Django+MongoDB for the server side bits, but my app is a very heavy JS RIA and I'd love to do the backend in JS, too. Wanted to see what HNers recommended for server-side JS. I'm a Rails guy, so am used to being spoon fed... Have a VPS with a number of PHP and Rails apps, so am comfy administering stuff.
* I'm wary of Node.js because it's so young, I'm a touch worried about it crashing and it requires a new set of JS-derived drivers/libs. But it has a huge range of frameworks that run on it and huge community.
* RingoJS seems like a very solid foundation and it gives access to a huge range of Java libs (of ever-varying quality). But I'm not in love with its programming model and it has a relatively small number of add-on frameworks and a small community.
Any other contenders I'm missing? Better to stick with Django?
22 comments
[ 2.9 ms ] story [ 66.3 ms ] threadhttp://expressjs.com/guide.html
That said, I think we're all still waiting for the real JS Application framework to appear. For better or for worse, Express is more or less a Sinatra clone for static pages. I'm hoping to see a true end-to-end JS system emerge sometime in 2011: one that provides models that can run on both the client and the server, live updating via Websockets as well as REST, views that can generate HTML on either end, with a built-in plan of attack for keeping common security holes in JS apps plugged.
Hadn't really noticed that feeling of not-quite-there-yet, but you summed up my feelings about node.js frameworks pretty well. (This is where someone tells me to start developing it myself...)
I'll check into Express again and see if it's getting to the point where it's reasonable for a neophyte such as myself to invest in learning it and helping to develop it.
https://github.com/tuxychandru/grasshopper
https://github.com/mathgladiator/win
Yes, please! This area is so ripe, it hurts.
Backbone.js (or similar) screams to grow into a client/server hybrid that could finally turn web development into what it should be - after all those years.
As a datapoint, I'm currently fleshing out a rails hack to auto-generate javascript form-validation code from the rails model validations. The impedance mismatch is nasty, to say the least.
And this is just a tiny fragment of the pains that would evaporate when we finally get to treat server and client as two sides of the same coin.
https://github.com/ry/node/wiki/modules
Definitely had seen that, but, as with all things server-side-javascript, I'd been a bit confused both by the number of choices and by the number of defunct-ish projects. I'll dig into it again. Definitely is seeming as though I oughta look at node.js again...
I'd take a look at node-static for file serving, and journey for JSON routes. Thingler.com is built with those pieces, I believe. You can read the article about it over here: http://www.couchone.com/case-study-thingler
Edit: Cloudhead wrote all the above things, and is also the author of lesscss.org, which you may have heard of.
Also, make sure to keep an eye out for example folders in github repos, as they are generally super helpful.
Also also, stop into #node.js, as they are super nice :)
When I need something, I dig, find something similar, read the code, and I re implement the thing, my style.
The RingoJS/Helma team should make it more clear about how committed they are to the development of future RingoJS libraries. RingoJS will benefit from more contributors but it's doing just fine already.
Use the discussions group to find out more: http://groups.google.com/group/ringojs.
The number of add-on frameworks is probably so small because Ringo came bundled with a web-framework. But it will be removed from the core within the next releases.
And additional frameworks for Ringo are already appearing, like https://github.com/hns/stick or the proprietary http://erbix.com platform
There's virtually no proprietary library in Erbix. The backend Single-Sign-On module will be launched openly soon.
Virtually any open sourced app on Erbix Marketplace will run on RingoJS as well.
While Java provides many solid and useful frameworks, you may have difficulties with them if you're not a Java guy.Node's module base, on the other hand, is very variegated and the code is awful sometimes (and lacks any documentation except README). But Node community is very responsive and open. Finding help with Java maybe a very complicated task.
you will not get good performance and easy scalability for free - no matter which tools you choose.
also see: RingoJS vs. Node.js: Runtime Values http://hns.github.com/2010/09/21/benchmark.html and the follow up http://hns.github.com/2010/09/29/benchmark2.html
We use it in conjunction with PostgreSQL JDBC driver, serving large source code files, rendering templates written in JavaScript, static files upload/download, etc.
http://www.erbix.com is an Erbix app running on a standard Erbix account.
And, JFYI, you have to move static content to nginx or lighthttpd, Coyote serves static files even worse than Apache web server.
All you say about functionality of the platform has no relation to the speed.
It does not matter either way in practice. People are running large websites on ruby, remember?