Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

in the compiler directory within Falcon's trunk. The generated HTML is inside generated/javadoc within Falcon's trunk. Open index.html in any browser and start by clicking on the Description link at the top to see the overview.

History

Spring 2010

Falcon began as a project at Adobe in the spring of 2010, in response to the Flex community's concerns about long compilation times with the legacy compiler. There were The project began with several months of discussions about improving the old compiler versus starting over with Falcon. The main reasons for starting over were:

1. *The compiler team at Adobe wanted a compiler that could do double-duty as the code-intelligence engine for Flash Builder, rather than being something completely separate that Flash Builder called just to create a SWF or SWC. This approach would avoid duplicate data structures and duplicate algorithms, and would enable live error highlighting based on accurate semantic analysis. The team ended up taking Flash Builder's code intelligence engine, improving it, and adding semantic analysis and code generation to it. The resulting Falcon compiler doesn't have dependencies on Flash Builder though... it's the other way around.

2. *The legacy compiler wasn't designed for compilation on multiple threads. The team wanted a compiler that was designed with concurrency in mind from the beginning, as a primary way to get better – and scalable – performance.

3. *There was an awkward relationship between the legacy asc (which essentially understands only how to compile a single .as file) and the legacy mxmlc (which layers on top multi-file compilation and support for .mxml, .css, .properties, and .fxg), based on their historical development by two separate teams at Adobe. The team wanted a single compiler, designed by a single team, that had a unified architecture, unified data structures, and multi-file / multi-language support from the bottom up.

Fall 2011

A In the fall of 2011, a strategic shift at Adobe resulted a refocus on ActionScript and a defocus on Flex and MXML. Flex was donated to Apache, with a promise to finish the ActionScript side of Falcon and donate it by the end of 2012. Non-ActionScript support was left intact, at pre-alpha quality.

Summer 2012

In the summer of 2012, Falcon was ready prepared for donation to Apache. By this point it has involved approximately 15 person-years of development effort.

The Future

It's up to us now! However, before striking out in radical new directions we should bring Falcon to the point where it can replace the legacy compiler.

Architecture

Falcon is designed from the beginning to support compiling multiple targets in multiple projects in a workspace, as exist in an IDE like Flash Builder. By contrast, the legacy asc was designed to compile a single AS file, and then the legacy mxmlc was built by another team on top of that.

...