Should You Learn Flex 3 or Flex 4? [Halo vs Spark]

I just received a tweet from baskeddy asking the best way to get into Flex right now.

@garthdb do you know if flash builder is so fundamentally different from Flex 3 that getting a 3 book would be a waste of time?

So Adobe recently released a beta for Flash Builder 4, the latest iteration of Flex Builder. It is a fantastic build and we raved about it on the Summer of Flash Podcast at InsideRIA, but Flex Builder 3 isn’t so far off from Flash Builder 4. The real question is less about the IDE and more about the SDK.

There is a certain level of confusion caused by the names of the Flex products. Flex Builder is an application designed as the integrated development environment (IDE) of choice for developing RIA for the Flash Platform, while Flex usually refers to the Flex Framework and standard development kit (SDK). The confusion is understandable and is most likely the main motivation for the name change to Flash Builder.

So although there aren’t major differences in the Flash Builder application it does come with the Flex 4 framework and SDK. The Flex 4 framework is drastically different from Flex 3. It is incredibly powerful and will change the way Flex developers work. However at the time of writing this post it is still in Beta and the learning process is a bit more rocky. There is not a Flex 4 book you can pick up as most publishers will wait until the final product launches.

This brings us back to the initial question – should you spend your time learning Flex 3 or Flex 4. I guess the answer to that depends on what you are planning to do and how you learn best. If you are learning in your free time and are happy to experiment and play I would recommend jumping in to Flex 4 head first and enjoy the deep new feature set. However if you are working on a project for a client or prefer to learn from a book structure you should probably spend your time with Programming Flex 3 and the Flex 3 Cookbook. It will not be wasted time. It would help you nail down the basics, but there will be a certain amount of relearning when the Flex 4 final product is released.

One final thought to add: although Flex 4 is very different from Flex 3, they are both based in ActionScript 3 and having solid AS3 knowledge will help in either framework. I would really look at The ActionScript 3.0 Cookbook and Essential ActionScript 3.0. They are both excellent for learning and reference; I usually keep them close.