Designing Web Applications In A Postmodern World

What Do You Mean Postmodern?
Do you remember when every site you went to asked whether you had Adobe Flash Player installed? Do you remember having to watch a loading bar get to 100% before you even saw a glimpse of the website you went to? Or how about waiting for every single sliced image to render in a page? It may seem odd for me to making artistic/social theory references in web, but if you think about it for just a second I might just be on to something. Follow along and you’ll see what I mean.

What Went Wrong? New Technology is Awesome, Right?
So modern technology was moving along quite rapidly, it seemed as though everyone was on board, and then we changed our minds? No. Like most things in our world it was the economy and market that drove the change. The idea of phones that ran applications, widgets on your desktop, asynchronous data transactions, an open source web browser called Firefox, and increased demand for faster build time brought us to this point.

We Wanted It All And We Wanted It Now!
Probably the biggest draw back to applications built on Flash/Flex and Java platforms is the load time. We live in an impatient world where we can transfer money between bank accounts in seconds, but when it takes a minute to load a webpage that is not acceptable. Thus, we weren’t satisfied with waiting. What held us back was admiring the sheer beauty of these applications. In a word we were: hypnotized. It was all ok and we could deal with our ignorance until we invented…mobile devices with apps.

Mobile Devices
Taking the world by storm would be a major understatement. This is a prime example of the market influencing development. Mobile devices have come along way and are now capable of downloading websites at the same rate of your modern laptop or desktop. The problem is that a lot of those visually stunning sites don’t show up too well on your iPhone, well at least at full resolution. Instead, mobile sites work best when all the complexities of the site are taken away and the user is provided with just the basics of the site. It may seem mundane, but it suits a purpose. Mobile users want to do tasks with speed and simplicity, not waiting and missed clicks.

Universal Data Structures and REST
It used to be that data could come across in a few different formats based on which application you were running. This was difficult to handle because you ended up writing a script to parse a certain type of data. And, when it was all said and done you had 4 different parsers for 4 different formats. In recent years two formats have made their way to the forefront: XML and JSON. What makes these two work is that most modern languages are able to read these formats. Paired with these data structures is the growth of RESTful APIs that allow data to be easily captured and manipulated. Without RESTful APIs accessing data can be tedious and creating endpoints for users to use can be even more difficult. These things combined have inevitably lead to the concept of cloud computing. I won’t go into it here, but you should definitely read up on it.

Browser Compatibility, CSS, And Javascript
The biggest catalyst of all had to be the advance of browser compatibilities. Remember, when Internet Explorer had nothing in common with Netscape? Did you ever just make two different CSS files? One for IE and one for the rest? You might still do that, but the reality is that it is getting easier to work across all browsers. In the past though the only way to handle such dilemmas in a complete manner was to use browser independent applications written in Flash or Java. Now, we’re finally moving on.

Where We’re Going
Like most postmodern movements, we’re going back to the simplicity that we all long for. Flash and Java, although still alive, are being used less in favor of javascript libraries like jQuery and MooTools. CSS has made great strides in dividing the line between what HTML is really for, content only, and styling a webpage. Beyond just client-side software, server-side software has moved to a MVC (Model-View-Controller) architecture, which in many ways is the simplification of tasks on the server. All these things combined create a development environment that proves to be lighter, easier to use, and ever expanding with possibilities. They may have not been the chosen technologies of yesterday, but we’re going back to them just like in any postmodern movement. So the next time you decide to build a web application or website for that matter look at what this postmodern era has to offer.