We Have Ubiquity and Rich Tooling — What’s Next?

I spend a lot of time ‘trawling’ the web, often just getting swept up by the tide and coasting from information island to information island. Yep its a time sink, has a hugely negative impact on how much sleep I get and isn’t terribly efficient. The operant conditioning of link surfing keeps me going long after I should, but the intermittent payoffs are worth it. Tonight I ended up on a Clay Shirky article from 2004 by a circuitous path (Science Channel program on TV mentioned Metcalfe’s Law –> Google –> Wikipedia –> Wikipedia references –> A Group Is Its Own Worst Enemy). Clay’s article covers a lot of ground and is a killer read, but a couple of things popped out at me within the context of RIAs that are worth sharing.

2008-05-19_0100-2.png

Ubiquity is crucial. Clay is obviously talking about the impact of the web’s ubiquity, but it nicely ties into one of the “talking points” every Flash guy has carried around in his bag for the better part of a decade — access is everything. Asking customers to ‘meet you there’ just doesn’t cut it. In fact it’s a big enough barrier to ensure you won’t succeed most of the time. So, when you see Microsoft make claims about imminent ubiquity, Sun talk about tapping into Java’s ubiquity, or Adobe polish its already ubiquitous armor it’s because it’s that critical. So critical in fact that it’s something no one (developers or consumers) should have to think about.

Now in my book ubiquity is a bit passé and it’s definitely not something we can expect to remain exclusive. Today’s ubiquitous client needs to be updatable, persistent (hello AIR) and increasingly capable. In fact, quickly delivering content to the ubiquitous platform is the next evolutionary step, and damn if Shirky wasn’t saying the same thing back in ’04 (shakes fist at Shirky for being so insightful).

2008-05-19_0046.png

All of the would be RIA vendors are chasing a compelling top to bottom stack that includes rich developer tooling (Eclipse, NetBeans, VisualStudio, Blend, Flash, Flex, Thermo). In many ways RAD and integration are already expected and we’ll continue to see workflow and feature improvements as a matter of course. This begs the question of what the next evolutionary steps are? I don’t pretend to be Clay Shirky, but I’d bet on at least two things:

  1. Simplicity is the new “ubiquity”.
  2. Leveraging platforms from outside the traditional “stack” will be critical.

The goal of all software should be to make complex things simple — that’s where the real value for the consumer / group is and “interesting new kinds of things happen” as Shirky notes. Simple tools yield tremendous benefits — it’s a system we humans have been scaling for untold years with each generation standing on the back of the previous (one could argue the pencil — a simple tool — ultimately paved the way for our greatest technical achievements).

It’s the second idea that’s actually more interesting. Leveraging the platform from outside of the traditional stack is what I call the Photoshop strategy. What happens when Photoshop is network aware and can deploy not just static content, but full blown RIA apps? Because of it’s network awareness (feeds / metadata) the app could intelligently suggest or automatically adjust both the content and the deployed RIA (ok maybe we’re still a ways away from this, but it seems plausible in the very near future). Just the fact that Photoshop, land of photographers and decidedly not developers, could create a sophisticated RIA (read not static) deployable to a ubiquitous client would be an evolutionary advancement (a group like photographers has to take the client, the tooling and the development for granted). When you see Adobe aggressively building out Web services to compliment the client and content creation tools (they’re building an open system) the picture gets immediately clearer. New, interesting things are indeed happening.

Empowering Content Creators, Not Platforms With H.264

I’ve been spending quite a bit of time pitching h.264 lately and have ended up developing a stump speech (more of an elevator pitch really). If you’re in the same boat and are looking to develop or refine an h.264 pitch of your own I’ve made a generic version of mine available below (runs 1:45).


The obvious question is why is this necessary? The answer is twofold really. First, the various platform vendors (the big 3 specifically — Windows Media, QuickTime and Real) attempts to lock users into their proprietary stacks have made everyone extremely leery of video formats in general. Second, there just hasn’t been a vendor neutral codec / format capable of meeting the majority of the video use cases that exist. That’s why h.264 is such a game changer — it gives the power back to content creators and takes it out of the hands of vendors who seek market domination for their product stacks.

Adobe made an absolutely huge move by walking away from their own proprietary file format (FLV). Microsoft needs to do the same and walk away from their paper standard (VC-1). Make the business model align with the needs of the customer instead of forcing the customer to fit your needs — it’s that simple.

If you’ve got other arguments, counter arguments I’d love to hear them.

Can Microsoft Make WPF Successful?

new_wpf.png

Tim Sneath was surprisingly honest in his post covering Microsoft’s latest release of WPF. It’s been interesting to watch Microsoft’s struggle to approach the rich experience application market with WPF. It appears they fundamentally misunderstood the market, their developer base and their ability to drive adoption. At least that’s the way it looks to this armchair analyst.

