Remember PUNKS NOT DEAD? That’s my inspiration for my title for this topic, which was prompted by the recent conversation between Michaela Light and Zac Spitzer about, among other things, the myth of CFML dying, which reminded me of a meme I thought of a few years ago:
<!--- What other programmers think we do. --->
<cffunction name="TagSyntaxForBizLogicIsEmbarrassing">
<cfset foo = true>
<cfreturn foo>
</cffunction>
// What Lucee programmers actually do!
component displayname="ScriptSyntax" extends="ParentComponent"
hint="Text to be displayed when using introspection ..."
{
public boolean function CFScriptIsAwesome() {
var foo = true;
return foo;
}
}
The original idea of dynamic templates, mixing the tag syntax of CFML in with HTML was a great innovation back in the day, and it’s still useful now for presentation, but it has never been appropriate for business logic. Unfortunately that is what ColdFusion developers had no choice but to do from the beginning, and embarrasingly many still do today.
Just look at code examples on Adobe’s website, Wikipedia, etc. Adobe’s tutorial even mixes the business logic of processing a form into the middle of the HTML presentation, and they reference a custom tag for the database query instead a cfscripted component. Argh!!!
The original and still persistent “Markup Language” portion of the CFML moniker didn’t help. Though markup languages can be procedural, that mostly applies to macros. ColdFusion should have been marketed as both a platform and a scripting language. CFSL? I guess “CFML” was a marketing decision because of its similarity to “HTML”, but we’ve been reeling from the repercussions of that decision ever since.
There’s also so much terrible legacy code still out there, and first impressions last such a long time. Other programmers who have only limited exposure to ColdFusion, much less the generally more professional Lucee code examples, don’t have much reason to take another look. And even when they dig a little deeper, they’re still seeing examples of garbage.
With all these issues, it’s no wonder we have an image problem.
But I love the positive spin from Michaela (starts at 1:06:53):
“What would it take to make ColdFusion more alive this year?”
Well … I have a couple ideas, both of them intended to improve Lucee’s professional reputation:
-
From the marketing perspective we need to distance ourselves from the terms “ColdFusion” and “CFML”. Rephrasing in a way that will attract both JavaScript and Ruby on Rails enthusiasts, I suggest a purposeful publicity campaign, rebranding to: CFScript in Lucee! And that campaign needs to include strong advice that the tag syntax should only be used for presentation when mixed with HTML. And instead of saying that CFML can also be written in a script syntax, we should be saying that CFScript is the preferred syntax, but it can also be written in the tag syntax.
-
It’s also embarrassing that we still have to enclose CFScript inside
<cfscript>
tags, so my other proposal is for Lucee to finally support .cfs files (analagous to .js files) as @isapir attempted to do years ago for Railo.
I know that LAS is busy with the finishing touches for the Lucee 6 Beta, but I decided to go ahead and post this now since the important issue was raised by @Zackster and Michaela.
And I hope to get some feedback and inspire other ideas. Because, hey, I was a longtime lurker, but no more! To be completely honest, last year I had been on the verge of migrating all my websites to Node.js. (Yeah I know … Boo! Hiss!) But then this year I read Charlie Arehart’s summary of ColdFusion’s modern advancements, and now with the news that the Lucee 6 Beta is finally about to be released this month (and I’m chomping at the bit to participate and in general help in any way I can), the conclusion is obvious: