For some time now I've complained that I couldn't quite get why node.js was so popular. Don't get me wrong - I like JavaScript. But every time I saw a demo it was the same damn thing again and again. A web server. This put me off and made me much less inclined to look deeper at the language. You see - one of the things I don't get about some of the other "cool kids" compared to ColdFusion is that they don't seem to have great support for web applications. The languages seem cool. I played some with Ruby and found it to be very neat. But what I didn't get is why web stuff was a) either an afterthought or b) left to various other open source frameworks that you were supposed to just know about. To me - ColdFusion has always been a great platform for both the language and what it did outside of the language. Application support. Simple sessions. Sure, I can't use it to build a desktop application or a native mobile site - but I could certainly use it to build a data layer for it. Fair or not - that was the perspective by which I judged other languages like Node and Ruby.

I think - though - I was being pretty close minded. First - I learned more about Node from Sim Bateman at cfObjective. He demonstrated using Node beyond just simple web pages and how it could complement an existing web application platform like ColdFusion.

Next I read this excellent post by Andy Matthews about unit testing with Grunt. What surprised me was how npm, a Node package manager, actually was able to install an executable script to my system. All of a sudden I could see myself using this Node-related tool to complement my HTML5/ColdFusion/whatever applications.

And then - literally like an hour or two later - I read this post by Pamela Fox about how she uses the same tool as part of her build process.

To be clear - I have no objections to learning another web-based product. I love ColdFusion. But other cool tools out there exist. But I made a big mistake in thinking of Node as just a ColdFusion alternative.

Forgive me - I can be a bit slow. ;)