Adobe Flash or Visual Studio? A meaningless comparison?
On re-reading that article, it seems to me that it makes a number of unfair and inaccurate comparisons. These are mainly due to its failure to make any distinction between Flash (Adobe’s graphics technology) and Flex (Adobe’s Flash programming framework) and its additional failure to acknowledge the existence of Flex IDEs such as Flex Builder and Amethyst.
The Register’s critique concentrated on Adobe’s ‘Flash IDE’ (‘Flash Professional’). This IDE has drawing and animating tools to let you create and animate graphics on a timeline. As an added bonus it also comes with an ActionScript code editor and debugger to let you write scripts to control your animations. Behind the scenes, there is also a code library - the ‘Flash framework’ - which can be used by programmers developing Flash applications.
So what, then, is Flex?
Put simply, Flex is a superset of Flash. It is a more complete programming framework which includes and extends the core libraries available to developers. It includes AIR, a runtime which lets Flex break out of the web browser and create standalone applications on the desktop. These days, Adobe tends to refer the whole bundle of Flash, Flex and AIR code libraries, tools and technologies by the all-embracing name, The Flash Platform.
The Register article appears to work on the assumption that Flash programmers are obliged to use the Flash IDE. From a programmer’s point of view, the Flash IDE is most unlikely to compare favourably with Visual Studio. Many of the conclusions of that article are based on the comparisons of those two IDEs.
Let me take a few quotations from The Register to explain why this is an unfair comparison.
“Using the .NET framework means Silverlight 3.0 offers more robust programming tools than Flash developers have access to. Visual Studio 2008, the primary IDE for Silverlight, blows Adobe’s Flash IDE out of the water.”
First let me say that I agree wholeheartedly that, for complex coding, Visual Studio does indeed blow the Flash IDE out of the water. But I would have liked the author to have pointed out that Adobe’s primary application programming environment for the Flash Platform is not the Flash IDE; it is Flex Builder. Moreover, Visual Studio is not restricted to Silverlight development. You can use the full range of Visual Studio development tools for Flash/Flex using Amethyst. So the comparison between the Flash IDE and Visual Studio is a red herring.
”[In Visual Studio] There is no frame-based animation, so it works more the way programmers are accustomed to working - with a collection of files compiled into a finished app.”
The assertion that the lack of tools (frame-based animation) is a strength seems odd to me. The Flash IDE is designed to give animators the ability to create frame-based animation. Visual Studio (whether for Silverlight or Flex) and Flex Builder are environments for programmers. Different kettles of fish altogether. Why compare them?
”The other thing you get with Silverlight is access to "real" programming languages. Sure Adobe’s ActionScript is capable of creating some powerful apps, but Flash and even the Flex framework lack the sophistication and maturity you’ll find in the .NET framework. Silverlight also offers a much wider range of development tools - Silverlight apps can be built with anything from C to Ruby.”
I don’t know in what sense ActionScript is not a ‘real’ programming language. ActionScript 3.0 is a darn’ powerful OOP language. I spend a lot of my time writing in both C# (most of Amethyst is written in C#) and also in ActionScript (the entire Amethyst Professional visual design environment is written in ActionScript) and I can’t say that one of those languages seems any more ‘real’ than the other. Each has strengths and weaknesses, but ‘unreality’ is not one of them.
I certainly share the author’s admiration of the .NET framework, but I am not convinced that something as vast and monolithic as .NET is required for the type of applications (especially browser-base applications) in which Flash/Flex specialises. Incidentally, it’s not really true that Silverlight applications can yet be built with Ruby - or, at any rate, not applications that you’d want to let loose on the world at large. A .NET version of Ruby (IronRuby) is currently in the alpha stage of development but it has not yet been released in version 1.0 form (incidentally, SapphireSteel Software has a free Visual Studio IDE for IronRuby too).
In fact, by combining Amethyst and Ruby In Steel, you can even program Flex+Ruby applications in a single unified Visual Studio solution! It’s also worth pointing out that Flash/Flex apps can be used in cooperation with Ruby or ‘Ruby On Rails’ applications. I have written a tutorial explaining how to do this.
OK, so in summary, these are the main reasons why I think The Register’s article is misleading:
The Flash IDE is principally for animators and artists. Even though it has some programming support, comparing it with Visual Studio is unfair.
If the author wanted to compare Adobe’s and Microsoft programming tools, he should have compared Adobe Flex Builder with Visual Studio.
No mention is made of the fact that Amethyst supports Flex/AIR/ActionScript development in Visual Studio. This makes it sound as though Visual Studio users have no choice - it’s Silverlight or nothing. That is simply incorrect.
I don’t know of any Actionscript Developers of any substantial skill that spend much time in the Flash IDE. It’s just not meant for developers. It’s only there to allow a designer to throw in some quick code for a button, timeline playhead manipulation or some other simple interaction.
Any serious developer would be using something like Flex Builder, FlashDevelop, FDT or some other IDE/Text Editor with an Actionscript plugin.
I agree with all your points. It is an unfair comparison to make but it is about time that Adobe starting making the comparison, anyway.
Yes, Flash’s roots are firmly planted in cell-animation but the Flash IDE has mercilessly layered over that with aspirations of being a an object-oriented RIA platform.
The result is that a developer used to Visual Studio or Eclipse is confronted with a frighteningly inconsistent and obtuse environment where there are five ways to do anything and all of them non-obvious. The drawing metaphors of frames and layers are co-opted to partition code into states and modules. All the while code is buried or sublimated into dark corners of the interface with no means of connecting or relating parts of that code.
If Adobe ever hopes to lure developers from outside of the Flash faithful, they need to rethink and revamp the IDE. Personally, I think they need to completely invert the emphasis of the interface so that objects are front and center. Everything’s an object w/ optional visible parts and code parts. Objects may still have timelines, frames, layers and, of course, contain other objects. Navigating the relationships between objects should be easy, obvious and ever-present. Most importantly, all the legacy cruft must go like the arbitrary distinctions between movie clips, shapes and buttons.
In short, Flash has to take itself seriously and grow up. It has great expressive power and has amassed all the marketplace "love" it needs to rule the RIA space, if only Adobe would shake things up by building an IDE geared toward making cool stuff intuitively rather than preserving the arcane knowledge of the artist/designer priesthood.
So, come on Adobe, modernize Flash and lower its adoption curve to zero. That will make Silverlight the Microsoft Bob of RIAs and bloggers won’t have to write apologetic blog posts any more.
Sigh. Register have made a mistake. You read the article, you agree that Register shouldn’t compare Flash Professional to Visual Studio, because they are different things (animation/simple interactivity creation tool, and full blown IDE) and then you give Adobe adivises how to make developers coming from Eclipse, Visual Studio to Flash Professional more happy not understanding that developers shouldn’t touch Flash Professional with 12 foot sticks. It is for designers!
Adobe is creating Flash Catalyst which is to help designers and developers work together, but there will be no such tool that will help developers become designers and vice versa.
In short: if you want a fair comparison than compare:
Adobe Flash Professional vs. Microsoft Expression Blend
Adobe Flex Builder vs. Visual Studio (but only features that relate to Silverlight)
ActionScript vs. C#
Flash Player vs. Silverlight player
Flex vs. Silverlight (components side of things)
Flash video vs. Silverlight video features
Adobe AIR vs. WPF (this I am not so sure of, maybe I am wrong).
Actually the comparison of Adobe Flash Professional vs. Microsoft Expression Blend is incorrect. The real comparison is between Expression Blend and the upcoming Catalyst. Expression Blend and Flash Professional are not intended for the same purpose.