Thursday 5 February 2015

CFML: time for a CFML specification?

I note that PHP has finally got itself a language specification: "Announcing a specification for PHP". I can't hep but think that having a proper spec for CFML would be beneficial for the CFML community too.

Note that I'm not suggesting it would be a revolutionary move and have a huge impact on the community, but it would make CFML seem like a slightly more serious language. Also - in my position which straddles both the ColdFusion and Lucee communities - it's slightly annoying that there are incompatibilities between the two language implementations. Some of these are historical decisions on the part of Railo, some are mistakes on the part of Railo (or due to not having a spec to work from, not seeing all the minutiae of some functionality, and getting it slightly wrong), and other incompats are introduced by Adobe playing catch-up with Railo, but then not actually implementing functionality the same way. If there was a spec, this stuff wouldn't happen.

Some might say that ColdFusion is closed-source, so it doesn't need a spec. Well ColdFusion is closed source, but a language - intrinsically - is not closed. CFML is a public thing.

It would just help everyone if both vendors worked to a common spec. It'd help general CFML developers in that they'd only need to know one flavour of the core language; it'd help open source projects minimise their required coding and testing efforts to only need to code to one standard. ANd in turn I think this might help more people participate in the CFML community.

I realise the CFML Advisory Committee (or whatever it was called) had a go at doing this a few years ago, but I think lack of co-operation and some... err... "obstructive" personalities derailed that process. I can't see why the two vendors can't get together again and give it a go. And put the community ahead of themselves, and leave the personalities at home.

To this end I've raised a ticket in the ColdFusion issue tracking system: "Create & maintain a public specification for CFML". Go and vote or comment or participate in some way. And spread the word: