Recently I started playing around with Silverlight to create a game.  A fun time was had by all (being just me) in creating it, and I learned a lot.  After sharing it with everyone I started looking into other rich Internet application technologies out there. 

The biggest one right now is coming from Adobe with their Flash/Flex/AIR technologies.  I used to create some things with Flash a long time ago and when I was getting more and more into .NET technologies Flex came out.  I immediately went back to Flex to see what I could do.  I was immediately stopped by the huge price tag and that was it.

The price tag is still there, and to someone who has already invested in other tool sets just can't justify getting that as well.  What it comes down to is what Microsoft is trying to do: Get designers and developers into the same tool sets.  While it sounds all peachy, the tools MS has out just seem strange to me.

Flash has one tool for everything.  You are able to code up some ActionScript in the same window you design a button.  Everyone can be on the same page pretty easily.  With MS's offering you have 3 tools: Expression Design, Blend, and then Visual Studio.  Now here's where I have the issue.  Design and Blend should be the same tool.  While doing things in Blend I kept trying to do things that I could do back in Flash 3 and 4.  Fact is, the design tools in the latest Blend just stink.  You can use Expression Design to do some things that should be available in Blend, but you have to convert everything to a path - like a stoke on some text.  Converting to a path sucks as well because there is no "Un-convert from path" once you've gone down that road.  This becomes really apparent when using text, but is an equal pain with shapes and other objects as well.

Once you've got things "just right" in Design you then have to go to Blend to configure your animations.  What a pain in the ass.  It's almost as if Microsoft is trying to create a new job position "design and code integrator" that is just not needed.  A designer should be able to do both the design and animations in one tool with no conversions.

The ease of use is also pretty staggering.  I wanted to make a cool visual button, and I downloaded the tutorial to do it.  After looking at the 1 of 48 pages (seriously) it would take to make a button I decided to go with an ugly square with some text.  That was easier!

Flash has got a ton of designers too, designers that for some weird reason like Macs.  Whatever their vices, that is their choice, and rightly so Flash can be designed out on a Mac.  For some strange reason Microsoft ripped out this functionality from Expression Design.  Big WTF on this one, as there goes like 75% of the designers.  Great...now I have to design stuff myself.  You can bet you'll see lots of cheesy looking apps with "I'm not a designer excuses" attached in the future on the Silverlight...greato potato.  So far I see a fat FAILURE next to the Microsoft's goal of getting the designers and developers on the same page with Silverlight.

To put further heat on Silverlight, Adobe just came out with AIR.  AIR allows you to have a Flash applet outside of the browser window, just like a regular OS application.  AIR is kinda a, "yeah it's cool, but after 30 minutes who cares", type of feature that allows you to run Flash apps outside of a browser, besides there's already ways to Interop with Flash through other languages already.  Tack in an Internet aware client and bingo bango same deal.  I remember looking at how to use Flash in a Windows app a looong time ago and realized after viewing a few top 100 videos from AOL that they could have accomplished the same years ago.  The thing is though, Flash has still got a ton of designers, and enough ActionScripters to develop kick ass apps to further the AIR phenomenon, so who knows.  AIR does suffer from UI slowness, which roughly means that when I click on a button, in applications I'm used to something happening immediately.  AIR makes my computer feel a tad slowish because it's grabbing crap off the net.

JavaFX is the last thing I took a look at.  So far JavaFX could be huge, as it has tons of developers that would love to roll right into a RIA and start coding.  The problem here is again designers, which I see Flash not losing for a loong time.  JavaFX is has a lot more of the Open Sourcey taste to it though so who knows what kind of designer that side of the fence can come up with.  Until that time, and until JavaFX can really come out with something tangible it's not really a threat and is already losing the web 3.0 battle.  With their OS'ness though they are able to run on Mac's (and Linux) equally well so that could be a head start there...

This battle is far from over and just beginning.  Right now, it's a "what you know...use" world as nothing out there is making me want to jump ship to another side.  The one thing I love though is that we're finally seeing ways that you can make applications that truly act, and look exactly the same across browsers and operating systems.  Very cool indeed.