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. ;)
Archived Comments
We're very much alike, Ray. You know CF will always have a special place in my heart but staying up with the cool new web dev tools is so important.
You did that really nice with techs like jQuery, JavaScript & PhoneGap so it's great to see you continuing on that forward pace with Node.
I expect my traffic to double based on a comment on your blog.
"using Node beyond just simple web pages and how it could complement an existing web application platform like ColdFusion"
I've done the basic web server tutorials, but I'm hearing more and more about Node and feel I should spend some time learning it.
Is Node something that I could use to completely replace Coldfusion & Apache (or PHP or any server side language), is it something that's going to work well alongside it, will Coldfusion be better than Node in some cases and vice versa?
I'm struggling to find examples of people using Node in place of or alongside existing server side technologies.
I'm also fearful that if I love Node I'll not want to use CF again, and then I'll have wasted years of learning Coldfusion - that may be part of my reason for holding back.
CF replaced PHP for me, I don't want to go through that again.
"Is Node something that I could use to completely replace Coldfusion & Apache (or PHP or any server side language), is it something that's going to work well alongside it, will Coldfusion be better than Node in some cases and vice versa?"
Node *can* replace CF. To be clear, it doesn't do everything CF does out of the box. What I mean is - you can do the same types of things. So for example, I'd say the same for PHP, Ruby, etc. All of these server-side things can "replace" CF. Whether it makes sense to or not is another matter. I'm using Node because I want to learn something new.
Can it work *with* CF? Absolutely. As an example, if you do not have CF10 and want to work with web sockets, you can easily build a web socket system in Node and call it from CF.
"I'm also fearful that if I love Node I'll not want to use CF again, and then I'll have wasted years of learning Coldfusion - that may be part of my reason for holding back. "
Pardon how rough this sounds, but that is stupid! :) You should *never* feel like it is a waste to learn something! *All* technologies tend to rise and wane. CF will not be around forever. Neither will Node. But the more you know, the more you grow. (And have better job security.) I've also found that learning more about other programming languages leads to me being better at my existing languages. Many times you see how one language does something and you can apply it to your current language.