Introducing Red Sun - a Ruby to Flash bytecode translator and UI framework
by Jonathan Branam
Introduce Red Sun - A Ruby to Flash bytecode translator and UI framework that enables rapid
development of a Flash SWF using Ruby idioms and capabilities. The goal of Red Sun is to bring the
benefits of a strong dynamic language with good syntax to the existing dynamic features of the
Actionscript 3 virtual machine inside the Flash player.
Red Sun translates Ruby 1.9 bytecode into Actionscript 3 bytecode suitable for execution on the
Tamarin virtual machine embedded in the Adobe Flash player. The library maps Ruby idioms into
equivalent idioms using the dynamic language features in Actionscript 3. Red Sun also includes the
foundations of a dynamic UI framework for rapidly building user interfaces targeted at the Flash
runtime.
Red Sun can compile Ruby classes directly into Actionscript 3 classes and offers uses translation
conventions to implement Ruby features that are not available to Actionscript 3 such as operator
overloading. Red Sun also allows Ruby code to directly manipulate a loaded or generated SWF before
it is returned to the browser to support code generation based on data definition or other runtime
features.
Red Sun is currently in an alpha phase and should reach a beta by the time of RubyConf and be
appropriate for wider adoption and addition to the open source project team.
About Jonathan Branam
Jonathan Branam has been working with computers since the days of the TI-99/4A in the 80s. He cut
his teeth on the Commodore 64 before upgrading to an 80286. There he discovered the simplicity and
power of programming in assembly language which surely stunted his understanding of dynamic
languages for many years to come.
After working in C/C++ in the video game industry, Jonathan discovered Perl and Python and found a
welcome home in terse, powerful syntax and languages that cater to the human rather than the
machine.
Having returned to visual work using the Flash player and Flex framework, Jonathan longed for a
return to the power of dynamic languages and found an instant attraction in Ruby. His desire now is
to bridge the gap between Ruby and other execution environments such as the Flash player to bring
the development benefits of a dynamic, meta-programming capable language into other contexts.