Microsoft had an epiphany a few years back and decided to buy into the “experience matters” tagline Macromedia was pushing all over the web. Despite their best efforts to kill it, it was clear the cloud “might be” the next application platform and that extremely rich clients connected to the cloud were beginning to outpace the desktop. These rich clients could deliver completely custom branded experiences and rich interactions that often included animation (animation appears to be the holy grail for old school application platforms — maybe because it was such a pain in the ass for them, dunno really, but man are they hung up on it).

experience_matters.png

Now the folks up in Redmond aren’t idiots. They could see the writing on the wall and they needed to do something to stem the bleeding and make the desktop cool — it’s the cash cow and their entire empire is tied tightly to it. In their view they needed to dramatically remake the decidedly utilitarian Windows experience and the applications that run on top of it. Fight fire with fire was their thinking. Make the desktop compelling by bringing custom chrome and animations to it. Application builders would have no choice but to double down on the MS stack in order to take advantage of the new capabilities (if they didn’t their competitors would). Thus was born WPF.

In typical MS fashion they had grandiose ambitions and a marketing budget that exceeded those ambitions. We were to be treated to rich experiences in a way that would “shock and awe” us. The entire OS presentation tier was to be built on top of WPF (take your Cocoa and shove it Apple). The entire suite of consumer oriented applications that shipped with the OS was going to leverage WPF (My Apps not iApps). And just when you thought they might be forgetting about the cloud they announced their intent to repaint rich browser experiences in a Silverlight — a subset of WPF delivered as a browser plugin. A veritable Flash killer (gasp).

Microsoft primed its PR pump (wined and dined everyone you can imagine), rattled its saber and deployed its vanguard of tech journalists and evangelists, promptly chasing Macromedia under Adobe’s skirt (holy shit they’ve got Photoshop under here). There was one little problem though — they couldn’t execute. It turns out that WPF wasn’t peformant enough to run as the OS UI layer so scratch that. MS then announced it just wasn’t reasonable to rewrite all those consumer apps to leverage WPF so scratch that. That’s two pretty big gulps if you’re counting.

On the browser plugin front things weren’t exactly golden with the 1.0 release of Silverlight coming off more like a .5 release. It didn’t support the .Net languages that MS developers are well versed in and fanatical about, had no component framework and adoption was tepid. In general it was a pretty damn rough release (wait for 1.1, urr, 2.0 I mean).

Things weren’t rosy on the third party consumer application development front either. Third party WPF consumer apps are extremely scarce (they’re on the endangered species list for sure). One of the biggest problems is that platform penetration has been minimal. Microsoft promised quick, massive adoption of the framework. After all, Vista was coming and it would do all of the work (you hear the same argument about MSN’s Olympics coverage and Silverlight). Those left on XP would be able to download the framework through Windows Update and since the latest and greatest apps were going to leverage WPF consumers were going to be motivated. Hmm, turns out not so much.

Perhaps most surprising is how out of touch with its development base MS really is. It sure seems like most of the profitable consumer desktop apps written for Windows are C++ oriented. Its as if MS forgot that they essentially replaced the JVM with the .Net runtime and that Java and .Net have been mostly relegated to the server-side or behind the firewall enterprise apps. Desktop developers on Windows might be using Visual Studio, but its my guess they’re not typically using any flavor of the .Net runtime (MS has been trying to pull C++ out of the cold, dead hands of desktop developers for years). This isn’t all bad for MS, enterprise users are increasingly demanding the level of richness they’re accustomed to in the consumer market (lots of crossover / leakage these days) and MS has a ton of “impact weight” behind the firewall.

All of this leaves me wondering if Microsoft can make WPF successful at all? It’s not clear to me that WPF will ever be the desktop development platform of choice on Windows. It sort of seems like the product they have in hand is a total mismatch for the developer base they’ve gathered under their tent and the OS they have under the hood. I’m also not sure that for consumers 25 MB really matters — the pain is that you have still have a 25 MB VM to download on XP and it runs like a dog. However, it’s nice to see Microsoft acknowledge that Vista is such a flop that XP is now the only real shot that WPF has.

ActionScript is Cool — Yegge of Google Said So

Steve Yegge posted a must read transcription of a talk he gave at Stanford on dynamic languages. On the last question of the day he gives a great plug for Adobe’s Evolutionary Programming model and ECMAScript Edition 4 (ECMAScript Edition 4 was the basis for ActionScript 3, the language of the Flash Platform).

dynamic_static_hybrid.png

If you’re a language geek or just want some ammo for your “ActionScript isn’t just a toy” speech that you have to resort to periodically, you’ll want to read and reference this talk.