Why Node.js is becoming the go-to technology in the Enterprise

By: Cian O'Maidin

Over the last 18 months the use of Node.js has grown at an exponential rate, it has moved from innovators such as Voxer (www.voxer.com) and Yammer (www.yammer.com) to a group of early adopters that are giving Node.js the credibility required to take it into the mainstream. E-Commerce giants WalMart (www.walmart.com) and PayPal (www.paypal.com) have made big bets on Node while the likes of the world’s most read news publication: – The Mail Online (www.dailymail.co.uk) have implemented Node.js and Netflix are now in the process of implementing Node.js (http://www.infoworld.com/t/javascript/paypal-and-netflix-cozy-nodejs-237593 ) too.

Let’s start with the business benefits:

Rapid-Innovation and Delivery
Increasing competition between rival internet companies, the speed of delivery and the ability to iterate are the key traits of market leaders. In a competitive scenario, reacting to end user needs, incorporating their feedback into the offering and delivering updates and changes regularly is essential.

Developer Happiness
It’s extremely difficult to hire top talent these days; good developers like to learn new things and to use new technologies. The ability to make developers happy in your organisation cannot be underestimated, happy enthusiastic developers means better software, delivered with more passion by people that are having fun.

Bill Scott, once told the story of a new hire that had the choice of going to work for Facebook or PayPal. Faced with similar offers and benefits the developer made his choice, and was quoted as saying.
“Why go to Facebook and do PHP when you can go to PayPal and do Node.js”
- Bill Scott – Dir UX PayPal

[EPSB]

Don’t miss out on the latest Node JS News and Events. Sign up for our Newsletter.

Sign up
[/EPSB]

Easy to attract and retain talent.
It’s true, you can do anything in Java! But what’s also true is that the best developers like to work using new and interesting technologies, developers want to work new technologies which enable more and allows ideas to be expressed quickly and easily.

NodeCandidates

High-Performance
PayPal reported: double the number of requests per-second and reduced response time by 35% or 200 milliseconds.

WalMart Labs had a bumper launch with Node.js in 2013, where they put all of their Mobile traffic through Node.js on black-friday, the busiest shopping period of the year.
The team at WalMart Labs live tweeted against #nodebf tag showing the performance of the Node.js application. On Black Friday the WalMart servers didn’t go over 1% CPU utilisation and the team did a deploy with 200,000,000 users online.

charts

NodeBFTweet

Similarly Groupon re-implemented their system in Node.js which resulted in page load times dropping by a whopping 50%.

The old story of linkedin where moving to Node.js from Rails for their mobile traffic, reducing the number of servers from 30 to 3 (90% reduction) and the new system was up to 20x faster.
Easy to modify and maintain
New services development using Node.js is easy because of conventions that have grown with Node. Writing applications the Node-way means that applications are composed from small modules, which are piped together. Over-time traditional monolithic applications become rigid and difficult to adapt and as new requirements are added. Eventually traditional applications begin to creak under the weight and the stress put on them by the requirements they were not designed for.

With Node.js a group of small applications is developed instead of one large application, this enables a change to be made or new functionality to be added without requiring changes to be made deep inside the entire code-base.
Productivity
Node.js programs are developed using JavaScript, this means that the silos that existed between frontend developers and backend developers are now broken down, and this results in significant efficiencies in the development process. With Node.js it’s possible to merge web and backend teams into one unit which makes things much more efficient. Node.js opens the door to a world where full stack developers make life much better by reducing inter-silo dependencies. Node.js also has a great package management system called NPM, it’s the first package systems for JavaScript to get dependency management right. NPM effectively kills the possibility of experiencing dependency hell. Node also has a vibrant user-land and a very large number of modules are available via Node.js’s package manager (over 60,000 and growing fast)

PayPal measured a 2x increase in developer productivity, where it took half the number of developers to deliver an application when compared to Java, and it was delivered in less time.

The Future of Node.js is bright

Eran Hammer announced at NodeDay (www.nodeday.com) that WalMart are planning to use Node.js across all eCommerce by the end of 2014.

PayPal are rolling out Node.js across their entire web application and Node.js will be used almost everywhere within 2 years.

Although Google have not publicly come out talking about their use of Node.js, there is evidence that they are using it, a simple search on linkedin shows almost 200 people in google with Node.js on their profile. According to an article on VentureBeat: “Googlers are definitely working on Node.js projects – perhaps even something big that will be released to the public in the near future. They’re just not ready to talk publicly about what that might be.”

Yahoo are a long way down the line with Node.js and have 200 developers doing Node.js full time with 800 public modules and 500 private ones.

New Entrants to Node.js such as Netflix and others show that there is big growth happening in this area at present.

Application Areas for Node.js

  • The Internet of Things
  • E-Commerce
  • Payment Processing
  • Social Media
  • Realtime Services
  • Media
  • Enterprise Web Services

Lets add it all together

What if my business could:

  • Use ½ the number of developers to develop products
  • Reduce the number of servers needed to serve customers
  • Reduce Page Load Times by up to 50%
  • Hire top-level engineers ahead of big names like Facebook
  • Make customers happier
  • Make developers happier
  • Retain staff for longer

The answer is a no-brainer, the question is whether an enterprise would be crazy not to be considering Node.js in a very serious way.

For more information on using Node.js and it’s business benefits, talk to @nearForm

By: Cian O'Maidin

Cian O'Maidin is the co-founder and visionary CEO behind nearForm. Very early on he saw how Node.js could help the world work in a better way and is committed to making that happen through nearForm. He is an established Entrepreneur, Node Community Leader, the Creator of NodeDublin and now the Curator of NodeConf.EU. In 2012 Cian was voted amongst the most influential leaders in Irish technology.
  • luglio7

    Impressive numbers.

    • Dimitri

      but look carefully at the numbers and the comparisons. Do a Google search on the web and yow will see that much of what is being said here is not down to Node.js at all.

  • http://andrearossi.eu/ Andrea Rossi

    W-O-W-!

  • karatedog

    And if your project doesn’t use heavy database functions then you could choose MongoDB which also uses JS internally, and has a Javascript based shell.
    And the whole stack (frontend-backend-db) needs only one language skillset.

    • http://burstcreations.com Ilya Radchenko

      Or couchdb, which also is lighter and has a REST interface

      • http://seomadhat.blogspot.com/ Tecniche Avanzate SEO

        +1 per couchdb ^_^

      • pekhee

        I think CouchDB tries to abstract HTTP stuff, it’s hard to say that you can substitute it with DBs.

        It’s more like substituting NodeJS with CouchDB, however I believe these two together rock hard.

    • Mustafa Akın

      Or if you want to lose data, or switch back safe option on and have very low write performance across multiple servers

    • saad Mousliki

      WakandaDB could be also a good option ;)

      http://wakandadb.org/

    • nXqd

      I love the idea of using one language in whole stack. But it’s not true in real world application, at least for big ones.

      • Allan Ebdrup

        I ours it is. 10-14 devs working for 2 years, all JS (and 10 lines of make)

    • Stefano Baghino

      I like both Node.js and MongoDB, but I’d be ware of any kind of monoculture. Not just because different programming languages, as different tools, give you a better option to tackle on certain kind of problems, but also because they tend to embrace different perspective and paradigms to different degrees. Being proficient in many, different programming languages enriches you and makes you a better developer.

  • http://eastasiastudent.net/ Hugh Grigg (葛修远)

    “With Node.js a group of small applications is developed instead of one large application, this enables a change to be made or new functionality to be added without requiring changes to be made deep inside the entire code-base.”

    This isn’t exactly new. OOP with good design principles is intended to achieve the same goal.

    • Allan Ebdrup

      but failed, that’s the difference

      • http://eastasiastudent.net/ Hugh Grigg (葛修远)

        You believe that OOP and Design Patterns are failures?

        • Stefano Baghino

          Their classical interpretation failed when a large and imposing culture formed on wrong premises and deviated from the initial goal of keeping it simple. Often, misusing object-orientation and design patterns lead to over-abstraction and complexity. Instead, the culture around Node has evolved in a way that smoothly transitioned good, theoretical, best practices of modularity and composability into actual enterprise development models.

        • Jason

          The same claim can be made about pretty much every new thing that appeared on the programming field in the last 50 years: procedural programming, mainframe virtualization, Unix, Erlang, OOP, Aspect Oriented Programming, SOA, and Node.JS itself.

          But those are just tools. As Stefano said, it all boils down to the culture and OOP became a playground for over-engineered code.

        • http://tracker1.info/ Tracker1

          Design patterns aren’t about applying a pattern every time it loosely fits though.. This tends to happen a lot in an “enterprise” development shop, often with .Net or Java. Not to mention that using Classes often leads to issues with tracking down the origin of a bug, or the nature of an issue. Testing becomes harder, which means adding layers of indirection and abstraction through interfaces, and even more indirection. I find that simple objects with functional utilities (which is how I write in js/node) tends to be cleaner and more easily tested.

  • Prasanth KP

    Javascript, Node.js, Mongo DB… Bright Future ahead for #JsDevelopers

    • Fail hard

      Mongo DB lol…

    • exfromtheleft

      the mean stack…

  • http://www.breek.fr/ Jérémy Chatard

    The numbers you give are impressive!

  • http://www.GreenIT.fr Green IT

    I’m very interested by that kind of figures from companies using node.js. Does anyone have some ?

  • drhowarddrfine

    “Writing applications the Node-way means that applications are composed from small modules, which are piped together. ”

    For 30 years I’ve been programming, we’ve always called that “the Unix way”.

    • Cian Ó Maidín

      10000% agree,

      Unix: build many small tools that work togther

      Emacs: build a tight core in C, build extensions in other languages

      Node.js is a combination of these.

      • Dimitri

        eh? This is not specific to Unix or Node.js. Small modules to work together LISP, Fortran, C. procedures, functions, objects are all written well in other languages too.

    • Naval Saini

      Cloud9′s open source code is a great example of the same. I love the way they have coded their software.

    • Jon Davis
  • Dimitri

    Someone should explain how reimplementing in node can result in “page load times” dropping by 50%. What does that even mean? What was the bottle neck in the first place?

    • Fatal Fridge

      Well maybe the key is that the service was *reimplemented* – whatever the technology you were using before, you tend to learn from your mistakes, drop legacy dead code, and fix your architecture or performance issues while reimplementing.

      • Dimitri

        I agree with you that changing the architecture has a lot to do with it. I would still like to understand how “page load” times were dropped by 50%. If someone is promoting a technology/architecture they need to provide the details.

        • http://encausse.net/ Jean-Philippe Encausse

          There is article on this subject (don’t have the link) in a nutshell NodeJS is full asynchronous without bottleneck (be carefull with database choice/driver)

          • Dimitri

            Sorry you are blindly repeating marketing trash. NodeJS uses an asynchronous event loop; this does not account for the misleading aspects of this article. The comparisons are questionable to say the least. As lots of other people have said here the key thing is that a new technical architecture has been developed and they have thrown away “technical debt”. I don’t think that NodeJS is bad it has its uses. However, it is is simply wrong to suggest that use of NodeJS has resulted or will result in all the benefits indicated in this article. It is fully possibly to write great and highly performant code on scalable architectures in a variety of languages.

          • http://encausse.net/ Jean-Philippe Encausse

            Dimitri, before blindly writing comments you could search on the web …

            Here is a link of a Java developers comparing NodeJS and Java and saying for given usecase NodeJS is better:

            http://blog.shinetech.com/2013/10/22/performance-comparison-between-node-js-and-java-ee/

            It also explain in his blog Wwhy asynchronous code of NodeJS is better than Java NIO.

            In a nutshell it is because all the NodeJS stack is asynchronous, where Java because of it legacy have some bottleneck.

            Now on the other hand, cleary NodeJS is really young and people have to code things already done in Java for years.

          • Dimitri

            I am not blindly writing comments I am asking a question about what specifically nodejs provided here that explains the blog differences. I program in nodejs and several other languages fluentlly!

            I fully understand the value of Nodejs and understand exactly how it works. I even like it! The asynchronous event loop cannot be waved in a generic way to make the claims made here. Blindly repeating NodeJS is asynchronous does not help. If you do a bigger web search you will come across several blogs which question the numbers that are referred to in this blog.

            I am interested in the comments in this specific piece not on someones toy problem – i can manufacture many examples that can apparently show you NodeJS outperform Java. And they may or may not be relevant here. Btw the author, of the article you reference states very clearly that he is not trying to make a general statement. Back to this blog piece. Benchmarking is a complicated business.

            One can write asynchronously with several languages. The comment made by Fatal Bridge above is probably much nearer the mark. It would be very interesting to understand in the specific cases talked about here what the specific lessons and technical issues were without that this blog is simply a marketing document.

          • Dimitri

            I am not blindly writing comments. I am asking a question about what specifically nodejs provided here that explains the blog differences. I program in nodejs and several other languages fluentlly!

            Nodejs has value and I understand exactly how it works. I even like it! The asynchronous event loop cannot be waved in a generic way to make the claims made here. Blindly repeating NodeJS is asynchronous does not help. If you do a bigger web search you will come across several blogs which question the numbers that are referred to in this blog.

            I am interested in the comments in this specific blog piece not on someone’s toy problem. I can manufacture many examples that can apparently show you NodeJS outperform Java or something else. But they may or may not be relevant here. Btw the author of the article you reference states very clearly that he is not trying to make a general statement. Now, back to this blog piece. Benchmarking is a complicated business.

            One can write asynchronously with several languages. The comment made by Fatal Bridge above is probably much nearer the mark. It would be very interesting to understand in the specific cases talked about here what the specific technical issues were and what was learnt. Without that this blog is simply a marketing (and/or sales) document.

          • Jason

            It was the Groupon team who claimed their load times were reduced by 50%. That’s how they explained it:

            “Part of this is due to technology changes and part of this is because we had a chance to rewrite all of our web pages to be much slimmer. And we still expect to make significant gains here as we roll out additional changes.”

            Here’s the article: https://engineering.groupon.com/2013/misc/i-tier-dismantling-the-monoliths/

  • Jason Young

    Was the traffic really that flat? It seems like there would be more variation in the chart provided. How many servers were being used?

  • https://jscrambler.com Pedro Fortuna

    And sometimes, enterprises will need to use JavaScript protection tools such as https://jscrambler.com

  • http://europa-antiqua-arca.blogspot.com/ clavdivs

    Nobody ever got fired for buying IBM. Still using COBOL and AS/400 here. I’m guessing this installation has seen a lot of trendy stuff come and go.

    • tomByrer

      > Nobody ever got fired for buying IBM

      You’re SOOO correct! http://www.ibm.com/developerworks/web/nodesdk/

    • Jason

      Iteration times with COBOL and mainframes take way too long for anyone to remember who bought what. They just don’t remember who to fire.

  • http://thinksafely.org Scott Dexter

    It’s easy to claim all these benefits when an emerging technology has the luxury of green-field and “let’s start this one from scratch” scenarios. Speed to market is driven as much by the amount of tech debt and legacy crapola than the latest wonderboy on the block.

    We had a similar scenario a while ago (perhaps too long for some of the very same node fanboys to be aware of): Classic ASP. VB on the backend, VB on the front end. What could go wrong?

    • Jason

      Actually, I know of a thousand success cases involving Classic ASP and VB clients. I know of a large brazilian bank that still uses this stack successfully, and a multinational mining company (probably the largest) still writing new stuff with it!

      Tech debt is the responsibility of the team. Yes, maintaining old tech is hard and expensive, but feasible (COBOL is the poster boy here). And it’s very common to see the same thing happening to older Java and C# apps, despite them being safe bets today. Heck, even C has problems with tech debt and maintainability, remember OpenSSL?

      And there’s another difference between Node and VB that should be accounted: Node.JS is open source and maintained by a community. Joyent has money in it but it’s not going away if they decide to drop it. VB on the other hand was closed source, proprietary, and Microsoft actually intended to kill it to give way for ASP.NET

  • sebasporto

    It totally bothers me the title of your post “why .. is becoming the go-to technology …”, big assumption there: that node is becoming the go to tech. Yes, some big companies are using it, but many others are not and not even considering it. That title implies too much, feels like just marketing.

    • Jason

      Hence the “becoming”… And the phrase doesn’t imply that every company out there is firing the whole team to hire JS programmers and start rewriting their systems in another language.

      The point is that it’s on the radar right now. Even Microsoft and IBM have Node.JS offerings, and larger enterprises are beginning to feel safer about JS.

  • rsanchez1

    I love developing in node.js, but I can’t help but feel the developer picking between FB and PP was a little premature in his decision. Now FB is coming out with Hack, seeking to replace PHP, and the developer could have been at the forefront of yet another exciting new language.

  • juliusfoitzik

    I laughed when I read, that a re-write brought performance and loadtime improvements. I think this is not only due to the language but mainly due to the nature of a rewrite.

  • Rahul Chourasiya

    Thanks for such a valuable post. I understood its future scope in a well defined manner and have full faith about your given information.