« Foo Camp | Main | Flex Builder 2 Now Available at Macromedia Labs! »

October 06, 2005

Flex Builder 2 Announced

Today at the Web 2.0 Conference, Kevin Lynch gave the first public demo of Zorn and talked about its capabilities. He also explained its role in a larger initiative we're undertaking, called the Flex 2 Product Line, to move the Flash Platform forward in an incredibly dramatic way.  Up until now, we've been quiet about what we're doing, but with today's announcement, I can talk openly about what I've been working on and wanted to shed more light on our plans and on the features of Zorn, which I'll now call by it's official name — Flex Builder 2

The Flex 2 Product Line consists of 4 main products:

  1. Flash Player 8.5
  2. Flex Framework 2
  3. Flex Builder 2
  4. Flex Enterprise Services 2
Flex Builder 2 includes the both the Flex Framework 2 and the Flash Player 8.5, so here's an overview of those components:

Flash Player 8.5

Flash Player 8.5 builds on the incredible features of Flash Player 8 that we released just about a month ago. But while the features of Flash Player 8 were primarily designed to enable dramatic new visual capabilities, 8.5 is focused squarely on the code aspects of the player.

Flash Player 8.5 features a new version virtual machine that is dramatically faster and more scalable than previous versions. It features just-in-time compilation to native code and its object system is much more compact and optimized. This means that not only will your code run faster (between 5-10x) but it will use less memory. Flash Player 8.5 also introduces ActionScript 3.0 which is a much more robust version of the language based on the latest ECMA specs. It has a bunch of really great new features that people are going to love, including E4X, which allows you to declare and manipulate XML in a very natural way syntactically, regular expressions, raw sockets and a ByteArray class for manipulating binary data and an event system that is built in and much more natural and easy to use. There are a lot of other features as well. This is really just the tip of the iceberg.

One of the most important things in ActionScript 3 is that we've enabled the language and runtime to be much more strongly typed and to catch more errors both at compile and run time. For developers who like languages such as Java and C#, this will feel much more natural.

One of the things that might surprise people is how far along we are with such a major innovation so shortly after releasing Flash Player 8, which itself was a huge release. The answer is that they were developed in parallel. We've been working on the new VM for over 2 years, and had in fact hoped to get it into the release of Flash Player 8. However, we wanted to make sure we got everything right and that it really provides a quantum leap improvement in code execution and reliability, and so we held it up to get into Flash Player 8.5. People who've seen it have been blown away, so I think you're going to enjoy it.

Flex Framework 2

Flex is an ActionScript-based framework that makes building applications for the Flash Player much, much simpler. For those that haven't seen Flex before, it has a declarative, XML-based language called MXML for describing UI layout, and allows you to write imperative ActionScript code to handle events, interact with data, etc. If you're familiar with technologies such as ASP.NET, it will be very familiar, but instead of writing code that runs on the server, it compiles down to ActionScript and runs in the Flash player.

I should mention that the fact that we are talking about the Flex Framework is incredibly important. While many people think of Flex as a server product, from the beginning it has really been 2 things: a rich, client side framework for building user interface, and a set of server side runtime services to enable integration with back end application logic and data. In Flex 1.x, these were sold as a single product. What we found, however, is that customers wanted more flexibility in how they purchased these components and so for Flex 2, we've split them into client and server offerings that can be purchased independently. So when I refer to the Flex Framework, I'm talking about the client side portion of Flex. This will ship with Flex Builder 2, and you can use Flex Builder's built in compiler to produce SWFs that can deployed without the server.

Flex Enterprise Services is the other half of the product formerly know as Flex, and while it won't be available on the 17th, we'll be making it available in the near future. Since it's not going to be available on the 17th, I won't go into more about it here, but I will say that everyone who has seen it has been blown away by its capabilities. One other thing to mention about both the Flex Framework and Flex Enterprise Services is that they have a huge range of new features. When we first started talking about Zorn, and Mike Chambers posted that it would feature Flex and be able to compile, a lot of people analyzed that purely in terms of Flex 1.5 and tried to figure out what would be in the tool and what would be require the server. This led to speculation that it was some stripped down version of 1.5. It's not. Both the framework and the server are much richer than 1.5.

One of the cool features of the Framework that Kevin demoed today is called view states. This allows you to declaratively specify how a component or application changes visually in response to some event, which eliminates a lot of code that you had to write previously. Flex Builder allows you to visually design these states, which makes building dynamic looking apps much easier.

Flex Builder 2

One of the first things that I think needs to be said is that you should not think of this as an update to the product called Flex Builder 1.5. It is a completely, from the ground up, new product that is unlike anything that Macromedia has ever released.

Flex Builder 2 is built on Eclipse and our goal in doing so was to create a tool that is a robust developer focused IDE that can integrate with other tools and processes that developers use today. I'm going to give a deeper drilldown into Flex Builder 2 features in a followup post, but briefly here are the key feature areas of Flex Builder 2:

Of course, one of the key things about Flex Builder 2 is the fact that it's built on Eclipse. This provides users with a bunch of cool built in features, and allows them to easily integrate a huge array of incredibly useful tools. One of the cool ones that I like is local history. This allows you to basically compare different versions of your files without having to set up or think about version control. It happens transparently for you.

Downloads of Flex Builder 2 Alpha Available Oct 17th, 2005

I think the most exciting news of Kevin's talk is that we're making Alpha (that means very early!) versions freely available starting at our MAX conference on Oct 17th. On that date you'll be able to download Alpha versions of Flex Builder 2, which includes the Flex 2 Framework and Flash Player 8.5. You can sign up to be notified when it's available http://www.macromedia.com/cfusion/mmform/index.cfm?name=labs_earlybird.

