Note: Be sure to read to the end for an update 2020 update.

A friend reached out to me to ask what I thought of Apache Royale and I thought it would make a good blog post.

What is Apache Royale?

Apache Royale is a rebrand of Apache Flex's FlexJS project. Royale would allow you to create HTML(5) applications with MXML and ActionScript. It is independent and separate from Adobe's Flash Platform.

There are a lot of 'legacy' Flex apps out there, so from that perspective it makes a lot of sense to allow a Flex Developer to repurpose their AS3 and MXML skills in order to build HTML5 applications with no reliance on the Flash Player or Adobe AIR. That is great.

Where do I fit in?

While I am still a PMC member of the Apache Flex project, I am not involved with Royale in any way. I haven't followed Apache Royale very closely, and am even less so since it was promoted to a top level Apache project, separate from Flex.

You can take my opinion and understanding with a grain of salt.

What do I think about Royale?

Despite the impressiveness of the technology, Royale does not allow you to convert a Flex application to an HTML5 application. It is expected you will create a new application from scratch. And since you're doing that regardless, why not use a technology that is more 'native' to HTML(5) development? Such technologies might be AngularJS or React.

I fear the target market of Royale--Flex Devs who want to build HTML5 applications--moved on many years ago.

The flip side of that is that HTML5 devs change their mind on the framework of choice every few years. They have embraced ActionScript-like things such as TypeScript and frameworks built with it such as Angular. These are clearly not as HTML5 'native' like AngularJS or React are.

Could the tide of interest swing back to ActionScript and MXML? I don't know.

Final Thoughts

While Apache Royale is a really cool project, I fear it is too little too late. I don't have any problems building HTML5 applications that would be solved by moving to a MXML / ActionScript solution. There are already other frameworks and tools for converting from ActionScript to JavaScript, but they have not gained a lot of traction. I see no reason why Royale would change that.

I do wish the team luck, they have some of the smartest people I had the privilege of knowing. For now I'm content building Angular applications to solve client problems.

2020 Edit

Yishay contacted me to tell me about the emulation components built into the Apache Royale. These are designed to make migrating from Flex to Royale easier. Some more info, provided by Yishay:

  • Flex Business Application converted to Apache Royale
  • Dev Conversation about Emulation Components
  • It sounds like a good thing to add and support for the Royale team, but have not looked into them personally.