Stop the Emulation
Over the last few years, DHTML applications have imitated more and more of the sort of things we find in richer web apps; such as eliminating the “page” metaphor where sensible (and therefore the meaningless refresh), more efficient data loading, drag and drop, transitions, and so on. But that progress (or “catch-up”) is slowing rapidly. We are reaching the limits of what various browsers can do natively, and it’s no good hoping they’ll bolt on lots of shiny new features, all in agreement; that would destroy the value a browser gives in the first place. What best of breed AJAX applications like Google Docs currently offer it isn’t even close to what people are starting to expect in a modern RIA. Isn’t time to stop crowbarring the proverbial round peg into the square hole, there are easier ways to do things that won’t cause you to lose your hair.
The browser is very limiting. This is primarily because *it* is actually *them*, and *they* have to move at the pace of the open standards or make an entire community of developers suffer even more headaches. Backwards compatibility is always a sore-point, but that’s usually delt with through a layer of abstraction (bytecode perhaps). Flash and Silverlight on the other hand benefit hugely from being (to some extent) “closed source”, they can improve and evolve year on year without fear of revolt from the development community. Flash 1.0 content still runs as it did 10 years later, I found some Flash 3 content on the BBC website the other day, it doesn’t know that there have been countless browser releases since its conception… it doesn’t need to, that’s a big difference.
Anything that is “open” or led by committee moves very slowly. This is again a generalisation, there are several open source projects that have kept up the pace, but to be honest these are usually funded or motivated in some form by a commercial interest. This slow pace and time spent debating really goes against the grain when it comes to how fast technology evolves. Things simply get left behind and replaced with a better offer, and when the thing being left behind is your skill set, it’s time to take note.
But people are taking note. Finally I read an article on Ajaxian that took the issue seriously, yet almost none of the commenters did, heads buried in what they know they tried to dig the poster out of the hole rather than making the realisation themselves. It’s definitely worth the read for comedic value at least.
Solutions and Alternatives
So what tools do we have to build the new web? Flash, Flex, Silverlight, Air, Widgets, JavaFX, to name a few. When you see massively successful and future thinking companies like Microsoft, Adobe and Sun all investing heavily into something you should pay attention.
Still people think Flash is bad. There are some crazy misconceptions out there. Some of the more popular include…
“AJAX is testable, Flash isn’t” – Tell me that again when my unit tests have finished, or do you mean testing it in various browsers?
“Flash is not as accessible” – I wonder if people are still reading Jacob’s 7 year old entry and thinking it still applies. Even complex Flash applications can be screenreader friendly (can DHTML?), alternatively offer a HTML version if it’s really suitable (sometimes I wonder why people want to make certain content accessible in the first place).
“AJAX doesn’t require an expensive IDE” – There are countless totally free pieces of software for all major platforms to enable professional Flash and Flex development. The SDK/compiler is also free.
It’s not just the aforementioned companies that know this. Google knows this, and is introducing more and more Flash into its web apps and services. But it’s not all about Flash. Let’s look at Google Android for example (something really groundbreaking in my opinion). Google’s Android OS uses a custom layer on top of a Java syntax to provide its UI and interactivity; you’d think that the king of all AJAX applications would have opted for DHTML if it really was the best choice. It’s not, it’s fast becoming one of the worst choices for applications unless you are an industry behemoth that can write perfect code and don’t want to make your clients hate you as you continue to charge them for needless maintenance year on year.
What Lies Ahead?
Recently I was speaking about this subject with a fellow developer and they said -regarding the current lack of Flash developers- “it’s great for us though right?”. In a sense yes, but there’s such a demand right now for good Flash and Flex developers that we could quadruple the number and there’d still be plenty of work for everyone. Interestingly I’m noticing colleagues that haven’t touched Flash before are downloading Flex Builder, and really enjoying it, perhaps Flex has finally made Flash seem more serious, maybe it’s just to avoid the confusion of an uncertain future.