Google tech talk on Node.js
youtube.com
youtube.com
"The first time I heard about Node.js I thought, What a crazy guy he's trying to put JavaScript on the server when everybody is trying to put Java on the client"
Personally, I stopped trying to put Java on client in the mid-90s.
EDIT: Look what I found: http://geddyjs.org/
I actually like the situation with node. Bunch of independent modules for middleware, ORM, routing etc that I can throw together myself. Less magic, more clarify of what does what.
connect, geddy, and (fab) all look good for this purpose and I hope to look into them a bit more when I have a chance. For now I'm just gluing things together with node-machine at the core.
Besides it being flat-out wrong that mastering a framework takes longer than building one (you will have to support it), the typical framework is a lot larger than the code of the applications built on top of them.
Building a framework is a bit like writing a DSL, a good framework abstracts out the work that would otherwise be duplicated many times over and will help to standardise the codebases of various projects and will help to allow integration of bits and pieces from different projects in a re-usable way.
There is a reason why rails, django, drupal and a bunch of others are wildly popular, they save people oodles of time.
Choosing a framework limits your choices. If I'm using Django, it won't work (or work well) with a non-rel backend. If I'm using jQuery and I need to update one of the libraries (say jQuery UI) I might have to update jQuery as well, etc.
What you think saves oodles of times doesn't always. The odd bug, the odd crash etc that keeps popping up may have roots in the framework that you chose and that you're using without having knowledge of its internals. The framework might make your app much slower and cost you in terms of hardware.
Not using a framework is harder work initially, but with the right libraries it isn't that big of a leap. Picking up a smaller framework with libraries can be a surprisingly easy and a lot more flexible when your needs end up being different from what the framework intended.
Ofcourse, there is a flip side to it all and I understand your point :) Micro-frameworks are the best IMO, not the beasts that Rails/Django are.
The reason is fairly simple, new stuff usually contains tons of bugs and it remains to be seen if it is still going to be around a few years down the road.
I'm a coward that way, but when my income is on the line I don't want to be beta testing someone else's code without having a very good chance that the problem I'm trying to find is mine and not some bug in underlying code.
For hobby stuff and learning I love to play around with new things, as soon as it is 'business' I'm a lot more conservative.
I agree with the general sentiment of playing it safe when your income is on the line, pecially because there's a lot of fanboyish hype around these projects.
However, its not just about "new tech", its about tech that works the way your mind works. Some things mature quickly and have the right mindset (Django, clojure, node.js, couchdb for me) and others have a longer/more painful learning cycle where the community struggles along with the leaders (rails (again, this is just my very personal understanding!)). Some things mature but don't align with what you think is right (php, java).
I've found node.js to be special. It has gained maturity relatively quickly, the libraries seem to be lightweight, good quality, its a language that will run both on the server and the browser (hello code reuse).
That being said, Node has a strong community and a lot of momentum. There are some big name companies like Yahoo and Plurk that use Node today to build stuff that matters.