Back in 2009, which I reckon is about 5 programmer-years ago, I heard about this new-hotness called Node.js. I’ll admit that, initially, I was a skeptic. I assumed it was a fad, or a niche technology, that would never get off the ground. Like everyone else, when it comes to embracing new technologies you win some and you lose some. With Node.js I had the chance to get in on the ground floor, and I totally missed the boat.
“Seriously? What, did you have leftover analogies in the fridge that were going to go bad?”
Don’t mind him, he’s just my inner monologue. You’ll see him pop up from time to time to call me out, or perhaps add something meaningful to the conversation (but I doubt it).
“Hey! At least I told you to give Node a shot, but no, you wanted to learn more Ruby.”
But, Javascript is a client-side language right? It couldn’t possibly make a good server-side language. You couldn’t possibly write a web application in just Javascript, right? Turns out it does, and you can. The reasons why, at this point, are clear. Javascript is a succinct, expressive language that is easy to understand but does not hold you back. You can make things as simple or as complicated as you like, and being a prototype language it’s easy to extend. But is that enough? Probably not, there are plenty of other languages that offer similar power and expression.
“What? Like Ruby?”
Ok, I get it. You were right, I was wrong. Can we move on now? I don’t regret spending more time on Ruby, but I regret ignoring Node. Writing both ends of your web application in the same language is so beneficial to both productivity and maintainability that it’s almost comical we’ve done anything but in the last 5 programmer-years. If you run a business, hiring 2 Javascript programmers is a much better investment than hiring one Javascript programmer and one <insert back-end language here> programmer. The returns in productivity and collaboration would be fantastic; not to mention that if you experience some turnover, or someone is out sick, anyone on the team can step in.
I will cut myself a little slack on my original concerns over performance. I don’t think anyone could have foreseen the performance we’d get out of the V8 javascript engine. It was light-years beyond the javascript engines available prior. Up until that point, I personally considered Javascript slow, and actively avoided using too much of it on the client side. I would have told you that you were crazy if you told me you could get higher throughput on Node than Apache. But V8 changed all that; the other browser makers saw the potential in what the web could be with better performing Javascript engines and improved their own engines to keep pace with V8 (or try). Now Javascript can perform equally on the client and server side, and is actually considered the answer to performance and scaling problems seen by more traditional stacks (PHP + Apache for instance).
I’m a believer, no longer a skeptic. I believe that Node is the start of something new in the world of web applications. I’ve decided to learn Node and to write web applications leveraging it, as well as other new technologies and Javascript libraries that have evolved in the wake of Node’s success. Some of these libraries aren’t directly related to Node, but I believe they were born out of the realization that Javascript is a first-class programming language and can do all the same things other languages can do.
“Oh, so, what? You’re some kind of evangelist now? You’re going to step up on to your soapbox and teach the unwashed masses about the greatness that is Node?”
Well, sort of. I would guess there are a lot of people out there just like me: professional programmers who have lives outside the office and limited time to evaluate all the new technologies. If I had all the time in the world, maybe I wouldn’t have shied away from Node so quickly when I first heard about it. Maybe I would have tried to learn more, or tried to get involved in the community. What I want to do is share my learning experiences about Node with people like me, people who only have time to read some poor schmuck’s blog for 5 minutes while they’re on break. So that’s that, I’m going to learn about Node, and you’re going to read what I write…or not, it’s up to you. However if you are at all interested in learning Node, or at least curious to find out if it’s something you could be interested in, then maybe you’ll come Node with me.
“Wow…did you just…did you just make a Frank Sinatra/Nodejs related pun? I don’t even…”
-
http://www.alvinashcraft.com/2011/09/27/dew-drop-september-27-2011/ Dew Drop – September 27, 2011 | Alvin Ashcraft's Morning Dew
-
Vijay T
-
http://blog.robertgreyling.com RobertTheGrey
-
Drew Peterson


