Open BlueDragon Steering Committee Interview Series - Andy Wu

In the last of our interviews with the BlueDragon Steering Committee, I am proud to present, the man that probably knows the code base the best, Andy Wu.

What is your involvement with BlueDragon?
I've been an engineer on BlueDragon stretching back 7 years. Since my very first task of implementing the BlueDragon version of CFHTTP to implementing new features, fixing bugs and of course supporting customers.
Do you eat in your own kitchen?
Very much so. I use BlueDragon whenever the opportunity arises - whether it's quick prototyping, throwing a wee utility together or a fully blown web app. In fact, much of the innovation in BlueDragon can be credited to the needs of other real world projects we've been involved in. CFIMAGE for example was one tag that I added to BlueDragon that was driven by some image processing needs.
What feature set gave you the most satisfication to build?
It would have to be a toss up between the CFSCRIPT and Query of queries. Both were major additions back in 2002 and very daunting tags to take on. I had to get to grips with JavaCC, define a grammar to support the languages, and most importantly create the classes to represent/run the cfscript block/query that the tag represented. It was very satsifying to see this one through, not only getting them functioning correctly but performing very well. In the case of query of queries it certainly gave me a new found respect for the developers of databases such as MySQL.
Is there anything of the language that frustrates you?
There are so many quirks in CFML - some possibly by design but others that are most certainly not. It's a source of frustration in that ultimately, we've had to support them in BlueDragon for compatibility sake. They're not necessarily quirks that the majority of users will take 'advantage' of but it only takes a few customers with a codebase large enough that make it difficult to employ a workaround and we have to introduce new code that can in some cases detriment performance.

A CFML standard has been long overdue in my opinion. With a well defined language many of these quirks would not be present and those with well written code would no longer take the performance hits that are as a direct result of the quirk handling.
Will OpenBD be tested on Frameworks?
We've had much success with testing frameworks and applications with the commercial version of BlueDragon. Often the issues found are very subtle but easily fixed. However it's inevitable that since the lead developers on these projects aren't using BlueDragon as their main CFML engine, new incompatibilites are introduced as the project develops.

In my ideal world, other projects would follow the Transfer example, providing a great suite of cfunit tests, making the continual testing on other CFML engines such as OpenBD that bit easier. Otherwise it's difficult to give a confident assessment of the compatibility against the framework/app without becoming an expert in it first.
What are you looking for before you will accept a patch to the core engine?
Much depends on the scope of the patch - is it a minor bug fix, a simple function implementation or something that effects larger parts of the engine? But in every case I'll be looking for test cases to back up the functionality. We'll add these to our yet-to-be-created test suite to ensure that it continues to pass the test in future.

But as someone who has a pretty good overview of the whole engine, I'll also be looking at the big picture - is there any efficiencies that could be employed? does it have a detrimental effect elsewhere?
In your view, where would be a good place to start understanding the code?
The good news is that api for the tags and functions are pretty straightforward, and there are many examples in the code to refer to for guidance. Some of them are very self contained.
What is your development environment?
Windows, Eclipse (+CFEclipse), ServletExec 5 is my J2EE server of choice though Jetty comes a close 2nd.
What are your benchmarks for success?
If I were to reach for the skys then certainly wide scale deployment on hosting sites and simple 'yum install' availability on linux would be a phenomenal. Further still, if OpenBD were to reignite the adoption of CFML by new developers from non-CF backgrounds who have been tempted in to realize the power of CFML that would be nice too.

But dreams aside, I'd like to see a vibrant community and widespread use of OpenBD. How do you quantify that? Well continually high downloads, community contributions (be it code, documentation or tests) and a lively mailing list are everything I hope for in the months and years ahead.

Contact Andy @ andy.wu@openbluedragon.org


Recent Cloud posts

Recent JAVA posts

Latest CFML posts

Site Links