Sunday, 2 December 2012

What's up with OpenBD?

This is just a quick one.

I found myself - yet again - typing into one of my articles (an update to yesterday's one which discussed CFML's date datatypes) something to this effect "but the code didn't work on OpenBD, so I didn't bother testing it".

Prior to starting this blog, I was mostly just a ColdFusion user, and I had OpenBD and Railo installed mostly because I worked on a side project that needed to run on OpenBD (the client's decision, not mine). I actually did most of the development on ColdFusion 8, and back-ported it to OpenBD once I was in testing. This proved to be a major pain in the arse because there were a few idiosyncracies with OpenBD that weren't that major, but took me bloody ages to work out what the actual story was. Lesson learned there: when developing for a given platform: develop on that platform. This seems obvious, I know, but I had my reasons for developing on ColdFusion rather than OpenBD, and it was a conscious decision to do so. If I had known the two had these incompatibilities that I encountered - I was purposely writing very vanilla code so did not expect there to be problems - I'd've not done it that way. My chief reason for developing on ColdFusion, btw, is simply because the error reporting on OpenBD is unhelpfully verbose whilst at the same time being very vague, and I much prefer the way ColdFusion reports errors. Plus I was writing an API and I ColdFusion has that automatic-API-docs-generation-thingey (to use its official nomenclature), which OpenBD doesn't support either.

Towards the end of the project, the client said "oh, and if it's not too much work, if it ran on Railo, that'd be good too" (they were thinking of giving up on OpenBD and moving to Railo). The port to Railo was very easy, in part because it had a couple of the same idiosyncracies OpenBD had which I had already catered for, but on the whole because it does a much better job of keeping up with its ColdFusion compat. Bear in mind I am coding to CF8 here, not CF9 (this was last year, so before CF10 was out, so was not relevant). So I'm not expecting bleeding edge compatibility here.

So anyway, bottom line was that all three were mostly co-compatible, and the code runs on all three now, without much of it being written in a "pandering to the lowest common denominator" sort of way, which is good).

BTW: both Railo and OpenBD blew ColdFusion out of the water, performance and stability-wise. ColdFusion flatly refused to do a full unit test run, whereas the other two just cracked on with it and they all ran fine, and very quickly.

When I started this blog, I decided to be platform agnostic... in that I'd be equally judgemental and unkind to all three platforms, it seems ;-) Look... this is not a blog about gushy adulation of anything, in case you hadn't noticed. There's plenty of other blogs out there covering that stuff, and it's tedious.  So one thing I would do is run any code on all three platforms, and see what I got, and report on it. I've not been so diligent with this recently, although the code I usually use is fairly generic and I'd expect it to run equally on all three platforms I guess.

However as I have progressed I have pretty much given up on OpenBD when doing this. The plain fact is that ColdFusion and Railo code is pretty much interchangeable. Obviously both has stuff the other doesn't do, but it's edge-case stuff, and in Railo's case additions to the language which ColdFusion either doesn't do or doesn't do yet (if I have my way. Which I intend to ;-). I don't count that stuff.

But basic things like being able to do an all-script CFC, using short-hand notation for structs and doing queries in CFScript... I simply expect all this stuff to just work, but on OpenBD it just doesn't. Which sux.

I've given up trying to participate in their community because there's too much of an air of defensiveness when suggestions of incompatibilities with ColdFusion (or Railo) are raised, and I don't have time for that nonsense. But that aside, the community seems a bit... err... faded anyhow: the mailing list has a dribble of traffic... my non-scientific estimate would be about 5-6 threads a week (so just shy of one a day), and their blog is broken (something I mentioned to them over a month ago, and this has been ignored).

What I wanna know is... and this goes along with the recent zeitgeist of "Is CFML dead?"... is OpenBD actually still alive?  It seems to me like it's fading away. At least in relevance if not actuality. I can't help but think that perhaps the best thing would be for it to give up, and for its engineers / committers to go contribute to Railo instead?

Or am I seeking its vibe in the wrong places?

Righto. Once again it's "Adam's desire for coffee vs the outdoors temperature" (the Met Office says "-2degC, feels like -5degC"... blimey!). At least it's sunny today.