Coldfusion 8 has been released to public beta. http://labs.adobe.com/technologies/coldfusion8/
Allaire Macromedia Adobe product goes into public beta, the thing everybody can agree on is that there is more there than there was before. More Ajax stuff. More support for Flex. More monitoring stuff. It’s bigger than the last big release, and bigger than the release before that, which is the same for any language/framework.
All of this hints toward a basic underlying question. What is Coldfusion, anyway?
Is it a language? Is it framework? Is it a vehicle for pushing Flex onto unsuspecting customers? Is it a training ground for Java programmers? Is it on Rails? Or is it at the station waiting for the 5:15? We can define it in terms of what it is, or what it does. Where it came from, and where is it going.
From my perspective, there are two Coldfusions. The old Allaire product, written in C++, for a web space which had little more than CGI, perl and custom connectors in Java and C++ to drive with, Coldfusion 4 was extremely compelling. At the time, I needed to put together a solution (quickly), and I wanted to look beyond Perl. Coldfusion fit the bill, and I was able to put together a site quickly and nicely, and from that I drew attention from people who wanted to do the same (have a site up, and fast). The database layer is simple and easy to administer. The security is reasonably solid, and the scalability capability is there. There were big boys playing with Coldfusion, so it seemed like it would not disappear overnight. Microsoft’s ASP was another contender, arising the result of an acquisition of a competitor of Allaire’s.
The second Coldfusion was (in my opinion) beta’ed with Coldfusion MX (aka 6). I would not have run anything on production on Coldfusion MX. Coldfusion 5 had everything I needed from CF, so CF MX was for the lab, for playing. It was not until CF MX 7 was released that I considered this new Coldfusion to be a solid product.
As far as the language/framework question goes, it’s all a question of how you define language and how you define framework, and that is based on assumptions and other factors. I think basing the distinctions based upon those features of a language or framework or other construct may be more accurate (but not quite so efficient). A language exists for the purpose of transferring information and data from one domain to another for processing. The rules governing the mechanisms for doing so, the syntax and essential protocols, that could be the limit of the language domain. Some expressions or manifestations of the language in the form of characteristic structures or linguistic phenomes could be considered to be so intrinsic that they are parts of the language itself, and so I will often include that into the “core” language. Beyond that, there are domain specific constructs, dialects or colloquialisms, which could be called extensions of the language, or libraries. If they change, with a specific structure or a set of complementary structures, the approach to solving a problem, or transferring information and data from one domain to another, then perhaps they are more a framework.
Given that quick and dirty explanation (or in spite of it), I consider Coldfusion running on the Java platform (the second Coldfusion) to be a framework for Java. I don’t have any strong opinions, as this is a didactic discussion, with no deep implications. I’ve loosened up a bit and am quicker to forgive the slight malopropism and get on with things. The discussion of the distinction between language and framework *is* an important one to have, not for the sake of the conclusions that are reached, but rather for highlighting the elements or properties of each set, where those roles exist and how they play their part in making systems go.
While not central to the discussion it is notable that the recent arrivals in the web programming arena have been from beyond the shores of the U.S. Ruby and Python both have origins in Japan. PHP had an interesting journey from Denmark, then through Israel for PHP 3, and for Zend. And then the IDE’s Eclipse and Netbeans both come from Prague. That international influence is a sharp contrast to the “old days.” The old players are mostly American: Microsoft, Sun Microsystems, Adobe (And Allaire was American, as was Silicon Beach Software, the original creators of Flash). The important thing to note about this is that it is just one more feature of the break from “tradition” that was Microsoft, IBM, Apple, Adobe, HP… one more characteristic of Web 2.0. And Adobe has to face the challenge by moving forward with its initiatives, the CF8 public beta being a key component of that. Businesses will continue to look for what best supports their business initiatives.
From a functional perspective, the language/platform has to be measured in terms of what it is trying to achieve, or what problems it is trying to solve, and its effectiveness in doing so. The functional perspective could include the ability to access databases quickly and reliably (possibly including ORM), and the ability to support the current web client side demands (Ajax, Flex). The list goes on. This release of Coldfusion and libraries achieves a big list check off for many items which have been lacking in the Coldfusion realm, and seemingly ubiquitous in other platforms (visa vi image processing). But the functional perspective alone does not make up the complete picture. Customer acceptance (external marketing), a skilled and motivated developer base (internal marketing), and a clear product roadmap would go a long way for the Coldfusion community.