Over the last few years as a Flash Developer, I’ve noticed something. Flash isn’t what it used to be. Back in the days of Studio MX, when I first encountered Flash, it was the Wild West of interactive development. Much of that had to do with it’s labeling as a “fad” and the fact that it was the only real IDE that could write small and compelling interactive content for the web.
Now, several years later, in the modern wave of RIAs, offline capability, the HTML5 canvas, mobile devices giving a full desktop experience, and an undeniable mainstream shift to rich, portable online content, Flash as a platform is on the verge of becoming truly ubiquitous. However, Flash as a content creation application has been lost in the shuffle at some point along the way. With the recent relaunch of the Flash Platform, and the overwhelming call for more Flash-based content, I wanted to make heard our collective voice as devigners inside of the Flash IDE.
This article is a call to the community, to make the IDE that so many of us first learned to program in what it once was. I can already hear some of you asking “What’s wrong with the Flash IDE?” Well, the problem may, in fact, be bigger than just Flash, but I’ll get to that in a minute. For now, let me attempt to explain what we Flashers observe on an all too regular basis. To put it mildly, Flash has become bastardized. It’s unlike any Adobe product in the entire Creative Suite, and that may not necessarily be a good thing.
Now what does that mean? What do most people think of when they think of the Flash? A timeline? An ActionScript editor? A splash page/banner ad creation tool? It’s the foundation of the Flash Platform, but it’s slowly losing its identity due to lack of refinement and advancement. I would go as far as saying that Flash CS4 is still absolutely riddled with bugs and seems to have been only lightly skimmed over during the QA process.
Even its name hasn’t gotten attention. The “Professional” was only added when there were 2 versions of Flash. Now there is one. I think we can remove it now. As harsh as that sounds, there are issues that have plagued developers in the Flash IDE for years that still exist today, without explanation or resolution.
All of the time, attention, innovation, marketing, and feedback that Flash misses out on seems to go into Flex, AIR, and most recently, Flash Catalyst. Just to be clear, this is in no way a Flash vs. Flex debate, as I truly love them both and am super excited about their future together.
Some of the evidence of Flash falling behind is pretty hard to miss. Flash CS4 can be an absolute hindrance to productivity due to its painfully slow performance and constant, almost predictable crashing (even on modern machines). Flash literally crashes, on average, once or twice a day for me, more depending on what I am doing. This really isn’t OK to us. I don’t use a Mac, but known Flash dude @JonMacDonald has informed me that Flash’s integration of OSX Spaces is an absolute nightmare. I have noticed the UI panels in Win XP to be highly buggy. Case(s) in point: try to reset the Debug workspace back to it’s shipping state after modifying it. It can’t be done. Once you change it, it’s essentially useless. Also, if Flash notices coding errors at compile time, it will still attempt to publish a swf, resulting in inexcusably-long publish times and the “Cancel” button in the “Test Movie” prompt to merely be there for show as it requires multiple clicks and confirmations.
Flash has always had a history of unpredictably dealing with other Creative Suite file types, but hope was high when we were told that CS3 would have a native importer for certain Adobe files. However, Photoshop and Illustrator files imported into Flash change can color profiles and lose fidelity, and must be re-imported to be updated instead of having round-trip editing functionality.
One other note of interest that I have never seen pointed out is the fact that Flash and Illustrator have this strange love affair. They are the only 2 Adobe CS programs that I know of that allow multiple text objects on a layer. When Flash CS3 came out, Adobe made it very clear that Flash would now implement the drawing tools from Illustrator, specifically drawing attention to the pen tool. Whenever you try to import a file in Flash CS4, it always, without fail, defaults to the .ai filetype, which must be deselected each and every time. You can specify Flash symbol type and text inside of Illustrator. Why Illustrator? This isn’t in any other Creative Suite program that I know of.
Many of us were squirming with glee and fanning our faces with our hands when we found out that Flash CS4 was getting a sweet new Motion Editor similar to the one in After Effects. After a few weeks of incorporation into my daily work, I gladly got reacquainted with “Right-click>Create Classic Tween.” The question now is ‘why is the new motion editor/tween model not nearly as friendly as it was marketed to be, and when will the it be exactly like their After Effects counterparts? ‘. As it stands, the CS4 tween model sets unneeded properties and keyframes that I never asked it to set, and then doesn’t allow me to change or remove them. This type of proprietary workflow is part of what I mean when I say that the Flash IDE has been bastardized.
Some other minor examples: Thank GOD for the Text Layout Framework, because the current text engine is literally broken. Why are the drawing tools that clunky, weird mix of pixels and vectors? Why is there still not a triangle setting in the polygon tool, and I have to click a button in the Properties panel to get a prompt that should be in the Properties panel itself now? Why is SWFObject the default method for embedding Flash inside of HTML in Dreamweaver and Flex, but not Flash?! And when, exactly, would I not want to use stroke hinting?! And how psyched were we when we found out we’d get 3D in Flash Player CS4? Super excited, right? Well, as it turns out, it’s more like 2.5D. But that’s OK, I can let that one slide. It’s still really cool.
At one point we were told that .fla files were history and that XFL files were the way of the future. Now, this is an interesting one. Flash CS4 was supposed to use the XFL format exclusively. XFL was supposed to be a hybrid XML/zip file similar to a zipped up Flex project, but had much more flexibility when interchanging the assets within it. I mean, it was big enough news to get Colin Moock to blog about it, so it had to be big, right?
However, it became this muted transport vessel for After Effects and InDesign compositions into Flash, and we were never really given an explanation. This is the heart of my problem with iterations of the Flash IDE: old familiarities are held onto for unknown reasons, while originality and creative development are added elsewhere. We as a community are left with only guesses. Remember how I said that the problem may be bigger than just Flash? Well, I have never been invited to a Flash Bug Quash or a Flash Open Iteration Meeting and to this day, I know not one single thing about a Flash IDE Bugbase. Some of you may remember that Technical Product Manager for Flash, Richard Galvan, had encouraged us to leave feedback on his blog in an attempt to let users get some things off of their chests. But, other than a quiet follow-up, we have seen little in the way of steps to remedy those issues.
Now, I’m not slamming Richard or the Flash team at all, as they’re obviously capable of some pretty radical things. The point is, Flash users have been crying out for innovation and fixes for years, and here we are still. Further to the point, there has been only one public pre-commercial release of Flash that I know of and even it was essentially just Macromedia Flash 8 with an AS3 complier. Flex now has nightly builds, which is great …if it’s your primary IDE.
If any IDE needed constant community feedback, it was, and still is, Flash. Before Flex, I don’t remember hearing “Flash is for designers”. I’m not sure how that started, but let me be the one to remind the community: There are still thousands of us who actually still do real development in Flash. Think about this. Have you ever tried to do the following quickly and easily in Flash? Drag and Drop with hit tests/areas, validating data, item rendering, constraint-based layouts, data binding or collecting/managing web services? There are no AJAX, CF, PHP, Java. ASP.Net or BlazeDS/LCDS wizards in Flash.
Things in Flex have been so intuitive and absurdly easy, yet the Flash IDE is now almost 10 years old, and we’re still using basically the same editor as we were in Flash MX (you knew I wasn’t going to let that one go unmentioned). The ActionScript editor and the Flash Platform itself, has outgrown the Flash IDE.
There are a huge number of ActionScript Developers that have made the switch to using Flex Builder as their primary code editor. There are even people who use open-source alternatives such as FDT and FlashDevelop exclusively now, and we as Flash developers are asking “What about us?” Spending that time in such a powerful and robust Eclipse-based IDE, with all the awesomeness, forward-thinking approaches, and constant community-based improvement that Flex encompasses, leads one to wonder where Flash fits into the big picture.
I mean, if Flash Catalyst has a timeline (albeit rudimentary) and is built on Eclipse, why can’t Flash be built on Eclipse? While we’re at it, why can’t there be a Flash SDK and a Flash Framework? The current component kit is lightweight, but extremely limited, especially when compared to the Flex Framework. Why can’t Catalyst, Flex, and Flash share a component framework or the Flash component set be lightweight MXML? Just thinking out loud here. BOTTOM LINE: If you’ve read this far, you know a lot is going to have to change in order for Flash IDE-based developers to feel like Flash isn’t a 3rd class citizen in it’s own platform.
What I would love to see, and I believe the Flash community deserves, is an active discussion between Adobe representatives and the Flash community which leads to solid proposed solutions to the issues listed in this post. I know it sounds like quite a lofty goal, but think how progressive the last few years have been for the Flash Platform. Gumbo, AIR, Catalyst, Alchemy, Astro and all the unbelievable things people have created with them. Imagine what we can do to just a single IDE with a little effort, time, a lot of feedback, and a ton of Cocoa code.
I know this wasn’t a short winded post but Flash is my first love, and I can’t sit back and let it be left behind any longer. I really think if we all work our butts off together, we can make some amazing progress for the Flash community and the Platform as a whole.
A HUGE thanks to @JonMacDonald for taking the time to review, critique, and support the community’s needs.
P.S. This is a time for positive, constructive, thoughtful discussion and exchange over the ways we can improve the Flash IDE and restore it’s place in the Platform. And with that, here …we …go. Flash on!
UPDATE: I was going to save this for another post, but since it now seems appropriate in scope, here we go.
I’m just thinking off the cuff here, to fuel the discussion. These aren’t ideas I’m necessarily pushing. Now, I can’t talk about Flash without bringing up the recent re-launch of the Flash Platform and the topic of Flex being rebranded. I understand why it’s happening and that Adobe needs to make money, but without getting into detail, I personally think it creates more confusion than it adds.
When it comes down to it, what are the real differences between Flex, Catalyst, and Flash, and why should we keep so many of the overlaps? Why do we need 2 products with timelines that publish to swf? Do we really need 3 applications (Flash Catalyst, Flex, Fireworks) that write MXML, HTML, and CSS? Should Fireworks and Flash Catalyst be combined? (Needs reference. Not my idea, give me the link if you come across it so I can give credit.)
Will Captivate be called Flash E-learning Creator now since it publishes to swf? [Not my idea. Can’t name source at this time for NDA reasons.) Should there be a standalone ActionScript/MXML editor that ties into any program you want? Should Flash Catalyst be the new Design View or States Manager in Flex?
Lots of questions to think about, all affecting the future of the Flash IDE. Nothing of real substance, just trying to get the ball rolling here.