Prepping Flash for War

Flash vs Silverlight vs HTML5; a no-holds barred grudge match is brewing in this industry.  It will divide developers and companies where there was little contention in the past.  I doubt that this will end in a fatality, but the injuries will most likely fall to Adobe because of its current dominance in the field.  Each technology has its pros and cons, and multiple providers can co-exist, but companies need a reason to choose one over another. I predict most of the debate will be based around the development process; ease of development, quick prototyping, effectiveness of tools offered, development environments, unit testing, system integration, as well as application design and planning. If a company can make great applications in less time, it means that they can make more money.

I’m a fan of Flash, but like most things in life, it isn’t perfect.  Flex and Actionscript have been an integral part of my career and I would like them to continue to be so.  I would like to touch on certain concepts that I think would add more value to the current software offerings and in turn give Adobe an edge over the competition.

Time is an important asset for a company, which is why increasing development efficiency will be a key factor in winning this war. I’m talking about reducing the compiler time, making it smarter and bug free, and adding 64bit support to utilise workstation performance. This improvement can save valuable minutes or even hours depending on the developer.

Speaking of development efficiency, I also suggest that Flash Builder starts supporting Linux.  Adobe doesn’t even have to officially support it, just make sure the eclipse plug-in can work in a Linux environment with or without design view (I personally never use it).  The feature request for having Flash Builder on Linux is one of the most popular requests on the Adobe bug tracker.

Irritations while using Flash products also need to be eliminated. I personally enjoy development work (geek alert!), but when something doesn’t work like expected, it frustrates me to no end. The Flex framework is fairly good at doing exactly that; it’s supposed to save time, and it does, but there are some components that have been buggy ever since its inception and they aren’t being fixed.

The next point is cause for debate between developers, in the end it comes down to preference, but it needs to be addressed. Of course, I’m talking about Cairngorm – or more specifically your decision to support it. I personally don’t think MVC is the pattern to use when handling a Flex application, and other developers in the community agree; hence the creation of several new open- source frameworks. It seems to me that Adobe is playing favorites with Cairngorm and could instead use that development effort in a more productive way.  Adobe should work on enhancing the Flash API and opening up doors to allow third party frameworks to improve their usability.

With complex applications come crucial new ways to design the flow and interaction within the system.  For that, a developer needs tools to show this visually.  Tools like wireframe UI timeline or UML round-trip engineering can combine both design and functionality in a uniform way that all developers can understand.  A lot could be learned from Java and their tools: e.g. offering code hot-swapping to greatly reduce debugging time.

If Adobe is serious about creating a developer language, then a more complex language needs to be their goal.  Multiple-inheritance, polymorphism, overloading, enumerators, abstract classes, destructors, private constructors, decimal data type, threading support – these are only a few of the things that Actionscript is lacking. Some would argue that there are a lot more. I’m not saying it’s a bad language, after all, it does do what it’s supposed to do, but with bigger systems come more architectural complexities that the current language cannot support.

A common topic when debating Silverlight vs Flex is the lack of multi-threading.  I really do hope that this will be implemented in the next iteration of the language because the possibilities it would open would be mind-blowing.  Imagine a system that can execute complex algorithms and computations without disrupting the user experience; that would be a major improvement! Heck, even if the language doesn’t give developers access to threads, just allowing the player to run different threads for visual components and for computations would be a great improvement.

Let me leave you with this: I’ve been a fan of Adobe since I was a kid, and I still am. If any business is capable of surmounting the upcoming challenge, it will be Adobe. I believe that the community surrounding this product will be a key factor in this war; if Adobe listens and responds to our suggestions, only great things can happen.

Speaking of community, I invite all developers and designers to debate and comment on this topic. I think it is one that will be talked about for quite some time to come.  I’d also like to thank Joe Morrison, a Director at Lab49, for letting me bounce ideas off of him.



Share your comments