I have been having mixed feelings about Flash development for a long time.
Fact is, Flash is here to stay – at least for the next 2-3 years, I assume, until maybe HTML5, Unity and/or others have gained more traction.
A question raised by a friend in a recent discussion was: What features, advantages etc. can Flash list on the “plus” side, besides an enormous installed user base? My reply was: “You already answered your question.”
The thing is, it does not actually matter how “bad”, performance-hogging, 3D-features lacking Flash actually is, if you want to reach a very broad audience, there still is no alternative to it.
Perhaps (un)surprisingly, little has changed since early 2008 when we decided to develop AT.LANT.IS in Flash.
Daniel James of Three Rings confirmed that with the Java version of Puzzle Pirates the majority of users did not even see the start screen of the game, because they needed to confirm to “Trust” the Java applet before – something they were not used to doing, raising their suspicion and in result leaving the game before it had even started. When they changed to Flash with Whirled, that problem was gone. (He was giving some exact numbers, as he likes to do, but I can’t remember exactly).
So, still a good opportunity for all you Flash coders charging a fortune for some AS3 lines…
I never got around giving Flex a serious try.
The most interesting features, like the Live Cycle Data Services, allowing server push-based RIAs, are very expensive, and I did not had the need for anything else that I could not handle using some simple (Y)UI thrown together and hooked into a DB using Grails.
Now, the current implementation of our Atlantis backend polls every n seconds from the server and new messages are added, via AJAX. This led to some browser stability problems and a general bottleneck if several AJAX-”windows” are opened and each of them refreshed every n seconds, respectively.
Affter some research, I stumbled across BlazeDS, which might solve this problem – another part of Adobe technology that was released open source, and should provide the basic functionality needed to access hibernated Java objects from Flex, plus allowing push subscriptions and notifications from the server to the client.
I will check out this tutorial about getting Flex, BlazeDS and Hibernate to work together.
Also, there is a great post about the differences of the various flavors and licensing details, as well as another one.
I will post my findings here.
Came back from GDC on Sunday, and still did not have a chance to write that summary of the sessions I attended, and my general impressions…
In the meantime, I found this very useful presentation, describing how to profile SWFs using the Flex Builder 3 Profiler.
Interestingly, before Flex Builder 3, there was no “real” way to profile your SWFs, so I guess after AS3, this is one more definitive hint at Flash/Flex/AIR becoming a more and more mature and professional development platform.