Node.JS, LAMP, and The Future

I just read an article about “Node.JS and the JavaScript Age.” It was from a very “enthusiastic” point of view. My guess is they had tinkered around with Node.JS and using with client-side JavaScript rebuilding their Dashboard. You can do some pretty cool stuff with it, and it has a lot of potential. It is very easy to install and get going, much like Redis. Here ia an excerpt from the article:

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.

III. 2010-??: The Javascript Age.

The Javascript age is about event streams. Modern web pages are not pages, they are event-driven applications through which information moves. The core content vessel of the web — the document object model — still exists, but not as HTML markup. The DOM is an in-memory, efficiently-encoded data structure generated by Javascript.

LAMP architectures are dead because few web applications want to ship full payloads of markup to the client in response to a small event; they want to update just a fragment of the DOM, using Javascript. AJAX achieved this, but when your server-side LAMP templates are 10% HTML and 90% Javascript, it’s clear that you’re doing it wrong.

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?

Basically, it is a lightweight framework wrapped around Google’s V8 JavaScript Engine. V8 is the JavaScript engine that powers Google Chrome, their open source Web Browser. Another part of Node.JS is that it is event based, which can make is very quick and efficient.

I’ve been tinkering with Node.JS for a couple of weeks, and it is very interesting and has a lot of potential. It’s unique scoping with JavaScript and event-based methodology makes certain things easy to accomplish that are more difficult in other traditional tools. There are some pretty cool libraries for Node.JS like Socket.IO, a library to support multiple transports using feature detection. So if your browser supports WebSocket or Adobe Flash Socket, it will use that, or AJAX long polling and multipart streaming, or even the Forever Iframe technique. So your application will use which ever type of communication is most efficient.

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.

4 thoughts on “Node.JS, LAMP, and The Future

  1. It is generally safe to knock down the respectability of an article by 50% when claiming that some tech is “dead”. I still have multiple radios (and one in each car) despite TV having killed it off decades ago 😉

    Like

  2. It seems that every few years a new technology comes along which gets a bunch of people excited and they want to rewrite the world in this new thing because it’s so cool. But it’s a lot of work to rewrite everything in sight and I suppose managers are reluctant to invest in that just because something or other is cool. On the other hand the LAMP stack has serious architectural problems and PHP is a horrible language. There are a few things which event driven servers do a zillion times better than LAMP – research the beginnings of COMET and you see people describing a need for which Node.js is the perfect solution.

    Like

  3. Hey . . . I love PHP . . .

    I think node.js will some how just be added on to it. . .

    Like

  4. At ConversionDoubler.com we are using Node.js and Mongo side by side with our LAMP stack. For a lot of our data, we want relational connections in the DB, and we want NoSQL for the analytics and logging data. We want node for loading millions of simple requests, and Zend Framework for our complex app and reporting. I think you are right, they will supplement each other.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this:
search previous next tag category expand menu location phone mail time cart zoom edit close