BAM! Blog

Why is Enterprise Not Afraid of Node?: The Case for Node.JS

Written by Ethan Brown | Nov 10, 2016 6:00:00 PM

With the exception of companies like Google, large enterprise corporations tend to be very conservative about new technology.  So why doesn’t enterprise seem to be afraid of Node, a technology that’s only been around since 2009, and has only started to come into the spotlight in the last few years?

The answer lies in the fact that, while Node itself is new, the technology it’s based on — JavaScript — is not.  JavaScript is an entrenched, ubiquitous language that completely dominates in the browser.  Node is simply a way to use JavaScript on the back end.

I was asked today if Pop Art has any experience with Node.  It’s always a laden question: clients (or potential clients) want to feel confident that you can deliver, and nothing inspires confidence like being able to point at a lot of successful projects.  While I couldn’t honestly point to any Node-based implementations we’ve rolled out, I could say with confidence that Node is not new technology for us because it’s essentially JavaScript on the server, and we are experts in JavaScript.

(Editor’s note: Since this blog was posted in 2014, we’ve completed dozens of successful projects in Node. You can check some of them out at our Work page.) 

To make an analogy, let’s say your CEO got kidnapped on vacation in France (yes, this is going to be an overly dramatic example), and you need a hostage negotiator, so you start (quickly) shopping around.  The first hostage negotiator you talk to specializes in business kidnappings.  He doesn’t speak French, but he is passionate about the language.  “I’m so excited about French,” he says: “it’s such a fascinating, rich language.  I just got done with my first Rosetta Stone module!”  The second one you talk to has been speaking French for over a decade, but has mostly experience negotiating the release of children, not adults.  Who do you go with?  The one who speaks fluent French, of course.

Unlike hostage negotiation, most of our jobs aren’t life-or-death scenarios, but insofar as our careers are our lives, we’re deeply invested in hiring the people who can get the job done.

It’s not a perfect analogy, but it’s pretty good.  JavaScript?  Yeah, I know that stuff backwards and forwards.  Oh, I can do it on the server side now?  Cool.

Given its meteoric success, it’s hard to criticize Node’s marketing, but sometimes I wonder if the adoption wouldn’t have been even faster if it had simply been marketed as “Server-Side JavaScript”.  More unwieldy, perhaps, but it almost completely removes the suspicious scent of new technology.

If you tell a businessperson, “let’s do this in Node”, they might say “hm, that sounds like new technology to me.  Let’s stick with Java.  I’ve got a bunch of Java guys.”  If, instead, you said “hey, let’s do this in JavaScript,” they might instead reply “you mean I don’t even need Java?  Or PHP?  Or .NET?  Yeah, all the nerds down in the cage have JavaScript on their resume, let’s do this.”

In contrast, Ruby, which was once the cool new thing, never got the same traction that Node has.  It’s certainly not because JavaScript is somehow better than Ruby (I happen to like JavaScript better, but that’s irrelevant): Ruby is a capable, robust language, and Ruby on Rails can significantly decrease development time.  But it’s a whole new language (and a pretty alien one at that).  Programmers have to start from scratch.  Yes, it’s cool, and yes it offers a very efficient development environment, but that’s a harder sell for PHP, C#, and Java programmers.

On the other hand, if your work is related to the Internet in any way, you probably know JavaScript already (even if your primary language is PHP, C#, or Java).

Of course there are details I’m glossing over.  There’s a lot more to know about server-side programming than the choice of language.  Understanding web architecture, networking issues, scaling, and databases are important areas as well.  That said, the choice of language is what glues all of these things together, and having a common language is much more than half the battle.

Maybe I’m traveling in the wrong crowds, but I’m also not hearing many people grouse about JavaScript.  Three years ago, it was a different story: it was an oft-maligned language.  But that animosity seems to have all but evaporated, and people are discovering that JavaScript is actually a very pleasant, capable language.  On the other hand, you don’t have to go far to find people complaining how much they hate Java (mainly because Java, and J2EE in particular, has become unwieldy), C# (because it originated in Redmond), or PHP (because it’s clunky).  Let’s not even get started on Objective C: poor, poor iOS developers.

To make a human language analogy, JavaScript is like English: no matter where you go, for better or worse, everyone speaks it.  Languages like Ruby are kind of like Esperanto: a great idea that’s never really going to catch on (no offense to the Ruby community — by all means, prove me wrong).

I’m not saying I want a homogenized world where JavaScript is the ONLY language: how boring would that be?  What I do want, though, is to make amazing things, and for the foreseeable future, I’m going to be making amazing things in JavaScript.

 

 

Originally posted January 6th, 2014.