views:

603

answers:

6

hi,

I am planning to build a RIA about a year from now (when my current contract ends). What technology would you recommend investing time in?

I will need good cross browser/platform support for video, music, and canvas. And ideally I would like to leverage my Python skills.

Silverlight looks interesting because I could use Python through .NET. But I'm on Linux so I'd always be a 2nd class citizen. And it has a low install base. Flash on the other hand has a large install base. And I'm not sure about JavaFX because of the Oracle deal.

Or should I hold my hopes out for HTML 5?

Thanks!

+1  A: 

Silverlight/Flash are interesting but closed platform

openlaszlo is another RIA platform which you should consider, you write in XML/javascript and output to multiple platforms e.g. Flash/DHTML and may be more in future

another candidate is Titanium where you can use python

my personal choice would be to just use plain javascript/HTML and may be HTML5 if possible django on server side, jquery on client side

Anurag Uniyal
unfortunately cross platform HTML/JS video audio support is just not good enough right now
Plumo
+1  A: 

If you have a year to prepare I recommend that you research all the technologies you can. Build the hello worlds for the different platforms. Then build the SAME simple RIA on each candidate framework to get a good feel for the differences. Obviously you will not uncover every little gotcha, but the gross architectures and styles will be evident.

John
+1  A: 

You should focus on “HTML5” where “HTML5” is the new “Ajax” buzzword aka. the “Open Web Platform”—not just the HTML 5 spec itself.

Flash, Silverlight and JavaFX are all single-vendor plug-in offerings but “HTML5” is a multi-vendor browser-native thing.

If you want to an IDE workflow, you can use the Google Web Toolkit to have a Java workflow that targets the browser-native plug-inless feature set. Unfortunately, there’s no GWT-like Python system yet.

hsivonen
+1, and I think we can expect that in a year from now there will be JS libs to bring HTML5 goodness to non-HTML5-aware browsers (using Flash or <object> for <video>/<audio>, etc.)And actually, there is a GWT-like Python system, it's called pyjama: http://pyjs.org/ (never used it and never actually looked at it, just know it exists)
Thomas Broyer
Up with smartclients!
Jason Watts
+2  A: 

I think it's really just a battle between Flash and HTML 5, at this point. And seeing as how Internet Explorer isn't going to support the latter anytime soon, I'd highly recommend using the Flash platform (the Flex SDK is great for this if you don't want to buy Adobe Flash). Silverlight is not widespread enough (yet) in my opinion, but the option is there, of course. Flash is practically ubiquitous by now (98% support?), so that would be the most realistic platform to target at this point. But in a year, that could very well change, so I'd recommend keeping an eye on HTML 5. I imagine using pure HTML/JavaScript as a platform for everything would be pretty nice, but we're not there yet.

musicfreak
yeah HTML 5 is too risky at the moment because of Microsoft
Plumo
+1  A: 

I would recommend Flash/Flex/AIR. It would definitely gives you the most freedom to build what you want.

Flex is great for making RIAs, and now with AIR, you can now deploy to the desktop.

Here are a few links:

TandemAdam
A: 

Check out Titanium while you're looking around. It's similar to AIR, and you can use your Python chops.

Otherwise, I would say go as HTML/CSS/JavaScript as you can, and use Flash for any multimedia that you can't get to work otherwise. Keep in mind that mobile web is exploding and right now Flash is not a great solution for mobile (or at least not yet).

Nosredna