Everyone’s talking about Adobe’s Apollo. At least, everyone that knows about it seems to be talking about it. It seems to be the Next Big Thing, judging by some of what I’ve been reading, Adobe shooting for the moon and most likely hitting its target. I give it about a 40:60 likelihood of success in that regard — a 40% chance it’ll do almost as well as a bunch of people think, and a 60% chance it will be another also-ran like Flash and Java applets.
Most of the buzz seems to center around how Apollo is Adobe’s strike directly at the heart of Microsoft as a software vendor. Adobe is taking on Goliath, they seem to say, and may well beat Microsoft at its own game (dependency on MS Windows for Apollo’s uptake notwithstanding). Over at GigaOM, Anne Zelenka dares to suggest that it’s not really about an Apollo vs. Microsoft battle, but The Coming Apollo vs. Firefox Battle. She makes some excellent points, like the fact that Firefox v3 will be aiming at support for desktop applications via the browser and the fact that Google seems to be backing the Mozilla horse. She strikes me as just slightly starry-eyed over Google, but that seems only fair considering how starry-eyed people are over Apollo — so it evens out.
At first glance, it looks like the claim that Firefox will support offline applications is a little premature and exaggerated. What’s really being discussed, it seems, is offline support for web applications — which is useful, of course, and really pretty exciting in a number of ways, but not nearly the same kind of middle ground between the Web and the desktop that Apollo seems poised to represent. There are three problems with this initial impression, though:
- Firefox’s proposed offline support for web applications can actually just open the door to some really exciting possibilities. The key is not to think about how useful GMail is when you’re offline, but what’s possible when people write entirely new web apps for use in the browser without having to rely on connectivity. The potential is, in some respects, mind-boggling, especially when you consider that (as difficult as AJAX can be sometimes) web applications that only need to target a single browser are in many ways quite easy to write — at least in comparison with GUI applications written in C++, C#, Java, or Visual Basic. They’d also represent something startlingly close to the “holy grail” of cross-platform compatibility, considering the OS to be your platform, since Firefox pretty much runs everywhere.
- Apollo isn’t nearly as great, at least so far, as many people seem to think. I misplaced the link, but yesterday I read an excellent review of the Apollo alpha that touched on the way the interface works. My impression: for the end user it’s a limited form of software management system that requires everything be developed for a specific development framework. More on that later.
I promised more about Apollo’s actual place in the software ecosystem in the above list. Here it is:
Most of the people speculating on Apollo’s future place in the software industry ecosystem are very Windows-centric, and as a result they fail to see a lot of what goes on in the software industry as a whole. In particular, several of the ideas in Apollo that are being hailed as “new” and “innovative” are, in fact, old hat to open source software users. What most strikes me about Apollo is that it’s a single path for installation, uninstallation, configuration, and management of applications. It is aimed at desktop-style apps of course, and GUI applications, and does not handle systems software or OS-integrated software at all — but based on what it will actually provide for the end-user, it seems to me is that Apollo may finally drag MS Windows kicking and screaming about 50% of the way from where it currently stands to a worthwhile, semi-comprehensive software management system. It will certainly be no APT, YUM, or Portsnap and ports tree, but almost everything about Apollo that makes it convenient and useful is part of a subset of the functionality of the comprehensive software management systems of every major open source operating system available.
One of the nifty things about Apollo is also one of its limitations, as well — it’s not just a (sub)platform, but a development framework for ECMAScript (or, more precisely, the next iteration of ActionScript, the ECMAScript derivative used for programmatic Flash development). Because ECMAScript 4 looks so tasty to many developers, because this is a step toward transforming ECMAScript from a toy language in practice to a bona-fide application development language, and because Apollo looks like it will provide an excellent development framework, this all looks pretty good. Because Apollo limits support for its software management capabilities to its ECMAScript derivative, however, the developer side of things is severely limited, and Apollo is unlikely to gain as much traction as a development framework as (non-programmer) people seem to expect from it. In other words, even if it was everything it promised to be (which it’s not, apparently), the language limitation would result in an analysis that looks something like “Next big thing? Good friggin’ luck!”
I’m frankly almost as excited about ECMAScript 4 on Tamarin as I am about Perl on Parrot and Ruby 2.0, and as I was about Apollo before real concrete information about it started to become available. Now that the public alpha has hit the scene, however, I see that Apollo seems to basically just be a somewhat neutered Synaptic. Once again, something appears on MS Windows that has everyone in fits of orgasmic predictions about paradigm shifts in software development, and I’m sitting here in open source software land saying “So what? We’ve had that for years.” It’s all a bit reminiscent, as well, of the jokes that Windows 95 was Mac ’89.
Bet on the Firefox/Tamarin horse, if you’re into big-risk, big-payoff bets. Otherwise, just think of Apollo as a proof of concept and, finally, an applet platform that works — since Java’s applets sucked and Flash’s were hampered by the “toy” feel of them, Macromedia’s crappy marketing, and the absurd proprietary WYSIWYG chains in which they were garbed.
Better yet, bet that ECMAScript 4 will be a language worth learning. Other than that, don’t bother betting.
addendum: If, by some miracle, Firefox and/or Tamarin actually presents a significant paradigm shift in application development, distribution, and use, the Microsoft stranglehold on the end-user desktop market will be significantly weakened. It may even simply break — though I’m not holding my breath either that the pseudo-web pseudo-platform will represent such a massive shift, or that such a shift would entirely break Microsoft’s power. Time will tell.