Ray has an interesting post where he used CF8's new cfthread and cffeed tags to create an RSS aggregator. Slick. Towards the article's end, however, he says, "I'd love to see the same code written in PHP. No external libraries allowed - it must be all "baked in" code."
Which got me thinking. Do we really want everything "baked in" to ColdFusion?
Personally, I'd prefer that CF had a "plugins" directory and API where PDF support or reporting or threading tag/function modules could be dropped into the system--or removed or replaced--as needed.
I think that there are advantages to NOT having a bloated core system with everything "baked in". Besides, does it really matter if PHP or Python can do it out-of-the-box (err... off-the-web) or if I have to drop in a freely available module? If the functionality is available, it's available. Having "baked-in" as a requirement seems to be a bit arbitrary.
Ruby, as an example is a small, tight little language, with most of the "real" functionality provided by modules and libraries (e.g. Rails). Same with ASP and .NET. Object libraries do all of the heavy lifting, managed by the language's syntax and basic operations.
And before you ask, yes, I know about CFXs (ColdFusion Extensions). But they have to be registered, can't just be dropped in, have a limited API and are basically second-class citizens. Plus there's no way to create, say, an image tag library with a integral set of tags and functions (cfimage, isImage()) that seemlessly extends the language and environment.
Namespace concerns could be an issue, but JSP solved that a long time ago with namespaces and tag libraries.
So. What would you build into CF if you had the chance? What would you fix or replace?
And should CF be an "extensible" environment, or are we good with the current monolithic approach?
I'd really like to know.
I think a good example of the core functionality not quite up to speed in CF, is charting. CF7 and prior just didn't have the full functionality for my day-to-day charting needs and I've always relied on 3rd party tools for business charting.
I'm really curious to see how all the built-in AJAX functionality in CF8 will compare to all the great libraries that currently exist...
Posted by: Terry Schmitt | June 06, 2007 at 11:44 AM