PASZ.COM LABS

Thursday, May 25, 2006

Flex vs. Flash IDE

There's been an intense thread going on this week on Flashcoders discussing Flex, and what it means for the future of Flash development. At times, especially when they've felt their products have been misrepresented, representatives from Adobe have even stepped in with comments.

I posted a couple of times, mainly to express some of my confusion over what exactly FlexBuilder is (this confusion seems to be one of the underlying themes of the thread). Is it simply a form-based alternative to the timeline? An improved component library? A better way to build large-scale Flash sites? A way to connect client and server development? Does it complement the Flash IDE or is it the next step in its evolution?

Granted, I've had little experience with Flex so far, due to lack of time, but I do feel that, since this looks like a major paradigm shift for Flash development, there has not been enough information coming out to help existing Flash developers. In particular, I'd like more information about workflow, integration of Flex sites with Flash animations, and general migration. This is not to say that there has been a lack of information overall -- commendably, Adobe has been running a very impressive public beta. However, I feel the messaging of the information has been murky. There are powerful features in Flash that are missing in Flex, and vice versa, and I don't understand why.

I think the problems are partly due to Adobe trying to have its cake and eat it too. Contrast the current situation with the way Microsoft went about the transition to .NET. They went out of their way to explain to developers how the new platform solved problems with the old way of doing things. I guess that's what I'm missing from Adobe: more acknowledgement of the problems with the existing development process, and then an explanation of how Flex addresses these problems. Also, MS made it very clear that the old way of doing things was over. I get the sense that Adobe is trying to hang on to the old approach, even though they secretly think it's on the way out.

Dave Mendels posted the following links to helpful articles, which contain some of the best explanations I've seen so far:
http://www.adobe.com/devnet/flash/articles/flex2_flash.html
http://www.adobe.com/devnet/flex/articles/flash_perspective.html

I definitelly think this quote from the Nigel Pegg article sums up my initial reaction to Flex:
I'll admit it: When I first started working with Flex, I had a hard time understanding why you'd want to use it. It seemed almost too simple. I was so used to the expressiveness and power of the metaphors I'd become comfortable with in Flash that I just couldn't see the point in authoring with anything else. I could do almost anything in Flash and I doubted that Flex could offer the same amount of control. In some strange sense, I even felt threatened. Would this New Big Thing overwhelm Flash and reduce its relevance?


Change can be difficult. Maybe I am too stuck in my current mode of thinking about how to create Flash applications. When I think about building applications, I tend to think of them in terms of Views and Objects, not in terms of Forms and Components. This is a subtle distinction. I guess you could say it's a less structured way of thinking about how to build things. Less structure can sometimes be dangerous, and can lead to sloppy code if one doesn't follow good practices. But less structure can be very freeing and creatively stimulating. For me -- and it varies depending what kind of application I'm working on -- I prefer to think of software development in terms of creating rather than building. It's an art more than a science. (I will grant that this is not a traditional view!)

So I'm still not 100% sold on Flex. At this point haXe feels like a more natural evolution from the current paradigm. Instead of an improved way to create Flash content, it is an extension of the Flash development process into non-Flash realms. Instead of trying to fit various internet applications onto the Flash platfrom, haXe tries to extend consistent development methodologies to various application platforms.

I hope this doesn't come off as too anti-Flex. A great FlexBuilder product will be a boon for a lot of people. However, at this point I'm concerned because I still don't quite get it.

9 Comments:

  • Flash and Flex are, in a way, two completely different worlds. I've heard that the next version of the Flash IDE will include new functionality for developers, but for now, Flex really is the place to be for a coder. With my computer science background, I feel more comfortable with Flex's coding features. It's a true IDE thanks to Eclipse. Flash, on the other hand, is the designer's home. It's focus is on the art and library clips. You add code to your graphics.

    Right now, Flex has the spotlight, so I understand why you feel that Adobe thinks Flex is the new future of Flash. Personally, I think that's untrue. Artists aren't going to play with Flex. Animators and even interface *designers* will probably continue to build assets in the Flash IDE. Similarly, it will probably be a lot easier to mock something up on the timeline than to build an application on the Flex framework. That's what Flex is for, serious enterprise applications. The framework is made of solid, extendable components just for that.

    There will probably be some overlap as well. Flex can embed assets from Flash, so an artist will be able to skin Flex's components. I think, if we see any major change in the Flash platform that results from Flex, it will be that developers will write their code in Flex, then they will use the assets that come from the artists still working in Flash.

    By Blogger Josh Tynjala, at 3:27 PM  

  • Thanks for your comments, Josh.

    First, let me say that, in all honesty, no developer working today on large-scale projects should be using the Flash IDE. They should be using SEPY or FAMES or FlashDevelop, or some other alternative. (Personally, I'm really enjoying FlashDevelop at the moment.) From the standpoint of the IDE, I am looking forward to FlexBuilder as yet another option.

    I definitely don't want to give the impression here that I'm completely anti-Flex. It's more that I'm a bit perplexed by the direction they're taking things. Yes, it may feel more natural for a traditional CS person, but I'm concerned that, as it becomes more like everything else, some of the unique power of Flash will be lost.

    By Blogger adampasz, at 9:30 PM  

  • One of the key differences between flash and flex seems to be its approach to scaling. Whilst in Flash, the ability to scale a whole flash component has been taken for granted ... forever... this is not quite the same in flex. I am still trying to discover the best way of achieving a flash-style "scale everything" approach in a flex application. Any suggestions would be appreciated. Bindon Adobe Flash

    By Blogger Andrew, at 12:43 PM  

  • Scaling is independent of Flex or Flash. You can scale or not scale in either one. Check the ActionScript docs for the Stage.scaleMode property.

    By Blogger adampasz, at 12:14 PM  

  • I hope the comment about "scaling" meaning Stage.scaleMode property was a pun!

    By Anonymous Anonymous, at 1:18 PM  

  • if you like components go with flex. I on the other hand Hate components - they are heavy and not optimized. (dumbed down for the user. Flex has no timeline. that stinks. the timeline is the best thing about flash. you can do a far lot more with flash than you can do with flex period. you people act like you can't load data into flash. Flash gives you a ton of more freedom

    By Anonymous Anonymous, at 2:02 PM  

  • put it this way: name one thing you can do in flex that you can't do in flash. nothing.. I can name a ton of stuff you can do in flash that you can't do in flex.

    By Anonymous Anonymous, at 2:16 PM  

  • I don't get it either. We're on flex 3 now and I've been going through videos, presentations, and articles, but I've found nothing in Flex that I don't already do in Flash. the main thing I see is a much larger components library and thats it. I can read from the file system with Flash, I can easily connect to XML, webservices, or a db via remoting or other methods, so I just don't get it. I guess its just an alternative for people who are new to adobe/action script coming from the programming world. Flex would have made sense to me coming from Visual Studio, but since I already know flash, it seems redundant.

    By Anonymous Ethan Pelton, at 9:05 AM  

  • Yay! This post has finally been liberated from Comment Spam.

    Now just 100 posts to deal with. :(

    By Blogger adampasz, at 2:23 PM  

Post a Comment

<< Home