A revolution is all about a mass uprising. To cook up a revolution, you need a few key ingredients:
- A mass of people with a common cause (it also helps if they’re really pissed off with the status quo).
- An articulation of the cause, ideally presented in a digest or pamphlet form for easy consumption.
- And of course, a way out. In other words, a real, tangible way out of the existing status quo.
The last bullet is key because it’s not enough to just pass off some fantastical scheme to change the world. The way out needs to make sense and be somewhat grounded in reality. In other words, you need to enable and empower the masses. The status quo can really suck but if the masses don’t see a way out and feel confident in it, you’re not going to get that mass uprising.
Notepad.exe Is Mightier Than The Sword
Fifteen years ago or so, the Web showed up and almost immediately, the masses were armed. Just about anyone could quickly make sense of HTML. You could create an experience…with graphics! Soon after, you could add sound (.wav files!) and animation (animated GIF’s!) to really create an amazing (at least it felt that way back then) experience. Let’s forget for a second that anyone in the world could visit your creations. Let’s go back to…oh I don’t know…1989. What would it take to create an entire interactive experience that included content, graphics and sound? Forget word processing documents. You can’t really interact with those. You needed development tools and a computer science degree.
The content explosion that became the Internet eventually would evolve even further as non-programmer types slashed and hacked their way through old-school Active Server Pages. Other technologies like Coldfusion and PHP sought to take the masses even further. You didn’t need a computer science degree to change the world.
Meet The New Boss, Same As The Old Boss
Before you knew it, really exciting things were happening on the web. Web applications were starting to feel like real (i.e. desktop) applications. And the line between the browser and the desktop was getting a whole lot blurrier.
Throughout this Second Coming, various technology leaders began putting forth technologies to truly marry the power and reach of the Web and web services with rich, powerful clients that run on your desktop. In addition, frameworks like JQuery and Prototype have made rich web building a lot easier (thought it’s still pretty hard).
And so the race has begun to convince the masses to yet again join another revolution. There’s just one problem: there is no way out this time. The scepter has been handed back to the former ruling class. To really create exciting things, you need a computer science degree. Actionscript 3, the backbone of technologies like Flash, Flex and Adobe AIR is a full-blown strongly-typed programming language. Microsoft’s Silverlight and WPF simply arm the masses that are already building .Net desktop applications.
How important is empowerment? Why not just let the computer scientists do their thing? It’s important because when you empower the masses, you discover new conduits towards invention that you would never otherwise reveal. The Web today is a great example of this.
"Take Everything You’ve Learned And Chuck It Out The Window"
So what can lead to empowerment? Let’s revisit the good’ol tags that got everybody giddy in the first place. Here’s how you drop an image into a web page:
- <img src="[the location of your image file goes here]" />
I’m of course excluding a whole bunch of optional attributes (width, height, etc.). Now let’s see how you drop images in Adobe Flex:
- <mx:Image id="loader1" source="logo.jpg"/>
Microsoft’s XAML is a real beauty. At first it seems somewhat innocuous:
- <Image Width="200" Source="myimage.jpg"/>
But it turns out this is the bad way to do it (i.e. it uses up more application memory). Here’s the proper way (comments are Microsoft’s, not mine):
- <Image Width="200">
Now here’s the near-miss from Mozilla’s XUL:
- <image src="images/banner.jpg"/>
So problem number one: the mass
es have a already invested a ton of knowledge in an existing markup language. Yes, we’ll no doubt have to augment it to accommodate all the new fancy stuff, but why mess with what people already know (and technical reasons do not count)?
Weapons Of Mass Adoption
Beyond leveraging what people already know, the real damage is caused by abandoning the philosophy that made the web so accessible to so many in the first place. Let’s play God and create a few new tags:
- <minimize action="toTray">
- <audio href="…">
- <video href="..>">
- <map zipcode="10017" height="…" width="…">
- <slideshow> … </slideshow> (used like the <ol> or <ul> tags.
- <div draggable="true">
- <image resizeable="false">
- <widget href="…" width="…" height="…">
You get the idea. On top of this, you could implement existing web code to do some new and exciting things. An RSS feed? It’s a perfect alerting system. Just add a couple of attributes that turn on intermittent desktop alerting as new updates.
There are many other examples. I’m sure programmers will scoff at the "gross oversimplification" of these suggestions. But guess what, that’s what the Web 1.0 revolution was all about: gross oversimplification. The brilliance of the invention was not some algorithm or infrastructure change. It was the handful of readable instructions that made the web accessible to a much broader audience.
The Adobe’s and Microsoft’s of the world should take heed. If you really want a revolution to happen, start paying attention to the masses that do not know a lick of object-oriented programming and start handing them the weapons. Yeh they’ll fumble at first, but before you know it you’ve got an army.