Pete Lacey has a blog post entitled Rethinking Apollo where he writes
So I dug around in Apollo a little bit, and I did a little bit more thinking
about my reflexive dismissal of the technology. And I admit to misunderstanding
and miscategorizing Apollo. Here’s what I learned.
Apollo is not a browser plugin, nor does it leverage or extend your browser
in any way. It runs completely outside the browser. It is a run-time environment
for building cross-platform desktop applications.
...
Lets say you want to build a RSS/Atom reader...But lets
add a requirement: my news reader must be cross-platform. That eliminates .NET
as a development platform, but still leaves C++. However, with C++ I have to
carefully separate my common functionality from my OS-specific functionality and
become more of an expert on OS and windowing quirks then I would like, so that’s
out. Fortunately, there’s quite a few other ways to go:
- Browser based
- Java based
- Dynamic language based: Perl, Python, Ruby, Tcl
- Native cross-platform development environment, e.g Qt
- Apollo
- Others, e.g. Eclipse RCP
All of these have pros and cons. Browsers are limited in functionality, and
quirky. Java is a pain to develop towards-especially GUI apps, has spotty HTML
rendering ability, and a non-native look and feel. The dynamic languages are far
from guaranteed to be installed on any particular machine—especially Windows
machines, and (likely) also have their own look and feel issues. Qt still leaves
me in C++ land; that is it’s hard to develop towards. Apollo also has its own
look and feel, and will require a download of the runtime environment if it’s
not already there (I’m ignoring its alpha release state). I don’t care about any
others cross-platform techniques right now.
I think I've found interesting is how a lot of blogosphere pundits have been using Microsoft's Silverlight and Adobe's Apollo in the same sentence as if they are similar products. I guess it's more proof that the popular technology blog pundits don't do much research and in many cases aren't technical enough to do the research anyway.
Although Pete does a good job of explaining the goals of Adobe Apollo with a great example, I think there is a simpler and more cynical way of spelling out the difference between Silverlight and Apollo. I'd describe the projects as
Apollo is Adobe's Flash based knock off competitor to the .NET Framework while Silverlight is Microsoft's .NET Framework based knock off competitor to the Flash platform.
A lot shorter and more to the point. :)
PS: Shame on Pete for equating dynamic languages with the runtimes for certain popular Open Source dynamic programming languages. The programming language is not the platform and vice versa. After all, both Jython and IronPython are instances of a dynamic programming language that don't have any of the problems he listed as reasons to eliminate a dynamic programming language as a choice for building a cross-platform desktop application. :).