20 March 2007

Apollo: Java re-invented #

I had a few other posts waiting to be posted, but this news just deserves priority! When I first heard of Apollo, I wasn’t so excited as a lot of people have been. I was more of the thought that since Adobe just likes to do things their way, no matter what, Apollo will be nothing but a fancier version of Java. I’m glad to say, that reading everything post release, I was right … for the most part.

The similarities end at the ‘cross–OS runtime’, because Apollo aims to become what Java couldn’t. Apollo is going to take what we already know, leverage it to the OS, and hand the controls back into our hands. What this simply means is that, everything you could do with the Internet, is now available for you to do with your own computer. I had written about seamless integration of offline and online applications. Keeping that in mind, this seems like just the thing I was looking for! :)

Why the Java analogy?

For those who don’t know, Sun Microsystems developed Java as a higher level language, which aimed to be completely object–oriented (it does this freakin’ well!), cross–platform and relatively easier to work with compared with lower level C++/C and the likes. But there was a problem. Working with Java meant learning a whole new language. Those familiar, will know that Java’s (only?) failing is its monstrous syntax linessystem.out.write just to write ‘Hi’ on the screen? Don’t get me started on higher functions!. I’m no expert though, and while it is the most popular programming language today, I think it can be seriously improved upon.

This is where Apollo will succeed, since it works by using existing web languages and technologiesHTML, Javascript, CSS, Flex, AJAX and ActionScript (non–web). PHP isn’t supported, and no plans have been revealed yet to do so. I guess one will have to use AS to bridge that gap should the need arise. I don’t know about Flex, so I guess that could be useful too!, and let’s you write applications using them. Web languages have been under heavy use since the Web 2.0 boom, and there are ‘many’ people who know it and use it in everyday life, with more and more beginning to join in the fray. If nothing more, a simple HTML interface to a Javascript backend, with Apollo’s stream controls should be able to help in developing simple and task specific applications. I can sense a Textmate for windows :)

Restricted freedom

This will, however, not be for newbies, surely. You’ll need to be adept at using existing technologies to be able to get your hands dirty with Apollo. You’ll have to be familiar with the basics of a how compilers and memory based languages work. But I think Adobe would have life much easier for everyone. So much so, that the first application that comes to mind is a ‘desktop dashboard’ of your Blogger. It could be synchronised whenever you’d go online, but for the times you were offline, changes could be saved locally, and then using the Blogger ATOM API, upload all the changes to your account. This might be one of the most uncreative uses of this however … :P So you can imagine the possibilities.

So, while Apollo looks and feels amazing, a true analysis can only come when people start to use it and get a feel for it themselves. But mark my words. This is going to be big. So big that next generation applications will be made off Apollo type frameworks. And yes, Apollo is surely going to generate some spinoffs and libraries. But ultimately, if application development becomes easier, why not? :)

Further Reading

Introducing Apollo
Apollo Developer FAQ
Apollo just launched, so go build something


Avatar said...

i belive as i may or may not told you already that Adobe will become the fourth big company.. you remember when i was wondering what company could turn into the new new? well, i belive Adobe is that company.. i mean, it is not only Apollo, it is also FLEX and it is also the new Flash, that from version 9 stopped being just a mere plugin and that with version 10 it will even carry more into it to power the base basics of all Adobe future plans.

it sure will be a interesting thing to behold.. and if you wat to see the first truly interesting thing done thanks to flash 9, just check out this:


it uses flash 9 but as stated by the trillian team, it donñt uses apollo, simply because they were not given the software in time. but i think that this proves what can we expect from next gen web 2.0 apps.

but one thing i am sure of, i will not miss JAVA,JAVA has it time, and it time for it to die or somehow transform into something better.

but with Adobe new flash, flex and apollo and MS own new wpf, .net 3.0 and more things they got to come, i just don´t see how java could survive in web and desktop development. i guess the only thing they got left is for mobile development..

Singpolyma said...

As a sometime Java developer, the analogy doesn't work for me.

Java is the cleanest, nicest, best-OOP-support, desktop-based (and cross-platform to boot!) language to date. Your slams about 'ugly syntax' are actually evidences of the OOP power present, without ugly pointers or wicked and dangerous mixed class structures (ie, C++)

Apollo is NOT A LANGUAGE. It is a rendering environment for XHTML and its buddies (JavaScript, Flash, etc). It provides some extended APIs to JS and Flash for disk I/O, etc, but this does not make it a language! That's like saying that Firefox, because it provides the window object/API, is a language!

That said, and Java defended, I would make the following analogy:

Apollo is to XHTML+JavaScript+etc what the standalone Flash player is to SWF

That is, it is a cross-platform engine to allow what we are already doing inside the browser to take place outside the browser.

When they get Linux support (or when I decide to boot into Windows for once) I will be checking them out.

Aditya said...

@Ava: I have seen the new Trillian Astra screencasts, and it looks simply awesome! That’s some very creative use of existing Adobe technologies, but I’m sure Apollo aiding that will give Cerulean many more things to add that they otherwise couldn’t.

Adobe sure is the old company with a new bang, and it’ll be very interesting to see how their frameworks and applications change the face of what we know of ‘development’. Great stuff! :)

@Steve: I should have put in a ‘No offence to Java’ clause at the end of the post. But you’ve got a lot of the points I made in the wrong sense. I’ll break it down for you :)

I never said that Apollo is a new language, and I’ve said that it is a framework. I’ve also already mentioned that it takes existing ‘web’ languages, and leverages them to the OS.

The ugly syntax was the only thing I took a jab (if you want to call it that) at. I’ve also said that Java is the most popular language out there, but for it’s current purpose, I think it can do with a overhaul. Which is what Apollo will do now, in my opinion.

Apollo will surely provide for more than what we do within the browser. So that part of your comment is wrong. Although your analogy is also quite right. When we bring things to the OS level, things get deeper! :)

I never meant to jab–down Java, and I never will. And yes, I hate C++ too :P

Avatar said...

yeah, it is amazing stuff and it is just the tip of he icerberg in terms of what can be done, just in my head, i can see how this could blow away everything reviously done.

i have already came up with what i think could be done that is impossible to be done at the moment with regular dstop or web apps and it sure is something great.. :P but you already know that i always like going for the high concepts.

but on the matter of Java, i know it will not just go away just like that, but given how incredible SLOOOOW has sun microsystem become in the last 5 years, it is evident that they predominant position is something that will not hold, not against the new monster that is adobe, and not against MS own progression into the matter.

one thing i also must note about the latter flash 10, is that P2P backend they want to add. one can only imagine what they are going to with something like that.. but i bet that it will play a roll in apollo and flex produced apps future...

Aditya said...

Hmm… reading up on WPF/E, it seems like a Microsoft version of Flash. Why they’re trying to reinvent, I do not know (but then again, that is what MS does most of the time).

Adobe will hold it’s own with Apollo, and very nicely too. I’ve been looking at their documentations, and while keeping the ‘not–for–faint–of–heart’ statement intact, I’d say the transition is almost seamless, and quite simple.

And ofcourse, the very fact that Adobe is Adobe, and they got here first will count for something :)

Avatar said...

it partly is a reinvention of flash with certain conveniences. the obvious reason of why to make such a reinvention relies that MS does take very serious the advances of Adobe in the positioning of web development more because belive t or not, if there is a company that coul turn out a WebOS that could be adopted intantly by more people that the linux and apple marketshare, that is Adobe..so it is very easy to see why Ms would like to have newer stuff in case such scenarios comes to be..

and belive me, if MS is getting serious, then i can assure that Adobe moves will be quite serious for both yahoo and google..