"If we execute appropriately we will be the engagement platform, or the layer, on top of anything that has an LCD display, any computing device -- everything from a refrigerator to an automobile to a video game to a computer to a mobile phone."
—Adobe CEO Bruce Chizen
Amid all the fuss and excitement about Web 2.0 and the latest speculation about Google's plans, it's easy to lose sight of the rest of the industry. But for most of the 1980s and 1990s, the marquee conflict in high tech was the battle for control over the PC operating system. That battle faded when Apple stumbled and Netscape failed to use the browser to break the hold of Windows. There have been efforts from the Linux and Java crowds, but in general it's been so long since there was an effective assault on desktop Windows that most people have given up on the idea.
But now the new Adobe/Macromedia is trying to break Windows, using Flash. Most people in the tech community are viewing this as a battle over web graphics, but it's really about next-generation applications in general, which cuts to the heart of the Windows franchise. Adobe's plan is extremely ambitions, and I think it might even work.
How to displace an operating system: Make it irrelevant
What is an operating system? To a computer scientist, an operating system is the software that enables computing hardware to work. It manages the basic operations of the system (thus the name), so applications can perform the tasks desired by a designer or user.
But to a user, the underlying plumbing of the operating system is irrelevant. It's just part of the hardware. What matters is the user interface, because that's what the user has to learn; and the application programming interfaces (APIs), because they determine which software programs you can run on the device.
Interfaces and APIs together are often referred to as a "platform," because they are the thing on top of which application software is built. So you'll hear industry people refer to the Windows platform or the Palm OS platform. This term platform is sometimes confusing to people outside Silicon Valley, because they think a platform is a wooden thing you stand on to give a speech.
The distinction between platform and OS is important because the underlying operating system plumbing doesn't generate much value. It's the platform that users and developers are loyal to. If you separate the platform from the underlying OS, the user interface and applications can run on any OS. The OS itself becomes just commodity technology.
There have been examples in the past of platforms separated from OS's. For example, Java is a platform of sorts (although it lacks a standardized user interface and it's not really consistent in the mobile world).
Flash: Adobe's new platform. The new software products that Adobe and Microsoft are working on are very complex, so I'm going to simplify aggressively here. You can find endlessly detailed commentary elsewhere on the web if you want it.
Basically, what Adobe's doing is merging the Flash animation environment with the Acrobat document environment, and converting them into a full-fledged application development platform. Last week Adobe announced Apollo, a software program that will let a Flash program run outside of the browser, even if the user is not connected to the Internet. This converts Flash programs from little presentations that run inside a web page into full-fledged applications that the user can store on a PC and run anytime by clicking an icon on the desktop. The Apollo program takes care of managing the underlying operating system, so a single Apollo application could run on a Windows PC, a Mac, or a Linux box.
This is very convenient for application developers who want to create a program that can run on any computer that downloads it. But since the vast majority of PCs run Windows, it's not that big a deal – we all know of websites that just don't work well on anything other than a Windows computer, and that's not a world-shaking crisis.
But Apollo becomes vastly more important because a version of it will also run on mobile devices. Unlike the PC world, there there's no OS standard for mobile phones and smartphones, and as I've written before, we're not likely to get one anytime in the foreseeable future. But if you could put Apollo on all those phones and handhelds, the OS wouldn't matter any more. Developers could just write their applications in Flash, and they would run anywhere.
This was how mobile Java was supposed to work, but it was allowed to fragment into dozens of different incompatible versions. Developers of Java mobile applications often complain that they spend more time rewriting their software to run on different Java versions than they do actually creating the programs in the first place. This is an intolerable burden for small developers, and it stifles mobile software innovation overall.
Today Adobe charges phone manufacturers to include Flash in their phones. This is a nice revenue stream, but it prevents Flash from becoming a standard the way it did in the PC world, where Flash is given away.
In a very detailed and interesting interview, Adobe CEO Bruce Chizen talked about the overall strategy and said he intends to make the mobile version of Flash free in the future. Some quotes:
"The changes to Flash "enables us to create an 'engagement platform.' Think of it as a layer or a vehicle in which anybody can present information that could be engaged with in an interactive, compelling, reliable, relatively secure way -- across all kinds of devices, all kinds of operating systems."
Q: Are we going to see head-on competition [between Adobe and Microsoft] to establish the platform for the next generation of web and application development?
Chizen: "Perhaps.... The fact that we are ubiquitous today makes us believe that we will end up being the appropriate platform in which to have these rich Internet applications."
"Our goal is to get our engagement platform, or the 'light' version of it, on these devices (mobile phones)....Even though I like the revenue, I suspect over time you will probably see us back away a bit from charging for the client and look to make our money through servers, desktop software, advertising revenue models, and so on.... If I have to make a trade-off between ubiquity and revenue -- as it relates to the mobile client business -- I'll go for ubiquity. Because if I have my client everywhere, then I can make money doing other things."
Thanks to my colleague Nilofer Merchant for pointing out this interview to me.
So here's the picture of what will happen: Adobe will offer Flash/Apollo as a standalone platform on PCs, Macs, and Linux boxes; and a light version on mobile phones. The third element in the strategy is development tools. Adobe inherited the Flex app development tool from Macromedia. Flex will be positioned as the easiest way for a developer to create a single application that runs anywhere, on both desktops and mobiles. This pitch will be appealing to many commercial developers, and especially attractive to in-house developers within corporations, who want to span the range of range of devices in the marketplace with as little investment and support burden as possible.
Adobe's strategy potentially gives a very seductive message to IT managers – deploy the new Flash on your PCs and mobile devices and you won't have to worry about anything else.
Apollo and Flash don't kill Windows directly, but they are an attack on its financial model. People pay a lot of money today for Windows because you must have it to run Windows applications. If the applications of the future are written for Flash, Windows turns into just a bunch of plumbing (and pretty insecure plumbing at that). Its intrinsic value drops tremendously, and hardware vendors will feel free to substitute Linux or something else for it.
This won't happen overnight, and no platform layer will be able to run all types of applications (for example, highly graphical games will still need to be written to the "native" OS, in order to get the best performance). But Adobe is aiming at the next generation of productivity applications, the things that will matter most five or ten years from now.
Microsoft isn't sitting still for all of this, of course. It's developing Windows Presentation Foundation, which will include graphics, text, video playback, animation, and a lot more. It's the graphics engine built into the next version of Windows, Vista. A derivative version of WPF called WPF Everywhere will be ported to Macs and mobile devices in addition to older versions of Windows. So like Flash, WPF/E will be a platform that runs on top of other operating systems. Like Apollo, it will also enable applications to run independently of the browser. It's basically a new platform.
But there are important differences. To protect the Windows business, Microsoft is holding some features out of WPF Everywhere (in particular, 3D and graphics acceleration). That means applications written for the full WPF may not run on other devices. This makes sense for Microsoft – it wants the Windows version of its software to be the most powerful, so people have an incentive to buy Windows. But that makes WPF/E a second-class citizen. If Adobe does a better job of adding features to Flash, and keeps its implementations consistent, developers and IT managers may prefer its fully cross-platform software over what may be perceived as an "intentionally crippled" WPF/E.
The other logical move for Microsoft would be to bleed Adobe everywhere else, so it won't have the money to fund the Flash initiative. Sure enough, Microsoft is working on products targeting PDF and possibly Photoshop. But Microsoft's motives aren't clear – it is attacking almost every successful franchise in the industry, in a drive to get more revenue. It's not clear yet if Adobe is being singled out for special attention.
What to watch for
Adobe is by no means a lock to prevail in this competition, and indeed you can find a lot of people online who feel WPF/E is more promising. Here are some of the factors that will help to determine who wins:
Product quality. Flash's legacy as an animation tool is both an asset and a burden for Adobe. Flash has a large installed base and lots of developers, which will help Adobe. But turning an animation tool into a full-fledged application development platform can be awkward. In contrast, Microsoft is architecting WPF from the start to be an application development tool. So the architecture of WPF may be cleaner and more flexible than Adobe's.
Developer base. The developers who use Flash tend to be designers and artistic types. The users of Acrobat tend to be more oriented toward corporate processes and print publishing. These groups don't necessarily mix well (in fact, among parts of the online community Acrobat is seen as the spawn of the devil; check out the comments posted here). Can these groups merge and segue into full-scale applications development, and if not can Adobe attract other sorts of developers? In contrast, Microsoft's base of developers is generally corporate and commercial app creators. Can these people step up to new, more web-like development paradigms, and can Microsoft win over the creative types?
Feature set. Microsoft has a history of burying competitors in a blizzard of added features. Although Adobe is by no means a tiny company, Microsoft can definitely outspend Adobe if it chooses to. I think the main thing restraining Microsoft will be competition with itself. Will Microsoft be willing to add features to WPF/E that hurt the differentiation of native Windows?
Pricing. Microsoft hasn't announced licensing terms for WPF/E. Flash is already free on PCs, and eventually will be on mobile devices as well. It's fairly easy for Adobe to do this since it doesn't have an OS business to defend. But Microsoft doesn't want to destroy the value of Windows, and so it will feel a lot of internal pressure to extract some sort of payment for use of WPF/E. When I was at Palm, Microsoft approached us about licensing some Windows CE software elements and development tools to work with Palm OS. It was a great opportunity for Microsoft to establish a position as a standard-setter in mobile devices, but it would have hurt the differentiation of Pocket PC. We seemed to be having good discussions until we came to the topic of price. Microsoft demanded a per-copy price that would have eaten up most of our revenue for the OS. When we made it clear that we couldn't afford to pay that much, the talks ended abruptly.
Price also matters on the Adobe side. Much of Adobe's opportunity depends on giving away the mobile phone version of Flash, so it can make the software ubiquitous and set a standard. If Adobe continues to charge for mobile Flash, the whole strategy will implode.
At this point it's impossible to predict who will win. Adobe might cripple Windows, or Microsoft might crush Flash. It's also possible that the different developer bases of Microsoft and Adobe will continue to be different, with the creative types choosing Flash and the traditional app types choosing Microsoft.
There's also a pyrrhic victory scenario in which Microsoft defeats Adobe, but in the process gives away the differentiation of Windows and permanently weakens itself. In this scenario, Microsoft would have to fall back on Office and Outlook/Exchange as its main moneymakers. I think there's a good possibility that something like this will happen – not because Microsoft wants it to, but because the competitive situation will force it to choose between an immediate loss to Flash and a gradual decline in Windows sales. If forced to choose, most companies pick the option that delays pain.
The winner in the pyrrhic victory scenario would probably be Google – a Microsoft without the Windows franchise would have much less cash available to fund its assault on search. Speaking of Google, it has been making moves toward assembling bits and pieces of a development environment that could be a competitor to both Flash and WPF. Fully implementing this would require some unusual (for Google) attention to development tools, and to creating thicker clients that can execute apps when a device is offline. But it's within Google's capabilities. Google doesn't benefit if either Microsoft or Adobe controls the app platform of the future.
Would breaking the Windows standard be a good thing or a bad thing?
It depends. It would be a good thing financially for computer users. Microsoft extracts a huge tax on every computer sold; if there were effective competition to Windows, most of that tax would disappear and PC prices would come down a bit.
It's less clear to me what the effect would be on innovation. Considering that I spent ten years of my career at Apple, I'm surprised that I feel that way. At one time I believed Windows was one of the most evil software creations ever. Now I'm more muddled. I disapprove very strongly of the business tactics Microsoft used to establish and hold the Windows standard, but I've seen the effect of OS fragmentation on the mobile market. Software development is stagnating in the mobile world, and the lack of an open and uniform platform standard is a big reason why.
We could end up with a confused situation in PCs where there is no dominant platform standard in the future. This could hurt innovation and reinforce the proprietary instincts of hardware manufacturers. Imagine Sony's obsession with Memory Stick, but applied to operating systems and multiplied across a dozen vendors. It could be an awful mess.
On the other hand, it could be that the market will sort things out, pick a single winner, and we'll all rally around it. I think that probably would have happened in mobile devices already if the operators weren't standing in the way. There isn't an equivalent roadblock in PC-land.
What rough beast slouches toward Redmond?
I wonder what it feels like to be a senior executive at Microsoft right now. The company's own success has extended it into so many different markets that it's hard to even keep track of them all, let alone figure out how best to win. As soon as you focus your attention in one area, a fire breaks out in another.
This challenge from Flash is largely Microsoft's own fault. If it had been able to innovate rapidly in Windows, and had established an OS standard for mobile devices, there wouldn't be much of a market opening for Adobe. Instead Vista has been delayed repeatedly, and although Windows Mobile has made some progress, it is nowhere near setting a standard in the mobile world.
A situation like this cries out for autonomous business units, in which you could hire CEO-types to run their businesses independently and make quick decisions. But Microsoft's greatest competitive asset is its ability to tie together its businesses, to leverage strength in one area to give it an edge in another (for example, leveraging the Exchange standard to dominate mobile e-mail). So Microsoft has recently consolidated business units, making the company more centralized and designating Ray Ozzie the Pied Piper of technical direction for the whole company.
But that means less responsiveness in the individual businesses, and it's easier for new competitive assaults to slip through the cracks. At some point your vigilance will slip and something bad will happen. While Microsoft struggles to find ways to bite into Google's advertising revenue, Apple has already sprinted to early dominance in mobile music, a new world of component software is emerging on the Web, and now Adobe of all people is attacking in probably the last place where Microsoft expected to be assaulted, the core Windows OS franchise.
Although the situation must feel overwhelming for someone in the middle of it, to an outside observer like me it's exhilarating. So many things in the industry are changing all at once that I don't think anybody can see where it will take us. You get the feeling that the old order in high tech is melting away, and the old rules and assumptions will all be called into question.
Historically, this sort of transition in high tech has killed off most of the leading companies and cleared the ground for a new generation of companies and standards to take root. Whether you see that as a good thing or a bad thing probably depends on whether you work in one of the big established leaders in the tech industry today.* I don't know if Adobe's strategy will succeed or fail, but I admire it for trying to take advantage of the transition rather than just clinging to its current franchises.
*Remember the old story that the Chinese character for "crisis" is composed of the symbols for "threat" and "opportunity?" Unfortunately, that turns out to be a crock. But if it were true, it would apply here.
Thanks to The 3G Portal for including my post on the info pad in this week's Carnival of the Mobilists.