If you’re using Node.js, you’re evil.
Node.js Development
Liked that headline?
It’s called an grabber. If we wanted to be more dull and had more space for a headline, a more accurate would be:
“If you’re using bleeding-edge Technology, you might be putting your client at risk, and if you’re a client and asking for Node.js without understanding the ramifications, you might be putting yourself at risk.”
See why the headlines in your newspapers might seem bias?
Allow us to explain.
We pick on Node.js, which we happen to love and think it’s going to be more revolutionary in the Web Development world than the plethora of MVC frameworks such as Ruby on Rails, Grails, Symphony, CakePHP, and the thousands of others that sprang up over the passed eight years. But the fact of the matter is, Node.js is young.
Node.js is an event-driven I/O server-side JavaScript environment based on V8. It is intended for writing scalable network programs such as web servers. It was created by Ryan Dahl in 2009, and its growth is sponsored by Joyent, which employs Dahl.
So as amazing as it is and will be, Node.js is two years old.
That brings up two points
- It hasn’t reached that milestone 1.0 release yet
- It’s going to be damn hard to find expert resources who can use it
Does this mean that Node.js is a non-starter?
Absolutely not. In fact, we’ve used it for a few of our projects.
However, companies hiring developer agencies and agencies pitching companies need full disclosure and honest discussion before making the decision to use Node.js or any other bleeding-edge Technology.
Yes. We here the “Duh’s” coming now.
But, seriously, we’ve noticed two pretty scary trends.
First, developers and programmers love to play with new toys. It’s what keeps us interested in our jobs. If we just banged the same nail with the same hammer, using the same motion day after day, we’d probably shoot ourselves in our collective heads.
However, new Technology can be like tuna in shark-infested waters (hey, it is Shark Week). Developers swarm to it and clutch it like the One Ring.
Suddenly, it becomes a magic hammer that can do all things.
So, logically, every time they pitch a prospective company, they extol the virtues of this new Technology.
Here’s the problem. Most agency-company relationships are temporary. What happens when that relationships is over?
Even if the agency delivered a pristine project, they’re potentially still leaving the company in a tight spot.
Some maintenance will have to happen and if you used a bleeding-edge Technology, you’re making it harder and more expensive for the client to hire a full-time developer to come onboard and do the maintaining.
Think of it as temporary vendor lock.
Clients aren’t completely innocent, either.
We’ve also noticed requests for proposals that specifically say to build the project using Node.js (or another bleeding-edge Technology).
We understand the attraction. The web buzzes with the next best thing, and clients want the next best thing now.
However, they need to be aware of the consequences.
What’s the solution?
It’s simple really. Communication. Explain the risks. Clients willing to take the risks may reap the benefits that the Technology offers. And check yourself. Does this project really benefit from being built in Node.js?
At this point, chances are it won’t.
There are reasons you don’t see Formula One cars on the US-1. Sure, they have their place, and when you need maximum performance, that’s what you go for.
But ask yourself if you’re using a grenade to eliminate and anthill.
Bleeding-edge technologies work best when they’re used for a specific purpose with a transition plan in place.
For example, if we know that an application we’re building will require significant asynchronous or real-time processing, we’ll give Node.js a serious consideration to supplement Rails as the backbone (as opposed to EventMachine).
However, in an ideal situation, the client contracting us will have a developer on staff whom we can train as we go to eliminate the negatives we mentioned above.
So, keep using Node.js, you non-evil people. Maturity requires adoption. But make sure you consider the negatives and the risks to your client before you run with your latest toy.
You may poke some eyes out.
