While the title suggests I wanted to cram as many buzzwords into the question as possible, I am actually serious ;)
I am exploring my options for building an enterprise application that will have plenty of grids and needs to be as snappy as a desktop app. While operational transformation is going to be a big issue (or rather concurrent edits, with OT a possible approach to solving related problems), the app is unlikely to ever have a large number of concurrent users (starting with 50, probably never more than a couple of hundred).
While SmartGWT seems to solve many of the problems we are facing, the team building the app is very small (probably two devs and a technical program manager). Node.js seems attractive because both devs could work on backend and frontend.
In this context I have a couple of questions:
Is Node.js suitable for this kind of app? It would be very interesting to hear from people and their experiences with Node.js and this kind of app.
Has anyone used it together with ExtJS/SmartGWT? What were your experiences with how these work together with Node?
I am pretty sure it will be impossible to find experienced Node.js devs while finding Java experts is a comparably trivial exercise. Experience with which other languages make the transition to Node.js easy?
I know this is a rather broad question, please bear with me.
Usually this is solved using: node.js+socket.io+backbone.js
But you should really look up: http://meteor.com/ and http://www.firebase.com/
You should pick what technology you already know.
(The rest is IMHO)
I'm a fan of Node.js and Java. However you better have a talented team if you pick Node.js. Although its easier to get started its also easier to really screw yourself in the long run.
Just because the client side code happens to have the same syntax as the frontend does not help you as much as you think. In fact I often have annoying cognitive dissonance when working with node.js as I get confused what I have available (library) or if its client or server code I'm looking at.
Java has some huge advantages when it comes to the server side.
Your concern for finding a Java developer over a Javascript developer is becoming less and less of a concern. Besides talented people are/should be language agnostic.
As far as EXTJS or GWT, I would not use either. Backbone + JQuery + Twitter bootstrap are enough.
I am currently using Exactly the same setup that your question is asking about. I am using Sencha's Ext4 and nodejs to build a massive single page application with lots of grids. We are using sencha architect for most of the UI work, and our database uses PostgreSQL. This setup has a number of advantages and disadvantages.
Advantages:
Disadvantages:
As far as performance is concerned, It is fast enough. I can't really give a comparison, but there are no performance problems yet.