Eric S. Raymond wrote a compelling pair of essays a short while ago about how Smartphones could replace desktop computers and how the competing smartphone markets spell good news for the open-source movement:
How smartphones will disrupt PCs
Greed kills: Why smartphone lock-in will fail and open source win
The first essay describes a near-future scenario where your home computer setup is basically a good monitor, a full-size keyboard, mouse, and a docking station for your smartphone to interface with those devices. Your work setup would be the same, and plugging your phone in at the office provides you with the same computing environment you have at home, and, in a more restricted mode, while on your way to the office.
The second is how Apple’s strategy to lock their customers into using only software approved by the company (and deemed non-threatening to opportunities for in-house profit) is doomed to failure, making a loose analogy to how IBM’s hardware designs came from behind to win out over Apple’s, back in the day. Their walled-garden model, I think they like to call it.
I find the main argument of both essays to be completely persuasive and have a bit to add about how I see computing going in the near future.
First, a bit of introduction: I have no dog in the Apple vs. Microsoft hunt. I think they’re both pretty crappy companies that I wouldn’t want to work for. I tend to prefer Windows to Mac, for the sole reason that everyone knows Windows is garbage, but some people seem to think Macs are significantly better. Mac OSX is no better than a severely broken linux distribution (with an extremely hands-off, generally successful package handler) as far as I have investigated and the shell environment needs almost as much augmentation as a Windows build in order to function usefully. My personal computers are all dual-boot Windows XP and Slackware. At work, my workstations run Windows XP, except one Mac that I use for audio ( since Bias makes some nice software for that platform)…
Over the past few years, I’ve worked hard to move as much heavy-lifting computing work onto dedicated linux servers to free up resources on my and my colleague’s workstations for creative work. That’s the key of where I see computing going. We’re going back to a terminal-mainframe system, in which ERS’s idea of evolving smartphones works great.
An obvious example of this is my own smartphone, the Droid. I’ve got an application called ConnectBot installed on it that let’s me run secure shells on any server I have access to in the world. I have access to enormous computing power at all times from a pocket-sized, ubiquitously networked device.
Another, slightly further-off example of the return to terminal-mainframe computing is in thin clients. I could easily see cable companies and other ISP’s offering thin clients in the near future, where the company maintains a small server cloud and rents thin client boxes and peripherals to customers that access it. They’d no doubt offer subscription tiers that give the customers access to different software packages. If they were to adopt an Apple-like model, where customers would only be allowed to install “signed” software that wouldn’t infringe on their tiered subscription business model, it would be an unpopular service. If the tiers were worked more like the standard cable subscription model, where customers who pay more would get access to bundles of services that they’d already have to pay for (like ESPN360 access and other services like that), it would make sense for a lot of people, who’d free themselves from a lot of problems like keeping their hardware up to date, maintaining a secure computing environment with redundant data storage, and having access to a routinely scaling amount of computing power and storage with very little trade-off: they’d just be giving their money to Comcast instead of Best Buy.
As a quick aside before getting to the point of this essay, I don’t have much faith in the future of iPads or the Android tablets coming out; or for the existing netbooks. They strike me as half-measures: I want a portable, inobtrusive computing machine and I want it to be integrated seamlessly with my desktop workflow. The screen should be in my hand or on a big screen, not perched on my knees, girlishly pinched together.
To sum up, a vision of the very near future: ESR argues that smartphones can displace desktop workstation boxes and that closed software markets are likely to fail in competition with freer alternatives; I observe that thin-client type devices might fill the void more quickly than smartphone computing power can keep up (and satisfy marketplace demand given telecom contracts and what-not), thus moving smartphones into that sort of a terminal-server constellation.
So where does Flash fit in to this equation, at the risk of raising the ire of the early-adopter Apple segment?
I don’t want to get into the Flash vs. Apple war, which I find to be overheated, to put it mildly. I do want to make some observations and predictions on the future of Flash, however.
While Flash is largely closed and proprietary, it does allow content developers to make applets that work on any platform that has the Flash plug-in—and that’s a very good thing. I hope that Flash 10.1 works well on phones. Almost certainly it’ll work better on Android than on PalmOS or Windows Mobile 7, for the simple reason that Android developers uniquely have no profitability motive to close off access from the eventual Flash plug-in for Android devices from the hardware video decoders available on the device.
And somewhat counter-intuitively, I believe it to be an advantage that Flash is largely closed and proprietary. You can do things with Flash that you can’t do with any HTML5 video player, most importantly, you can play streaming video from an RTMP server like FMS, Wowza, or Red 5; and you can serve up copyrighted materials in a way that makes it as difficult as possible for people to steal the content and save it to their own computers. You need a proprietary plug-in if you want to do that. (Which I need to do.) Hulu and many Universities will continue to depend on Flash because there is no viable alternative. Without a closed plug-in (and some other things) there’s really no way to make copyrighted materials available and protected.
The non-philosophical complaints that I see about Flash most often are: “I hate advertisements!”, “My scroll wheel stops working when my pointer hits Flash objects!”, and “It’s inaccessible to the blind!” The first one is a bogus complaint: there will always be advertisements and you can do things even more obnoxious with javascript than what you can do with Flash. The second one is more of a browser problem than a Flash problem as far as I know. That happens with Firefox, but not with IE. And seems a pretty damned trivial complaint to me. The last one is just a fact about the priorities that Flash programmers seem to have, because Adobe puts a lot more effort into making their products support accessibility features than most companies out there. There’s a fourth complaint that I don’t hear much about, that it’s pretty hard to embed flash with w3c compliant code and make it work in all browsers, but that’s a solved problem.
I’m sure that Flash will stick around for online video because I believe the HTML5 video tag is somewhat misguided or at least that the direction HTML5 is heading has been hijacked somewhat by folks with non-altruistic interests. (As background, one of the new features in HTML5 is a video tag that is intended to allow web designers to add video to their pages as easily as they add pictures. They don’t need to design a player, that work will presumably be performed by the browser itself, although they can use javascript to override whatever the browser wants to do. The way it’s done pre-HTML5 is by using a plug-in like Flash, quicktime, or windows media player that has controls and can decode and play the video file that you send to it. Since HTML5 pushes the problem onto the browser developers, you have the problem of these competing organizations having to agree on what codecs are supported. Firefox basically won’t support any codecs that anyone uses—just VP3 which is probably patent-free, Safari will support the patent-encumbered h.264 and some prorietary mac stuff, IE will support h.264 and windows media stuff. The Flash plug-in can decode h.263, h.264, and VP6 video in MP4 or FLV containers.) I’ve avoided encoding video to MP4 containing h.264/aac because I’m not certain where the University of Illinois sits with respect to MPEG-LA’s potential royalty claims. Apple and Microsoft both have financial interests in pushing h.264 since they’re members of MPEG-LA. I’ve been using h.263 (Sorensen Spark) in FLV containers, since nobody seems to pursue Lucent’s IP on it. I also prefer the way it renders text on a chalkboard to VP6 and like how fast it encodes relative to h.264. I don’t know whether any browsers will support h.263, but I don’t care, because I’ll be delivering it via the Flash plug-in.
So my prediction is that Flash sticks around and that eventually, Apple and Adobe will compromise by allowing a stripped down Flash plug-in that only includes the features needed to decode and render video and that requires HTML5 style controls to manipulate. That’s assuming, of course, that Flash 10.1 works as well as it needs to on mobile devices.
