- Feasible Impossibilities - https://www.impossibilities.com/v4 -

What I think Royale Is and Why I Want It.

There has been a lof ot talk about “Central” [1] lately and I am keenly interested in getting to work with it. I have found that the bits of info I am gleaning from around the web about the project code named “Royale” have me drooling about getting to play with a beta of it just as much as Central. Little bits of information about it have trickled out from events and recently during a conference call covering Macromedias recent Financial Report [2] and today, thanks to a post by John Dowdell on his blog [3] I found out about an interview with Rob Burgess [4] that I just read.
Well, now I am definitely salivating over the potential positive impact “Royale” will have on my every day development work if what is delivered is close to my expectations.

Rob Burgess says, “It’s essentially Flash for programmers.” and that “If you’re a hardcore programmer, you really want a tool to use in a server environment, especially as content merges with logic in next-generation applications…”
Wow. I am so ready for Royale. I was a really big Generator [5] fan, for a lot of reasons. Generator let me merge data in realtime with my swf files. The template method that Generator relied on was sometimes cumbersome, but Generator did have a decent SDK that let you extend and create your own Java Class files and Generator objects to add more functionality. I also liked Generator because it was great for letting the server do the heavy lifting and letting the client side stay lightweight, which often provides the most optimal method of presentation and speed in an application making the end user happy. The other thing Generator did that I found extremely beneficial was that it allowed developers to do some pretty complex stuff in Flash while hiding the business logic of your application and its data sources completely from the end user (read: a developer with a copy of Buraks ActionScript Viewer). It sounds like Royale is going to be able to do all this and more in a much more elegant and efficient fashion. Think about it this way with Flash Remoting as an example:

You have this great new idea for a RIA you want to develop in Flash. Its going to need to pull large chunks of info from a database, and merge it into a datagrid component and a user interacts with your design. Its going to be very data intensive, but also has some pretty complex aesthetic/artistics elements going on and guess what else, its going to need to run inside Central with potentially all the other Central apps fighting over CPU time. Today you would probably start out with some web services, maybe some ColdFusions CFC’s that would talk to your database and you would use Remoting to pull them into Flash, and pass that info into your Datagrid component (You did buy the DRK with the Datagrid component right?) So your RIA Flash app is now starting to bulk up with all the component code and includes necessary for using remoting and the datagrid. Forget about any sort of artwork or aesthetics yet. So right away with current methods, you have to keep an eye on the size of your files, and how efficiently your app can process the data once it has called for and received it. Lots of work going on on the client side. Remember when the first few iterations of the Flash 5 player came out and you tried to pull in that 200k of XML data…whoops! OK, so this is all common stuff and there are some very good solutions and plenty of very well built apps that take this all into consideration and pull things off quite nicely.
However, lets think about how you might accomplish the same thing with Royale in a few months.
Same scenario, but different approach: First you might simply open up a text based template that you have used for your last few Royale projects, and guess what you can open it in the Royale editor, or BBEdit, or Dreamweaver, or Ultraedit, and simply start typing away to set/change your database source, that of course would be local to the server that this Royael template will end up on. Then you might continue editing the same text file, or perhaps add an include statement to pull in the type of SQL query that you would like to pull your data from. A bit further down in your Royale template you have defined the static components that you want the dataset merged with. A little after that you have some instructions on how the rest of the swf files looks, and perhaps a bit of actionscript to allow the user to interact with the dataset. The next section might define how interacting with that dataset will produce a query back to the Royale server to retrieve the next 30 records in that dataset and pull back in the same lightweight server generated .swf file. After you have made a few more changes to your text based Royale template you check the syntax and publish it locally to see the results. Everything looks good, so you FTP all 4k of it up to your development server and query it over the web. A few milliseconds later in Central your lightweight .swf file is returned to you, pre-populated with your initial dataset from your query. There is no delay waiting for the data to populate, its already there. There is also not any sign of where the datasource or webservice was on your server, because, it simply doesn’t need to be in the .swf file since the server has done all the work. No more harvesting folks web services for free data feeds. You might want to make a few changes and have several variations on this Royale template you just made, so you fire up AppleScript (you are working on a Mac right?) and whip up a script to manipulate this text based Royale template and churn out a few more copies with your other clients logos in place. You also write a special version that dynamically calls other Royale templates in as they are being served to pre-render and cache a few of the ones that you know are going to be very popular so your server load wont be so dramatic. Now, your really picky designer just showed up from his 2 hour lunch break and decided that all the art assets need to be a different shade of blue and about 4 pixels up and to the left. Normally this would mean having him stick around another couple hours to break out all the .FLA files, republish them and send them back out to staging and production. With Royale you just do a global search and replace on some text files for the color values and placement of the art assets, all via Pico in an SSH terminal session and a few keystrokes later, everything is fixed and already live and in production.
Now, that was all pure speculation, but it sounds to me from what I have read that this is what we might be able to expect from Royale. I have seen postings that the actual syntax of the Royale templates won’t be so free form, but rather some form of XML structured text file, but I feel that regardless of the syntax or formatting of the file or Royale template if you will, it is something that will make programmers very happy and very productive. Think about this: You could have your ColdFusion, PHP, Perl developers who have never touched Flash before, cranking out some decent apps in no time.
Imagine the potential for automation and scripting and how this could improve workflow, development processes and turnaround time. I think its very exciting. If Macromedia’s Royale turns out to be something along the lines of what I have fantasized/described above, then I think we are in for some very rapid development and turnaround time on projects. If I am way off here, well then consider this my official wish list for the next development cycle. 🙂