Archive for January, 2008

RIA Wars 1

The growing bandwith has allowed developers to provide rich Web based user interfaces and thus bring together Web and Dektop applications.

You have Javascript with several new libraries sprouting almost everyday, this allows us to bring live to otherwise static HTML pages through manipulation of the DOM and using AJAX calls to get data from the server.

Nonetheless javascript depends on the browser’s implementation and your source code is there for anyone to see. AJAX calls are pretty cool but XML is a major overhead with large messages and slow parsing.

Adobe has a huge browser penetration, close to 98% if i’m not mistaken. Most people dislike Flash and think it is only used by designers to create sexy and annoying banners. The truth is that Flash uses Mozilla’s Tamarin VM for running ActionScript. Both Javascript and ActionScript are ECMAScript but with ActionScript you have the advantage that it get’s compiled and your source code is not there for anyone to see (unless they disassemble it). Besides, to reproduce most of the functionality you get with Flash you need a lot of javascript libraries, especially if we’re using Flex. Flex provides us a growing number of prebuild components and the UI is specified using MXML with offers a clear separation of controller and view. What’s more upcoming versions of Flash will enable browsers to cache commonly used flash modules (like the Flex framework) so, you only download the library the first time you visit a site using Flex.

The AMF protocol, used by Flash is now Open and there is a reference implementation freely available. This binary protocol is a lot faster than using XML or JSON and it supports pushing information thus we don’t need to have clients constantly pooling our server.

There are some more contenders in this RIA war, JavaFX and Silverlight.

JavaFX suffers, for now, from the same problems every JAVA applet has. It does not fit well in a page, it takes too long to load and there are still many people without JAVA. When JAVA offers an easier instalation and preloads in the OS’s memory then we could have a serious alternative but for now.. well it is just not up to the challenge.

Silverlight has some cool ideas, it allows us to program in a myriad of languages since they share a common runtime, has hardware acceleration and, since it is from Microsoft will come preinstalled in Windows machines. Still, there is no real showcase (Microsoft is using it to build a part of their site now in beta), there have been a couple of releases which were incompatible with each other (you had to keep reinstalling the darn thing), and to get a development environment up and ready it took ages just to figure out the right one!

I really like the idea of having Desktop like applications on the Web but i’d also like to have them in my desktop. Most of these allows developing both for the Web and for the Desktop but Flash and Java might just have an edge on this one. Adobe AIR allows you to develop some pretty cool desktop apps and JAVA has been improving Swing with LaF.

To sum up, I like the fact that Javascript has been evolving at a fast pace but I still feel stranded by browser dependencies, I don’t like to have the source code exposed and I just think that Adobe’s offer is a better deal. ActionScript is a pretty decent language and the Flex framework offers us a lot of cool components. Add to that the AMF protocol with the Open Source Data Services and you have a very good solution for RIA development. What’s more you have a couple of 3D libraries,Thermo’s coming up ( pixel shaders ;) ) and we’ll get hardware acceleration!

Mobile Platforms thoughts for 2008 3

Nowadays tech junkies have a real problem.. there are just too many cool gadgets to carry around.

The convergence has started and I personally believe that the cell phone will become the “do it all” device of the future. We already have cell phones with decent cameras, PIM software and GPS. Add to this a good storage solution and  you got everything you’ll need on a daily basis.

The problem so far has been the platform. You’ve got Windows Mobile which has been around for a while, still it seems sluggish and is missing the “cool” factor many of us geeks miss… Nokia has the Maemo platform for the N800 which is pretty cool but there is no GSM support. Nokia also has the Symbian OS which allows us to develop in C and Python but it is not compatible with most other manufacturers.  Java has been around for most mobile platforms and there are some pretty decent apps and games but you get the feeling that JAVA is not build right into the platform.. some phones even have a separate JAVA area for you to start your JAVA applications.

Apple has released the sexy iPhone and it is really appealling. Still, the SDK took long to come out and the platform remains too closed for any serious investment in it. Besides that, here in Europe we need 3,5G to have decent Internet access and the iPhone does not provide that.

Then, Google came up with Android. It’s impressive… Google can generate quite a hype around a mobile platform for which there is no hardware yet! This seems to be the way to go.. this way when it arrives at the market there should be lots of cool free software around the web for it, especially with money being offered to the best apps!

Nonetheless Apple’s iPhone still has the sex appeal that most phones only dream of having….

Adobe has been focusing on AIR, Thermo, etc.. they have come up with great technologies for Web and Desktop but delayed the Adobe Flash Lite. Personally I’m not very interested in a stripped down AS2 only Flash version… this could be because they’re hopping the hardware will evolve to support the whole Flash runtime… The actionscript engine uses the TamarinVM so it should be ported to most of mainstreammobile platforms soon.

Well, this post is becoming too long, I just though i’d write here my 2 cents. I’ll be keeping and eye on Google’s Android and the iPhone.. wouldn’t it be a beautiful mariage?