The Dopefly Tech Blog

« The Dopefly Tech Blog Main page

ColdFusion is a DSL

posted under category: ColdFusion on April 12, 2008 at 12:00 am by Nathan

There, I said it. I'll say it again. ColdFusion is a DSL. A Domain Specific Language.

What does that mean? Is it still a programming language? It means it's a programming language meant to solve a specific problem, and solve it well. It's meant to be limited. It's meant to do one main thing, to solve one problem.

Sorry, let me say that agin. ColdFusion was meant to be limited. It's not a good tool for desktop applications. It's not a great language for managing huge amounts of data. It's not the platform of choice for creating build systems. It has never been used to compile itself (afaik). It has its limits, and they should not be crossed. Of course, to mix metephors, if all you have is a hammer, make lemonade until the cows come home, by all means.

ColdFusion is meant to be the dream language for web applications. Its original goals were to make your HTML web site database-enabled and dynamic. That goal was basically perfected with version 1.0 and the cfquery tag.

That's why we use it, people. That's why we like it. It's a DSL for HTML.

Now granted, it's so much more, now. It's been called the duct tape of the internet. No other platform that I've used can so easily and quickly connect things and people together. CF has really grown up, especially in the last few years. It has ways to add extensions to the language itself. It has added OO. It interacts with Java, .NET, C++, SMS, email & email servers, http, ftp, exchange, directory services, file systems... 98% of everything you need to build a successful web app, for nearly any purpose. As I said, it's so much more, now, but it is still, in essence, a DSL.

It solves the problem space almost perfectly. For HTML jockeys like myself, it was a natural extension, some 10 years ago now. It's not everything, but it doesn't need to be. It's not supposed to be. I hope it never is. But, for what it does, nothing beats it.