Archive for December 7th, 2008

Another battle of platforms is upon us!  Unfortunately this platform battle suffers from the ills of the past battles like the OS wars, Browser wars, Web video wars, HighDef format wars and the brewing Mobile OS wars.

Here are some of the keys to longevity in a platform battle.

  1. Developers/Content Creators are the engine that makes all this go.  If your platform doesn’t make it easy to create AND deploy, it’s not going to win.
    1. JavaFX doesn’t deploy to LINUX.  This is insane when you think about it.  Sun, an open source embracing company, plopped out a platform that won’t work for the platform a TON of java developers primarily use makes no sense.
    2. WPF is windows only whereas Silverlight mostly works everywhere, but the tools that make it easy to create apps are windows only and they are expensive.  Expression studio is great and it would be very competitive on Mac and Linux.  Probably more annoying than anything is that Silverlight still uses Windows Media for video, which really is only good on Windows and its not possible to create high quality WMV on anything other than windows.
    3. AIR can be built on any platform with FlexBuilder, which is based on eclipse.  The windows and mac versions of FlexBuilder are better, but the linux one does ok.  Flash technology is ubiquitous and in version 10, so it’s well tested on all platforms
  2. Successful platforms minimize user headaches in installing and/or using developed apps
    1. JavaFX uses web start and all the other painful applet like launching experiences.  i.e. it’s clunky.  There are so many prompts to users and potential non starters making it very difficult to get a consistent install experience.
    2. WPF is embedded in vista, not available elsewhere. Silverlight is one of the easiest Microsoft deployments.  No complaint there.  it actually works.
    3. AIR and Flash have some weirdness with upgrade prompts and security issues at times.  Generally it’s easy.
  3. Branding matters
    1. JavaFX?  We’ll see on this.  I personally think the Java  is something that people either love or hate.  Keeping Java in the name is going to hurt adoption because the haters aren’t going to go near it.   Also, names like “FX” are pretty lame and non descript.
    2. WPF is lame.  Luckily end users never interact with the name.  Silverlight  – it’s fine.  No one knows what it means, which is probably just as well so that people don’t hate it just because it’s .NET or Microsoft.
    3. AIR – Not bad.  Though, people still call anything flash related as “flash”.
  4. Oh, yeah, the technology is the most important thing!
    1. JavaFX.  Based on my early tinkering and viewing the demos, this has some real power under the hood.  It doesn’t hurt that Java has been around forever and there’s a big community and code base to repurpose.  It’s likely to have more power to do bigger things natively than the other platforms, which are mostly “interface” platforms.  More 3D opportunities available here.
    2. WPF/Silverlight.  There is some power behind silverlight and the .NET backbone.  Flex and Silverlight are very similar, so I’m not sure Silverlight has any technology that makes it standout against AIR.  If you use WPF on Windows you get the backend to do anything.
    3. AIR.  We know what we get with AIR.  It’s a good interface and small game making platform.  You’re not going to put tons of 3D into air without specialized libraries nor are you going to do a lot of data crunching.  One of the most impressive AIR apps out there is the DirecTV NFL Superpass.  It shows up some real cool technology and it doesn’t hose your system.  The Flash engine is ridiculously small for what it does.  The coming inclusion to embed C code may make this one killer engine.

This platform battle is somewhat odd in my opinion.

As a web developer (mostly), I’m unlikely to abandon the browser to produce a Rich Internet Application.  It’s too much work for most projects and I don’t get any of the benefits of having it run in a browser (don’t have to worry about the OS or installs, etc. etc).

For any desktop apps I have to build, I’d rather just use the target platforms native toolset.  The  write once, run everywhere approach just doesn’t work.  Not even with web server back ends.  I’ve tried it many times.  Unfortunately there’s always some gotcha.

I suppose the RIA concept could replace other ways of building interfaces for desktop applications.  Like most web tech things though, it appears the Ad Agencies use the RIA concept more than any serious development shop.

What are you using for your RIA development?  Are you doing RIA at all?


Read Full Post »