This is something we've never done before but it’s part of a big push we're making to engage with the community more deeply and provide earlier access to what we're building, while we're building it. The hope is that by getting you earlier access we'll get more and better feedback earlier in the development cycle, and that we can factor that in to what we're building as we're building it. If you currently use Flash or Flex or if you thought that they weren't really for you, download it and try it. I think you'll find it to be a dramatically different way to develop for the Flash Platform and a great way to create RIA.

Posted by Mark Anders at October 6, 2005 03:57 PM

Comments

that's VERY nice..

Posted by: rodrigo at October 6, 2005 05:24 PM

YEAH!! Cant wait for your followup post. One quick question:

It sounds like you can navigate very similar to intellisense (Micro$ofts)
does the code assist also have code completion on objects method/variables (if you get what I mean). Im really asking how far did you go.....

Posted by: Campbell Anderson at October 6, 2005 05:56 PM

Actually, code assist IS code completion. That's just the Eclipse term. And yes, you get code completion on objects, methods, variables, function parameters. And it works on everything dynamically, so as you add new classes, methods, etc, those appear in the hints.

Posted by: Mark Anders at October 6, 2005 06:04 PM

Wow, all this sounds awesome!.

Is Flex Charting Components 2 going to be part of Flex Framework 2 or is it a seperate module/product and will there be an alpha release of them too?

Any Flex Reporting Services type module/product coming out soon e.g. creating reports via Flash Paper using Flex? that would be pretty sweet :)

Posted by: Flex Fan from downunder at October 6, 2005 06:14 PM

The Flex Charting Components are not part of the Framework, but a separate product. There will be an alpha release at the same time and you can download them, too. Sorry for not mentioning them in my post, but there's just too much to write about!

As for the reporting services, I don't believe there's anything like in the current release. However, getting this type of feedback is one of the things we hope to accomplish by getting early versions out there. Great catch and thanks for the feedback!

Posted by: Mark Anders at October 6, 2005 06:57 PM

a new VM...does this mean that all code is no longer compiled to as1? Will we be able to publish our old as1 projects to fp8.5 and benefit from the new performance boost?
Because if not, I'll have to plan my holiday a bit different next year...(I've got 100.000+ lines of .prototype code lying around waiting to be converted to classes ;)

Posted by: Tom Versweyveld at October 6, 2005 11:48 PM

Hello Mark, I have a basic question that has been on my mind since the "news". Will FlexBuilder 2 feature a new (faster) compiler than the current Flash IDE compiler? maybe similar to the speed / capabilities of the MTASC compiler?

Posted by: Britt Mileshosky at October 7, 2005 10:44 AM

This is all great news and I compliment you guys on the nice job.

Thou I should say that with all this talk about player versions, I cannot help remembering this: for those of us out there building B2C, browser-based applications ( which I believe is the great majority of us flash devs ) we must still wait for player 8.5 ubiquity before all this becomes a happy reality for us. Or am I wrong? :(
After all, our older cousing - the java runtime - has had such features (and possibly more) for God knows how many years now, yet it never became a standard for web apps and we all know the main reason was lack of ubiquity.

So with strong RIA competition approaching land ( sparkle, .NET on WinFX, what have you.. ) let's just hope slow player adoption rates do not prevent the flash runtime from being in the RIA world what it has been for animation/interactivity on the web till this day. [ fingers crossed ! ]

Posted by: jay araujo at October 8, 2005 03:18 AM

Wow. This is great news. Congrats to the Flash Player and "Zorn" teams. I look forward to tinkering with the new AS3 language.

I've read up on the fact that the new player will have AVM2 for executing AS3 content. Does this mean that AS3 will be compiled to a new set of action codes, or is AVM2 simply a better implementation of interpreting/JITing the same action codes as we've had over the years? I guess what I'm asking is whether the SWF format will be the same for AVM2, or whether new action codes have been introduced in the SWF format that take explicit advantage of AVM2?

I ask this because we use some third party tools to optimize our SWFs, and it'd be good to know when/whether we can hope to continue using them when targeting Flash Player 8.5.

Thanks for all the amazing work! A mark & sweep GC and JIT in the same release is definitely awesome.

Cheers,
Anon

Posted by: Anonymous at October 8, 2005 04:45 PM

Mark,
Thanks for the write-up -- really incredible what you've all been up to.
So in terms of code performance and capabilities, to what extent, if at all, will the upcoming Flash 8.5 virtual machine be competitive with what possible today with applets on the JVM? Going forward how should folks decide whether to using Flash or Java applets?
Thanks, and again, great work!
Jack

Posted by: Jack at October 9, 2005 04:07 PM

I know it mentions it in the FAQ but I am wondering how long the lag will be before an OS X version of Flexbuilder 2 is released? Are we talking weeks or months?

Posted by: Andrew Knott at October 10, 2005 02:13 AM

Its all really exciting, as a web designer with some programming skills I am really frustrated by the limitations of HTML and the difficultly of trying to support old browsers and bugs.

Being able to develop and deliver Rich Internet Applications that work like desktop applications and services for all users, irrespective of platform or browser is I am sure something we are all desperate for.

However I am also concered about pricing for Flex2, just how commpetitive will this be, for many of the small web developers and freelancers a price close to Flash Professional will be required but my current undersanting is that is it substancially more than this.

Posted by: david at October 10, 2005 01:53 PM