Standardizing ColdFusion
When defining a language there are two traits to be concerned with: syntax and semantics. I'd like to see an Extended Backus Naur Form (EBNF) definition for the language syntax. This would give developers a reliable syntax specification for the language, engine implementers a specification to code off of and the ability to claim compatibility with an official language version, and IDE developers an easy industry approved method for syntax recognition. Semantics, i.e. the meaning behind the syntax, is more difficult to define and there are several languages for doing so (all essentially based on mathematical notation and logic). I don't know whether we need a formal semantics definition or if a more 'plain English' language specification or hyperspec would suffice. My guess is that a plain English language specification would serve the purpose (similar to the ANSI Specification for Common LISP or SQL).
The issue in any event, is that Adobe owns the most original and most popular ColdFusion Server on the market, so without their support I have to question the usefulness of any specification - syntactic or semantic. Remember how difficult it was to code cross-browser sites in the 90's because Microsoft and others refused to strictly enforce support for the official HTML specification? You ended up having to do all sorts of crazy hacks from browser to browser. Well, that's essentially what's happening, and will continue to happen, to server side CFML unless all the server vendors agree to support some common language definition.
It's time for Adobe to decide whether or not they want ColdFusion to be a platform that rivals the other server-side web technologies not only in capabilities but in popularity, or if they want to continue developing it as a proprietary product with a niche following. They do a fine job innovating the product and integrating it well with Adobe (and other) technologies, but in today's IT world I don't think that's enough. If the community of developers and customers is to significantly grow and thrive, the evolution of the platform must be driven by an open group. This model worked for Java and for PHP... and I believe it is the key to ColdFusion's ensured success for many years to come. I'm not suggesting Adobe gives the server away, nor that they couldn't add proprietary extensions in order to give themselves competitive edge (as I'm sure other vendors also would), only that the product should be one of a group of products from various vendors who are all adhering to one specification and who support a unified customer base. I know that, especially for Adobe, it's just not that easy... but it's also not impossible. I'd love to see someone from Adobe chime in on this topic.
