A total web recall?

I just spent 10 hours on a plane, watching movies and some presentations and thinking about the web, or, to be more precise, our work environment as web developers.

Two things triggered this: watching the remake of Total Recall and watching the first two talks of the Full Frontal conference.

Let’s start with the talks. A good conference organiser knows that opening with a controversial topic and allowing an immediate rebuttal brings good drama and gets the audience thinking. In this respect Remy Sharp landed a bulls-eye with last year’s Full Frontal conference.

James raises a lot of great points and the one that stuck the most with me is that we are getting complacent about the idea that the web always wins and that the technologies and ideas we used in the past will still be the most important ones in the future. The structure of the presentation is incredibly well done: James starts with advocating a controversial approach to web development that a lot of new developers very much like to embrace and ends with an appeal to reconsider our dogmas when it comes to talking about web standards and development.

As a counterpoint, John Alsopp’s In Defense of HTML explains that using the web stack of HTML, CSS and JavaScript for what they are good at means using a stable set of technologies instead of re-inventing what we have just because we can and because we like to inject idioms of other platforms into the web. It also contains more or less the same passionate appeal to make the web more mature by using what worked but being open to new ideas and needs.

Whilst he makes some excellent points, I think that the subject matter is more subtle. As Nicholas Zakas explains being right doesn’t always matter and the how of why the web works is not the main issue here. It is about demands of the market and ideas of the next generation of developers.

Which brings me to the subject of Total Recall. When the original movie came out it was amazing. The make-up and special effects were great and the story’s twists and turns kept it interesting till the end (despite the movie only being very, and I say very, very loosely based on the original “we can remember it for you wholesale” short story). The movie became a classic and people who grew up with it love to defend it as great even though watching it now makes it look rather camp and dated.

Fast forward to now where a remake of Total Recall was produced that is visually stunning and less “out there” sci-fi than the original. The reviews of the remake read a lot as “lots of special effects, shootouts and none of the original story”. The movie is very much measured in comparison with the old one. And, more importantly, not with how the movie holds up in nowaday’s competition, but in a more idealised version we have made up based on the great memories we have of the old one.

This is what happens with the web. New developers do not violate best practices of the past because they want to. They violate them because they are not sexy or interesting.

What got us excited in the past seems outdated now and the new and shiny and fast-paced is much more appealing. Talking about build scripts, packaging and making CSS easier by pre-processing it is both closer to what we learn in university and sounds more challenging as an engineering task than separating look and feel from behaviour or using the right semantic HTML that browsers don’t do anything with in the first place.

Web Development is not the disruptive, sexy thing any longer it was in the past. We scoffed at desktop applications and their inflexibility and showed the web can do a lot better, faster and in a much more flexible manner. We hacked and did very random things to browsers to make ends meet. A lot of CSS hacks and JavaScript patches seem incredibly painful and odd now, but were needed back then. Nowadays, as the web is more ubiquitous and browsers offer much more than they did in the past this is not a challenge that is interesting and people are looking for building blocks rather than starting from scratch.

There is a massive demand for engineers out there, and they are expected to hit the ground running. This is why we should not be surprised that using existing libraries and frameworks is what engineers want to do instead of learning the trade from scratch.

Instead of advocating a very idealised and romantic version of what the web is and how to build for it it might just be the time to focus more on the building blocks people use and pool our knowledge and resources to make those better and result in clean code we all can enjoy. This is a big challenge, but I think it makes more sense than condemning what is new as shiny and short-lived considering that a lot we did in the past was exactly that. With more advanced technology we have a chance to make more complex and impressive looking mistakes. Maybe we are doomed to repeat this over and over again until we reach a level of understanding.