I realise this is a very subjective topic but IMO node.js from a development point of view, is much faster to market for a traditional web app than a Java application.<p>There's been many blogs and topics over the last few years espousing why it's a more productive environment to work in. I'm sure Amazon and possibly Ebay 3 or so years ago officially blogged the benefits of using node.js for prototyping applications in the sense of agile development. I can't remember exactly but I think Amazon wrote how they were able to reduce their development resource requirements to 10% of what was needed previously by Java developers (for a particular app they wrote), using the same developers after they were retrained.<p>I love the fact that I can write isomorphic applications and debug them both front and back end in the same environment. For many Java/C# etc developers this loose typing and functional type programming is alien to them but IMO, developers once they understand the language semantics, should be able to cope with that easily.
I'd like any opinions from others who've worked in the same legacy environment and moved to node.js to discuss the pro's and cons.<p>For me, there are a few cons. Moving to a weakly/loosely typed language. No precompilation. Functional/callback design. An ever changing world of ECMA compliance. Lack of tooling.
I can argue all day the opposite of those cons (e.g. typescript) but one of the issues I struggle to defend is the churn rate in any libraries you depend on.
I wholly support express.js becoming the standardised web framework API in the node.js foundation, however there's huge churn in the number of required libraries you may depend on and which inexperienced devs may add without researching their suitability or how stable they are.<p>NPM is great but those modules might be useless in 6 month, a year or later depending on how they're supported.
When considering bringing in a new technology, start off small. Start tinkering on something with low risk, low profile. Heroku is a great place to put an app you're working on, without having to also worry about the hosting stack side of things.<p>Often, getting people to think about new technology is about showing them what you can do with it, after actually building something useful they see value in.<p>It's about winning people, not winning technology.