Apollo. .Net, Java killer. I think so.
April 2, 2007
When Java first came on the scene, many moons ago, the tag line that was touted was “Write once, run anywhere”. The idea behind Java was ingenious, instead of having to write and compile your application for different platforms, you could just write your application once and the Java runtime would take care of the cross compatibility. The secret was that the Java runtime was written for the specific platform which added that extra layer to make it all happen.
Fast forward to the year 2000 and Microsoft releases it’s most visionary development library, .Net. The idea behind .Net was that developers would finally have a centralized library in which to use to write Windows applications. No longer would you need to upgrade your code between different versions of Windows in order to make it run, as long as you wrote your application using .Net, everything should run. So now a developer could write an application in .Net 2.0 and as long as the end user had the .Net 2.0 library installed on their machine, it would work just fine regardless of the version of Windows they were running.
This all sounded majestic in theory, but in reality it was demonic.
While console Java applications ran just fine on different platforms, the GUI libraries that took the application to the desktop were tedious and hideous. Many developers complained about how difficult it was to use the different GUI libraries available and end users complained about how harsh on the eyes the GUI looked. Top that off with infinite load time and runtime errors that came with using these libraries and Java was shied away from.
While .Net didn’t nearly suffer that same problems as Java in terms of ugly GUIs and load time, it was a Windows only library, which means Linux was not supported. There were efforts over the years to bring .Net to the Linux desktop, like the Mono project, but ultimately they failed. Microsoft was very lax with releasing the specs that made up .Net so Mono was always a revision or two behind.
This dreams of Sun’s and Microsoft to be the ruler of the desktop was and is fading fast. If one of them could make their product run on all platforms without the need to jump through hoops and more importantly for the end users, to make it look appealing, we would have a winner.
Adobe now enters the race with Apollo, their cross-platform runtime.
With Apollo we’re told that we will be able to write our applications once and be guaranteed that they will run on Windows, MACS and soon, Linux without the need to port our application. More importantly, the application will look like any other standard run of the mill desktop application on that specific platform.
While being able to run on any platform and looking great is important to end users; what about the developers? Do we really need to learn a new language like Java or C# in order to write these applications? No, you don’t. This is what will be the true shining star that will allow Apollo to be embraced by developers quickly. The programming languages are ones you use and are exposed to everyday. HTML, JavaScript, ActionScript; these aren’t foreign languages like C# or Ruby, these are the languages of the internet. Languages that any programmer has come across and used during their career.
Though Apollo is only in it’s early alpha stages, it is already being welcomed. By year’s end we should be seeing a stable revision.
Can Adobe deliver on their promise and pull the reins from Microsoft and Sun?