Friday, December 8, 2006

Introduction to Adobe Flex 2 and ActionScript 3

Just this week the company I work for (CleanCode) decided to put up a public blog on their webpage. I thought this was a great idea because there have been a couple things I had wanted to post to a blog but didn't really think I had enough to say to start my own. Well, that is until a day later when Jeff and I thought it would be a good idea to set up a group blog, now here we are. Anyways, I've been working with Flex 2 and ActionScript 3 a fair bit for a project at work so just put up a post on that blog about how I've been finding it, thought I'd give a bit of a rundown here and link to the post.

The CleanCode post can be found here (the following has some additional information).

Before I get into this I should really point out that this past week or so is the first time I've ever looked at anything Flash or ActionScript. I am mainly a Java developer, with some Ruby, Rails and C# thrown in for good measure. If I get anything wrong here please let me know because I am still learning and would appreciate the input. On to my post...

Flex 2 is basically Adobes solution to web development in the web 2.0 ajaxy world (yes, I used the word ajaxy and died a little inside). It is a framework built off of Flash specifically for application development, targeted at software developers. This is very different from the traditional Flash as it was mainly targeted to designers. Don't get me wrong, I'm sure lots of smart people out there have used Flash to build applications, but that's not really what is was designed for, Flex is.

Flex has everything we've come to expect from web platforms: visual designer, smooth interfaces and AJAX built in. To design your application you write MXML (or drag and drop components in the editor) and make the magic by scripting in ActionScript. Did I mention that the editor Adobe put together (Flex Builder 2) is built off of the Eclipse RCP? It is, which makes it cool. What makes it uncool is that Flex builder is missing a lot of the functionality that most people have come to expect from Eclipse, or any other full fledged IDE for that matter.

List of stuff it has:
  • Drag and Drop design view
  • Syntax Highlighting
  • Intellisense
  • Debugging
List of stuff missing:
  • Variable inspection
  • Auto Formatting
  • Refactoring
  • SVN integration
  • Plugin support
Okay, so I guess they have about half the stuff I want, but what is missing makes a big difference - especially when building off of a product with most of those features. I guess the big thing I find annoying is the price tag they put on Flex Builder, upwards of $500 which I think is a bit much for the functionality it provides. Good thing they have a 30 day trial.

I really do find Flex Builder to be a good tool to work with though, would like them to implement some of those features but the debugging and all the rest really makes a big difference.

Flex and the version of ActionScript (3) that comes with it are both new versions of flash going together with the new Flash Player 9. Actionscript and the Flash VM have been completely rewritten (still backwards compatible) and they are claiming it's at least 10x faster than the previous versions. Another great thing with Flash is the adoption rate of flash players, almost 40% of the population after 3 months. This means you have a web platform to develop against that almost everyone will have without having to worry about browser versions, javascript or other fun surprises (to a certain degree). That is defiantly a plus, not to mention the apps look very slick (Harley Davidson, Samples).

This isn't to say that Flex 2 is the greatest, it defiantly is not the best, simply another alternative. Actually, there is a lot of stuff that's been bugging me about it and I've hit a number of snags that I'm sure a lot of other people will be running into as well. I guess that means another post on common problems in Flex 2 and some of the solutions I've come across. Make sure to check out the other version of this post too, there are a couple screenshots in that one.

No comments: