This decision was driven by a realization: the LAMP stack is dead. In the two decades since its birth, there have been fundamental shifts in the web’s make-up of content, protocols, servers, and clients. Together, these mark three ages of the web:
I. 1991-1999: The HTML Age.
The HTML Age was about documents, true to Tim Berners-Lee’s original vision of a “big, virtual documentation system in the sky.” The web was dominated by static, hand-coded files, which web clients crudely formatted (with defaults that offend even the mildest of typographiles). Static documents were served to static clients.
II. 2000-2009: The LAMP Age.
The LAMP Age was about databases. Rather than documents, the dominant web stacks were LAMP or LAMP-like. Whether CGI, PHP, Ruby on Rails, or Django, the dominant pattern was populating an HTML template with database values. Content was dynamic server-side, but still static client-side.
Claiming LAMP is Dead is Reaching
It goes on to explain how LAMP like architectures dead. I would think that is a very overzealous point of view, and to perhaps put it in some perspective:
During each of these “Ages” new technology was developed to solve problems. HTML was created to create inter-linking information. As the demand grew and became more difficult to manage, LAMP like tools like PHP, Django, Ruby on Rails, and others were developed to help make delivering this information easier. It wasn’t so much replacing the previous technology, but adding on to it. Sometimes you will replace older technology with newer ones, but we’re still using HTML & CSS, and augment it when needed.
But LAMP-like systems are deployed in production all over the place, powering some of the most visited websites on the net. While there are some people who are using Node.JS, like Yammer, but Node.JS isn’t serving nearly the volume of content like PHP, Ruby, Python, or event .NET.
What is Node.JS?
A Little Bit of a Reality Check
But lets be honest for a moment, Node.JS was created in 2010. It is still very, very young. In the video on the front page of the Node.JS is a video of it’s creator presenting to a PHP Users Group about Node, and even cautions using it in production. It still has a long way to go to maturing as a tool. Granted, being based off the V8 Engine brings a lot of maturity to the project.
As for replacing technologies like PHP, Ruby, and Django, I’m extremely skeptical that they are “dead.” Instead, I see Node.JS augmenting our existing technologies. Like how I’ve implemented Redis as a data store where MySQL was poorly suited, I see Node.JS functioning as a tool for real-time communication for the future of websites.
I hope to write more about Node.JS, and look forward to using it to solve new and unique problems. But I won’t be rewriting all my websites in Node.JS, it would be a nightmare. So like with NoSQL, and Cloud Computing, yes it is a new tool, but it won’t radically remove everything else up to this point. Like with Redis, I didn’t get rid of MySQL, I just use Redis when it is a better choice.