In Between
by Dave Lowe

ColdFusion is Dead

Adobe just announced ColdFusion 8 and launched a public beta not long ago. But here's a secret they don't want you to know: ColdFusion is dead. Sound a little controversial? Good.

At my day job, I'm currently lobbying to move away from ColdFusion and IIS for the public web site and we've been in a conversation for months now with IT. We know what our ideal server environment is (XServes + Apache + Python + Django) and we know there's a huge difference between what we're able to do now and what we'll be able to do in the future with that setup. But first, a little background.

I've been working with ColdFusion for 7+ years. It was the first server-side language I learned, and I've built many different web applications with it. I started out as very much a rookie programmer and gradually moved to best practices and started leveraging components for as much as possible. From there I quickly learned that ColdFusion didn't have much more to offer, and if I were to continue using it, I would be doomed to code redundant line after redundant line. On top of that, if I wanted any modern libraries that exist in the open-source world, I'd have to reinvent those wheels myself.

No thanks.

In my spare time, I started researching other languages. I tried out PHP for a while, briefly landed on Rails (didn't like what I saw) and, probably a little more than a year ago now, finally discovered Python and Django and haven't looked back since.

ColdFusion Frameworks

But let's get back to our cadaver, ColdFusion. Part of the process we've been going through with IT has had us re-investigate all the various frameworks for ColdFusion. Why frameworks? Well, it was clear to everyone at the table (IT included) that for ColdFusion to be useful, it needed a framework on top of it. Why re-investigate? Rest assured, when I was trying to make the best of ColdFusion I looked for every tool out there that could help.

We gathered a list of requirements for what a framework needed to do based on our own day-to-day process, our clients' needs (both explicitly requested and what we strongly felt were needs), and technical standards and best practices. Then we looked at every significant ColdFusion framework and evaluated them against the list. Here's a list of the frameworks we looked at:

  • ModelGlue
  • ColdFusion on Wheels
  • Reactor (not a full framework, just an ORM)
  • Mach II
  • Fusebox

Results

Out of 11 requirements, the best framework scored a 3. That was Fusebox which isn't even a consideration (ugliest URLs ever and doesn't care about object-oriented design) and only because it has documentation and active user and developer communities. The others met 1 or 2 requirements and often barely.

Let's set aside Fusebox because it doesn't even qualify as a modern web framework like what we're looking for. Of the rest, none of them have any significant user or developer communities. When were any of these last updated? Only one (Mach II) is even in a remotely finished state.

Conclusion: ColdFusion frameworks are dead. More than that, they never really even existed in any usable state.

But, ColdFusion 8 is coming!

My dear readers, let's face it, ColdFusion 8 is nothing more than a marketing release. They claim it's "highly-anticipated" and I read a few forum posts where some developers were pointing to it as proof that ColdFusion was going to take over the world, but let's look at the features Adobe's specially promoting:

Server monitoring to help identify server bottlenecks, allowing for tuning and improved performance.

The first feature has nothing to do with ease of development. Sound a little odd to anyone else but me?

Step through code debugging in a new Eclipse plug-in debugger.

ColdFusion does need better debugging. But... I don't use Eclipse and many other developers don't. This feature only helps a subset of CF's audience.

Adobe Flex and Ajax features that let ColdFusion power personalized, multimedia-rich applications to enhance users' experiences on the web.

Great, just what we need: more Ajax in the world. Okay, it has its place but I bet this will only encourage more bad decisions on when and how to use Ajax. And let's not forget: Ajax is pretty darn easy to do right now. Integrating it into ColdFusion isn't a huge bonus.

High-quality, dynamically created on-demand multimedia presentations.

I'm sorry, what? Oh yes, that's right. On-demand multimedia presentations are at the top of my wishlist and every other web developer out there... in crazy land! This is not a gap in the marketplace that needs to be filled, this is a marketing feature.

PDF document and form integration for a printable, portable way to intelligently capture and share information.

The last ColdFusion version has PDF capabilities, so what this is doing in addition is unclear. This is arguably the only feature on the list with potential, but it also has great potential to be a dud. The need for something like this is extremely small unless it's implemented brilliantly.

Image creation and manipulation with more than 50 new CFML tags and functions.

Finally! But it doesn't provide anything for those developers that already purchased a capable set of custom tags for image manipulation, and I'd argue that's every serious CF developer. So, great feature for CF to have, but not any sort of step forward in the real world. (Possibly a sad day for Efflare though).

Native support for .NET objects to easily integrate ColdFusion applications with enterprise data and infrastructure services.

Really?! Joy! Oh wait, I don't care about .NET at all. And why should .NET developers care about ColdFusion?

Significant application runtime and server performance improvements.

Finally, a solid improvement. But to sum up here, there's not one feature that eases the development pain or moves ColdFusion forward into being a robust agile development environment. Unless you're drinking the Adobe Kool-Aid (Flex flavor), or wanting to start moving away from .NET.

So how about it, ColdFusion developers? Are you all working in an intense enterprise environment that's locked into ColdFusion, or do you just happen to enjoy writing redundant code?

Full disclosure: I'm intentionally trying to be incendiary with this, genuinely because I want to know who the remaining ColdFusion developers are and why they haven't switched to a better language. My guess is that most work for companies that are heavily invested in ColdFusion, where the value "Don't Fix What Ain't Broken" is plastered across every cubicle and printed on every napkin.

I should also add that CF8 does add welcome features like incrementation through cfset var++. But these are extremely basic features that all decent languages have from the beginning. The fact that it took ColdFusion 8 versions to obtain this simple functionality is just sad. I could have used that years ago, before I learned there are better choices out there.

Recent Posts

  • Regarding a flaw or two in the comments system (and/or the site's messaging) and the response to my 'ColdFusion is Dead' entry.

  • The day I've been working towards for over a year has finally arrived: I have launched a complete redesign of my web site.

  • A disturbing problem with my iMac, and discovering the beauty of a UPS.

  • Overcoming a particularly frustrating problem with TinyMCE and multiple domains/subdomains.

  • Doing my part to spread the word about this thieving company.

Comments

  1. 2007/08/23 8:04 a.m. doug boude said...

    Hey Dave, I couldn't help but notice that you didn't bother sharing the "list of framework requirements" that none of the CF frameworks were able to come close to meeting. I think myself and a few other CF developers would really like to be enlightened as to the handicap we've been working with all these years that for some reason has failed to manifest itself. Could you post those eleven "MUST HAVES" for the rest of us?

    Thanks. Doug :0)

    Permalink

  2. 2007/08/23 8:34 a.m. Michael Sprague said...

    Interesting article, but you failed to mention what the XServes + Apache + Python + Django offers for developers that ColdFusion does not.

    I'm also not clear on what exactly is redundant about ColdFusion, or perhaps you are not using the correct word. I find CF coding to be much more efficient than any other language I have worked with, and rarely need to repeat anything. If you use CFCs, everything is object oriented and there should be no redundancy.

    CF can also access any .NET or Java library/function for access to a whole range of functionality beyond the product itself. I don't think any other language can claim that.

    So, tell me why your solution is better - not why you don't like CF.

    Permalink

  3. 2007/08/23 8:46 a.m. George said...

    Out of interest, what were the 11 requirements you used for scoring the frameworks?

    Permalink

  4. 2007/08/23 9:19 a.m. David said...

    Well Dave, I'll give you credit, at least you took the time to look at the feature set and make your case. That's not what most people do. And at least you acknowledge you are being intentionally incendiary. SO, with that, let me proceed:

    First of all you state "Sound a little controversial?". Honestly, no, it doesn't. If you were the first person to say it, then yes, but the whole "dead" thing has been beaten to death, denied, disreputed and contrary to the reality that more companies seek CF talent, that talent is getting expensive, and much harder to compete for (for the record, I am a development manager, and staffing is a big part of my job).

    You want input from people who are "locked into ColdFusion"? Well, since you phrase it like that - I'm your man! My company chose CF years ago for a large project, and we're at a perfect time to use another technology for another mission critical, large project. We're starting with a blank slate. We're going with CF.

    Why?

    While you talk in terms of code, my main concern is supporting business initiatives, making sure the business units get the support they require, and the products they need. They don't care about technology decisions, beyond "it works", scalability, agile development, long term future - that's all my business, and make no doubt about it, if things don't turn out right, it'll be my head on the chopping block!

    My guys here, they do side work in PHP, rails, python, etc. I have an open mind, I'll adopt any technology that meets our needs. The thing is, when it comes down to it, no one can make a convincing argument for us to move away from CF - even when they argue cost of licenses!

    There are two things you do well in your post, but not well enough.

    1) You attack the specifics of CF 8: Well, I must respectfully disagree with your assessment. You dismiss the AJAX features, out of hand. True, people will use AJAX to a fault, but CF 8 doesn't introduce "more AJAX" into the world, it makes coding AJAX simple. Right now, it's not difficult, but it's not simple! The "which AJAX framework" question we had is gone, and as a bonus for our waiting too long to make a decision, we get very easy integration with our CFC's. While we don't use a framework, we do divide our code, and put as much of the back end logic as possible into CFC's. We're not doing anything ingenious; it's just good programming methodology to keep business logic out of your presentation layer, and CF has the tools in place to allow us to do that. Some of the other features, like on-the-fly presentations and PDF generation will be VERY useful to us. (cont'd)

    Permalink

  5. 2007/08/23 9:19 a.m. David said...

    (cont'd from above)

    2) You attack ColdFusion in a general sense. You say things like "redundant line after redundant" and "why they haven't switched to a better language". "Better" and "redundant"? Relative terms, at best, but they allow you to get a general feeling across. I'm really trying to think of how my code is redundant...i can't! We have very specific business code that needs to be written, and we write it in an efficient manner. It's possible to write redundant code in any language, why would CF be any different? Perhaps you could qualify this sentiment? Where necessary, we've purchased custom tags to perform specific tasks, and have been very happy with them. We've also found alot of free code out there for run of the mill every day tasks - we've even contributed code back to the community (a novel thought, no?)

    You also mention something about "agile" environments? We've adopted (and are trying to refine) an agile process, and it wasn't easy. Top to bottom, we've had to re-define our processes. It's a work in process, to be honest. One thing that has not come into the equation, is the language we write in. Being "agile" is more a function of your organizations set up and focus, rather than the language you develop in. Now, CF sure helps! The fact that we have great productivity with the language allows us to implement the "rapid development" aspect of agile.

    I read your article, twice, and what it seems to me is that you've found your "ideal server environment", and that's not ColdFusion, therefore, ColdFusion is "dead", and that's some nasty secret we all don't know about.

    I'm sorry Dave, I don't see that. For whatever specific business reason you have on your end, I'm glad you found the environment that works for you, and sorry you have to ditch CF to get it. But your next step was to make CF sound like a Shakespearean tragedy, and I don't see logic in that leap.

    Maybe you could enlighten me more on the matter.

    Cheers,

    David

    Permalink

  6. 2007/08/23 9:44 a.m. Jim Priest said...

    You bash ColdFusion repeatedly but offer no comparisons on how Python and Django are better???

    What framework do you use? IDE? Image manipulation? Ajax? How do you do all that in Python and Django?

    Until you can clearly make a case for why we should switch - all I see are opinions and conjectures.

    Permalink

  7. 2007/08/23 9:55 a.m. Adam Fortuna said...

    I have a lot of gripes with some features in CF8 as well, but if I'm not using them it's really not important. Can't say I've ever worked with .NET stuff and needed to integrate; but hey, i guess it's there if needed. I wouldn't put these as ways of claiming it's dead though, but as features you can't use in the latest version. It sounds like you have more of a problem with the core (which, I admit, I can understand).

    Not sure I understand the frameworks are dead argument though. With other frameworks like Django or Rails it is a straightforward process of just picking (1) and going from there. It is unfortuantely there is nothing like that in CF. Instead you need to pick a front end controller (fusebox, mach-ii, model-glue, coldbox, cf on wheels, etc), maybe an ORM (reactor, transfer), a dependency injection framework (lightwire, coldspring), a testing framework (cfcunit, cfunit), some method of deployment (ant, maven, moving files manually). The thing is though, that all of those frameworks have their own little communities. With full stack framework everyone has that feature so everyone has the opportunity to dig into it. Not everyone uses this stack of frameworks, as you noted. This featureset might get the same end result as django or rails, but with a lot of added compexity and overhead from having to manage so many separate pieces. I wouldn't call any of these frameworks as a standstill though, although none may be as mature as django, rails or cake. I'd love to see a full stack cf framework someday though, and I can tell you ColdBox is starting to get close to it.

    Seems like a lot of what you speak of syntactic sugar. Nothing is gained using i++ that wasn't available in i=i+1, although it does look better. I think because CF was designed to work for non-programmers so much, it is more verbose than others and being a tag based language doesn't help. I know some developers that wince at all the tags and xml and would rather write in another language. That's definitely a matter of personal preference, but i wouldn't consider either the "right" way, although I would consider CF the most long-winded. The big difference for me comes in the ruby model where everything is an object, compared to CF (or php) where everything is done through functions. I prefer objects myself, as i do think it can make for better, cleaner programming; but that's not to say you can't do it in CF.

    By the way what are your 11 items? I expect most of them could be solved by using a collection of CF frameworks rather than just a front-end framework.

    Permalink

  8. 2007/08/23 10:52 a.m. My two cents said...

    So did you write this article just to get a response out of the CF community and more visitors to your blog... appears that way to me. Why choose one language over another, why limit yourself to just one? Seems kinda narrow minded to me. Why even debate whats dead and alive, and who has the authority to declare a language as dead or alive?

    I don't understand why people feel that have the one true answer to all my programming problems. Where do people get off telling me what language is better than another? Can't I just use whatever language I feel most comfortable with, that suits my needs, makes my life as a programmer more fun, and satisfies the client?

    P.S. New design looks great... maybe you should just stick to web design

    Permalink

  9. 2007/08/23 10:53 a.m. Joe said...

    I appreciate your informed opinion, but I had a few questions about your post.

    I'm really curious by what you mean by redundant code? I think techs like coldspring/transfer/reactor/Illudium PU-36 help cut down on redundancy and by employing some OO strategies you'd be able to up your reusability.

    Is it the tag based syntax that bogs you down? CFScript cuts down a lot of typing on although it isn't a full implementation.

    I'd also like to hear what you like about Python + Django and what criteria you used to evaluate the frameworks.

    Permalink

  10. 2007/08/23 10:55 a.m. Cutter said...

    The new CF image manipulation far exceeds any third party component I've ever worked with (and that's a lot of 'em), partly because Adobe (you remember them, the people who bring us Photoshop and Illustrator?) put their own special brand of development love into this functionality.

    .NET integration unnecessary? I might not use it any day soon, but it's another connection to prebuilt components that was previously unavailable. Plus there's the Exchange integration stuff, but you don't care about tapping into one of the most widely used internal company mail servers in the commercial market. And no one does online presentations, although that does make me wonder about the massive viability of things like GoToMeeting, WebEx, and the MS Sharepoint servers.

    Yes, ColdFusion can now do Ajax style widgets for those who want to use them, very quickly, easily, and efficiently. I've written custom scripts for using the same ExtJS (formerly Yahoo UI) components, and it's not dead simple, so having these out of the box is excellent for the less experienced, or for quick application prototyping. I won't argue the overuse of Ajax/Web 2.0 type stuff, that's up to the developer and the client to hash out.

    Flex interoperability has huge benefits, but you can also tie that in with AIR applications, which opens a whole new market for web developer's. Having desktop apps, that can communicate when connected, is not foreign. Being able to build those apps in something other than C++, VB, or Java, like the base technologies web developers know (XHTML, CSS, JavaScript), is a beautiful thing. Not saying they have to have a ColdFusion server side end, but it doesn't hurt. Especially with a Flex Based AIR app, where Flex communicates so easily with ColdFusion.

    Not doing anything new? Writing the same thing over and over again? Didn't I hear you complaining about the lack of Open Source resources? (Hey, what's RIAForge?) Sounds like you could keep sharp, while contributing. If you're bored, that is.

    Permalink

  11. 2007/08/23 11:49 a.m. Josh Grauer said...

    Dave,

    I read over your article and there were somethings I agreed with and some things I didn't --

    I would agree that there are definitely some "features" of CF8 that Adobe has added that I don't really think add much at all. For instance, all that AJAX integration is really just some cf tags that interface with the (now integrated) Yahoo User Interface javascript API. I love YUI, but I see no reason to integrate it into CF since it's not hard to implement to begin with. At the same time, I think the appeal of CF for most developers is that it's super easy to implement some cool stuff, and early on in my development career I would have really appreciated having that kind of functionality out the box. Now I'm a little more experienced and I prefer a higher level of control.

    Now as far as your research into ColdFusion frameworks, I can see how it would be difficult to accurately measure where they are development and community wise because most of them don't have a lot of good documentation. I personally have worked with ModelGlue and Reactor, and I think that both of them are excellent frameworks, but it was very hard at first to find community examples and good accurate documentation. So there are good frameworks out there, but they take a little work to really get familiar with them and it's hard to compare them without spending some time working with each of them.

    Overall I think that CF is a great product that offers a lot of cool things that most other languages don't. The dynamic presentations are actually kind of cool -- you can make breeze presentations that pull data dynamically when the slide renders. The new PDF stuff is pretty neat as well -- you can dynamically generate your PDFs, merge them, watermark them, all sorts of stuff that would work great for making an offline version of your content. Debugging is awesome, and for most CF developers that are actually working in with frameworks and higher level programming are using eclipse.

    So I guess my question is this -- what is ColdFusion really lacking functionality wise compared to your preferred development environment? Can you do a write up of what you really like about Python/Django so that I can see what it really has to offer?

    Permalink

  12. 2007/08/23 11:50 a.m. Dan Wilson said...

    Yawn.

    I'll you credit, you posted research as well as opinion. I just don't happen to agree with you.

    Please post the 11 criteria for frameworks. I would be interested to read that.

    DW

    Permalink

  13. 2007/08/23 12:02 p.m. Robb said...

    The first feature has nothing to do with ease of development. Sound a little odd to anyone else but me?

    Um no, ever work with MS SQL Profiler?

    ColdFusion does need better debugging. But... I don't use Eclipse and many other developers don't. This feature only helps a subset of CF's audience.

    If you are still developing CF or Flex code you're using or will use Eclipse for your IDE. Eclipse isn't perfect but is maturing quickly and certainly a viable IDE that can be highly customized and automated (ANT). Java, PHP, others use Eclipse in corporate environments I can attest to that first hand. If you are a MS shop Eclipse won't be found most likely but you don't like .net anyway.

    Great, just what we need: more Ajax in the world. Okay, it has its place but I bet this will only encourage more bad decisions on when and how to use Ajax. And let's not forget: Ajax is pretty darn easy to do right now. Integrating it into ColdFusion isn't a huge bonus

    Maybe this feature isn't earth shattering for Ajax masters and such but the ease of being able to bind elements is unbelievably powerful and quick.

    I'm sorry, what? Oh yes, that's right. On-demand multimedia presentations are at the top of my wishlist and every other web developer out there... in crazy land! This is not a gap in the marketplace that needs to be filled, this is a marketing feature.

    Wasn't on wish list but funny thing is I used the feature to put together a proposal that I didn't have to spend a lot of time on and this could be great for company training presentations or annual reports.

    The last ColdFusion version has PDF capabilities, so what this is doing in addition is unclear. This is arguably the only feature on the list with potential, but it also has great potential to be a dud. The need for something like this is extremely small unless it's implemented brilliantly.

    I guess my clients are different as PDF capability is extremely important to reporting functions and CF8 improved by adding such features such as merge which is very useful for creating dynamic customized reports.

    Permalink

  14. 2007/08/23 12:03 p.m. Robb said...

    Finally! But it doesn't provide anything for those developers that already purchased a capable set of custom tags for image manipulation, and I'd argue that's every serious CF developer. So, great feature for CF to have, but not any sort of step forward in the real world. (Possibly a sad day for Efflare though).

    I agree it took CF way to long to have image manipulation built in but, it's there now and will allow custom tag developers to push the envelope further without having to concentrate on basic needs.

    Really?! Joy! Oh wait, I don't care about .NET at all. And why should .NET developers care about ColdFusion?

    Maybe you don't care but this is great news as this greatly expands the capabilities and WILL help CF to be in corporate IT depts. because you get the rapid web-development of CF now easily integrated with existing back-end libraries. In many IT depts. the people who develop the "front-end" of web sites are not the same as those that develop the business models/logic/web services.

    Finally, a solid improvement. But to sum up here, there's not one feature that eases the development pain or moves ColdFusion forward into being a robust agile development environment. Unless you're drinking the Adobe Kool-Aid (Flex flavor), or wanting to start moving away from .NET.

    Yes, a solid improvement and there are several features added to CF8 to "ease the development pain" and I respectfully disagree with your characterizations that CF is not an agile and robust development environment. CF is not Java, .net, PHP, PERL or anything else, it is CFML it's own language with it's advantages and disadvantages as all other languages have too. I think it's funny that you didn't list your 11 requirements for a framework, hell if yo got something better please share. Frameworks are no different than languages as there is no "perfect" one, just hopefully one that you can be productive with according to your needs.

    Good Luck and waiting for your post on CF9!

    Permalink

  15. 2007/08/23 12:24 p.m. Allen said...

    ColdFusion has it's issues but it's far from being dead. I think delving further into an issue like frameworks would be useful. However, I don't see your beef with a few things such as the Ajax-support and the .Net integration. .Net may not be a big deal for you but that feature is for a lot of serious ColdFusion developers. Some of us work in environments that are moving away from the old paradigm of "this language is best" to "where do we have talent to build web servies & how can we pull those together to get things done" that is, we don't care if it's in CF, Php, .Net or whatever.

    As for the ajax stuff, to me it's like CFFORM. Could you "easily" write those with javascript? Sure. But it can be easier and quicker than writing the javascript or dealing with maintaining a library, etc, etc. Let adobe worry about making it work and let me worry about things other than maintaing yet another library of code.

    Permalink

  16. 2007/08/23 12:35 p.m. Mike said...

    About debugging... I don't use Eclipse and many other developers don't. This feature only helps a subset of CF's audience. Not true, you don't need to code in Eclipse. It is other tool like Freemind for mindmapping or oxygen for an Xml tool.

    Permalink

  17. 2007/08/23 12:36 p.m. Mike Kelp said...

    I'd say thank you for requesting others' input accept, that doesn't mean much when you try to insult someone's decision-making ability, all the while asking for the reasoning or advice you continually insulting.

    Many of us have to make the same decisions as you as developers, managers, etc. and I'm fairly confident that I'm not dumb, despite your inferences.

    Now, here's my issues with what you've said:

    I'm way more confident in the stability, performance, and development agility with ColdFusion than with any other platform.

    CF has an incredibly low number of bugs that I've seen and even less I've run into due to its reuse of open libraries its packaged with, all the CF server makers' invested, commercially driven development practices, and the fact that its built on an already stable platform (J2EE, .Net).

    I've always been happy with the performance of CF compared to other languages and as Adobe, etc. clean up / write their code it only seems to get faster.

    As for development agility, I can run CF on Java, .Net, use a product to export an entire CF app into a J2EE application, etc. so leaving anytime I want is easy...not so easy to say that for your new platform choice.

    Also, anytime I can't do something with a CF tag or function, I can easily reuse an existing CF, java, .Net, COM, CORBA, etc. library. Hell, with CF 8 I can even using the Java scripting packages to run ruby, Python, php, etc. faster than those languages normally run on their own platform when I want to.

    Since I've seen and used all of the technologies, as well as have researched them myself you mentioned at some level (languages are a particular interest of mine), I'm quite confident in my decision and am honestly wondering what makes you so confident about yours? You didn't seem to mention any of the things your setup does for you at all, yet I was able to rattle off this comment full of reasons for my decision, not against someone elses in about 15 min, including some light editing :-)

    Nonetheless, best of luck with all your decisions as they are not easy, and one thing I am confident about is that many of these platforms can handle what we need to do, but how many were built for it?

    Mike.

    Permalink

  18. 2007/08/23 12:46 p.m. Forest Tort said...

    Dave-- Did you also write the book "How to Make Friends and Influence People"?

    Permalink

  19. 2007/08/23 1:49 p.m. Chris said...

    So to break it down... you make empty claims that don't amount to much more than a child saying "thats stupid".

    You mention that a majority of the features that are offered in the new version of CF8 are not useful...ohh wait.. maybe you just don't have enough experience to imagine a use for them.

    Your looking to third party programming frameworks to fulfill your undisclosed and self important requirements. Did one of the 11 requirements include "makes us lunch before nap time"? Just curious.

    But more generally, your trying to drum up proof of life for coldfusion by throwing out a series of simple minded arguments. It's a lame blog, by what would seem to be a novice programmer (we can see the dew build up behind your ears) if only for the reason that these are features that the community (Ohh my gosh... there is a community?!) have been asking for.

    And lastly, truly the driving force, the business world. CFML has provided what it has always set out to do. Provide a fast and robust web programming solution. In 11 years I have never been without a great paying job programming CFML. And when any company I have worked with has even looked at the grass in yards of other solutions, they fall back to CFML fast.

    Permalink

  20. 2007/08/23 2:12 p.m. Robert Gatti said...

    I will try to stay on point and not take a forceful attitude with my comment but I regret that your post struck a nerve. Before I begin, though, I feel the need to qualify my knowledge and background. I am finishing my masters in computer science with a minor in mathematics at the University of North Texas. Some of my favorite courses were programming languages, computer algorithms, artificial intelligence, and operating systems. During the course of my education I have used, and feel very confident in, C, C++, Python, Java, ColdFusion, and PHP. I have been using ColdFusion since version 6 and am still happily using it.

    To begin, the marketing hype examples you gave as being the highly-anticipated features of ColdFusion 8 I feel are just that, highly-anticipated features. As a developer I do not understand the marketing arena but have to believe that any company with an annual revenue of $2.575 billion (http://en.wikipedia.org/wiki/Adobe_Sy...) and is attempting to sell a product for $7,500 each would take the time to market according to their consumer demographic. I could be wrong, but adobe acquired Macromedia for $3.4 billion and I have a hard time believing they would end ColdFusion since they have no competing software. Also, with the release of version 8 Adobe is integrating it with many of their own products or providing easy integration channels.

    ColdFusion is considered by many to be an enterprise Internet application language the same as J2EE. You can see this by looking at sites such as Bank of America, Ultimate Fighter, and the National Security Agency. Sites like these do not make choices without understanding the total ramification of those choice.

    Since you are interested in the environment ColdFusion developers work in, mine is very enterprise. I work for a contract company whose code backs multi-billion dollar organizations. These companies rely on the stability, security, and ease of development ColdFusion provides them. Their entire online prescience is built on ColdFusion and I know that if they felt there was a problem with this technology not only would heads role but I would most likely be out of a job. Their bottom line is not the technology used to develop their online applications but the fact that what is chosen works.

    With ColdFusion you have the ability to integrate many disjoint technologies. Since it is built upon Java not only can you utilize any Java or Java derivative library you want but with version 8 .NET as well. There are also ties to allow binary C programs to interact with the server if raw speed or legacy application integration is an issue. If these extensions do not facilitate a solution perhaps you need to reevaluate the process by which solving the problem. I am not saying that these technologies are the only choices but they do encompass the majority of reliable, secure solutions.

    (continued below)

    Permalink

  21. 2007/08/23 2:13 p.m. Robert Gatti said...

    (continued from above)

    If you want reusable code ColdFusion provides components. These dynamic objects can be treated the same as C++ or Java objects and for those who understand the nature of dynamic languages they provide much more flexability. If you have not used object oriented programming before or don't understand the concepts you have the ability to use modules or simple included files. Since these three mechanisms mimic the majority of popular programming languages the ability to design reusable systems with them is a direct reflection of the skill of the developer, not limit of the language.

    The evaluation of frameworks you gave would be more beneficial if the requirements were listed but I will make due with the information provided. All of the frameworks you listed, I can assure you, are in active development. I know Model-Glue, Fusebox, and Mach II have all recently released new version. If you are unhappy with any of them you have the ability as with any language to make your own framework or develop without a framework. It is not a requirement to use a framework, nor is it difficult to develop high performance, stable, maintainable ColdFusion applications without one.

    Feel free to contact me with any questions or comments. You can find more information on Adobe's site at http://www.adobe.com/devnet/coldfusion/. If you have not already explored the developer community you can find one at http://www.adobe.com/cfusion/usergroups/, also, the RIAForge (http://www.riaforge.org/index.cfm) is an excellent place to browse ColdFusion projects or just become inspired.

    Permalink

  22. 2007/08/23 4:15 p.m. Derek P. said...

    Dave,

    heres the thing. CF was not developed with developers in mind. It was a language designed to empower people who do not consider themselves developers. What happened though, is the RAD-era of application development came along and people began to put more trust in scripting languages, and suddenly CF started to become a much more viable platform to build solutions with. But this is one of the main reasons we just got interfaces and proper operators, for instance.

    I have been a ColdFusion developer for 3 years now, I practice OO techniques and I often times am considered "the odd one" in my firm because everyone around me cannot seem to "get" what services do or understand why remote facades are important.

    Many "legacy" ColdFusion "developers" are not engineers so trying to explain things like SOA and OOP to them is like trying to teach your blind cousin how to drive a car.

    There are many other frameworks you've not mentioned that I use regularly. how about unit testing? (cfcUnit), how about Transfer ORM? No Mention of ColdSpring (IoC Container for CF). If you wanted to make a general comparison of MVC frameworks, Reactor doesn't belong on that list.

    If you are not using eclipse for CF development, you're either using dreamweaver or homesite, and neither of those tools are designed with software engineers in mind, lets see you do an ANT deployment with homesite shall we?

    Don't get me wrong, I like python/Django, its a very very pragmatic approach to development (adhering to DRY), so is Groovy, have you checked that out?

    I think if you look at the people who became ColdFusion developers 6 years ago vs. ones who became developers even 3 years ago, their reason for utilizing the language will be different, and their approach to problem solving will be vast as well. Us darn kids with our new fangled object models!!

    Permalink

  23. 2007/08/23 5:38 p.m. tony petruzzi said...

    I also would like a list of the required features that each of the CF frameworks needed that they didn't meet. Currently I'm also looking to at alternatives to CF. I looked at .Net, Rails and Django.

    .Net - can't stand it. Hate the fact that their entire built in framework only allows one server side form on a page. Yes I know that there are plugins that override this, but come on, a hack is a hack. Also can't stand the fact that everything has to be written in classes.

    Django - like what I see, but it's still in it's infancy and doesn't have a strong market share yet. Though this was my first choice.

    Rails - awesome. huge market share and growing. I also like the fact that it restricts on how you can develop (some don't), which makes it easy for someone to take over an existing project.

    Currently I'm programming in CF with Machii 1.5 and although I think Machii is great and way better then ModelGlue or Fusebox, there are still somethings lacks. Plus I don't like that it take 8 seconds for the framework to load itself.

    Permalink

  24. 2007/08/24 3:21 a.m. Calvin said...

    I don't really agree with the overall article, however I would point out that one of the large organizations I'm involved with is moving away from ColdFusion, even though they have a solid infrastructure and a significant investment. The mandate seems to be driven more by perception than capability of the platform.

    However, I do have to point out that competing vendors offer stronger support, development tools, third party markets AND platform marketing. I hope that those reading tihs particular comment really take the time to objectively consider it.

    For example, just considering 'enterprise' to 'enterprise' solutions, compare the CF Eclipse Trio (or Dreamweaver) with Rational Application Developer or Visual Studio in terms of integration and ease of use relative to the target platform, platform specific 3rd party add-ons and so forth, you'll find a significant shortage in the CF ecosystem.

    As an aside, I recently re-evaluated CF for a rewrite of another project and considered a few alternatives, one of the few things that kept that project in CF were the PDF capabilities, since it appeared the cost for those would be much higher (either in integration time or licensing) in other potential platforms.

    Permalink

  25. 2007/08/24 3:55 a.m. Raymond Camden said...

    I'd like to ditto the first comment. What exactly were your requirements for frameworks? I'd also argue that for many developers, Ajax is not easy. Have you even looked at the Ajax features in CF? Have you looked at ? Ditto for the PDF features. In CF7 the feature basically just let you create a simple PDF. In CF8 there are numerous more PDF abilities.

    And you knock server monitoring. You seriously ask how it is useful. How do you test your web apps now? How do you diagnose slowdowns or other problems? How do you monitor your servers for potential problems? Isn't a tool to help diagnose and monitor your web applications helpful to their success?

    Permalink

  26. 2007/08/24 5:12 a.m. Tony Garcia said...

    I think David (the last comment) hit the nail on the head. There are many web development technologies -- all with their own strengths and weaknesses. What's great about that is that everyone is free to find and use the tools that are best for them. Good for you that you've found what works for you. But it's pretty presumptuous for you to declare ColdFusion as dead just because it didn't fit YOUR specs. Using that logic, why don't you also tell PHP and RoR people to also find a "better" language? By the way, I also think your complaint about CF coding being "redundant" says more about your lack of coding skills than any shortcomings of the language.

    Permalink

  27. 2007/08/24 6:01 a.m. dc said...

    I use a pan to boil an egg, tho my g/f uses the microwave. We argue over which is the best method all the time.... same quality of egg at the end tho, if we both pay attention to the cooking time.

    Permalink

  28. 2007/08/24 9:06 a.m. John Pfeiffer said...

    I'd have to agree with the other comments that you seem to be arguing against CF on the basis of reasons that are not fully explained, nor do you tell us why your chosen platform fits those needs. I think it's also pretty unreasonable to assume that because you are not happy with what it offers that the entire rest of the world will agree. There are many of us that don't care for .NET but I wouldn't say that therefore it's a dead language!

    Even these things you criticize in the CF8 release don't make sense to me. Server Monitoring will not help development?? Obviously you've never had to try and determine what line of code out of millions is causing an unknown bottleneck! The debugger requires Eclipse and some developers don't use Eclipse. Okay, so install Eclipse solely for use with debugging. No one is being forced to use Eclipse for their IDE if they don't want to. ANY debugger is going to be tied to some IDE and Eclipse is the obvious choice with its built-in debug functionality. And to say that built-in Ajax support is a negative! Come on, this is just absurd. Whether you like it or not, Ajax plays a big part in the web 2.0 world, and anything that makes it easier and faster to write speeds up development. That's the whole point of a RAD tool. Likewise the PDF functions which are greatly improved in CF8, allowing us to manipulate existing pdf documents and forms. Couldn't do that before. Image functions as well are quite good and produce very high-quality images (as you'd expect from Adobe). The fact that they are now built-in means you don't have to deal with issues with tags that don't work on a Linux server. How about the things you don't even mention that are great features as well? Native support for connecting to Exchange servers, native support for publishing and consuming RSS feeds, native support for zip format? Or how about the ability to spawn separate threads with cfthread? This can be a HUGE performance benefit for functions that need to make multiple external API calls. There are also improvements to CFCs that make them even easier to use for enterprise-level applications. There are so many other improvements and little hidden features, that to say this is only a marketing release is just silly.

    Permalink

  29. 2007/08/24 11:40 a.m. Dave Lowe said...

    @ Doug and George:

    Here are the full list of requirements we evaluated the CF frameworks against:

    1. Include a template engine and ideally a template language
    2. Provide full data modeling
    3. Manage all the SQL processing by itself (I should never have to write SQL unless I'm doing something very complex)
    4. Auto-admin: generate a fully usable set of admin screens to create, read, update, delete (CRUD) the data based on the models
    5. Provide a user model and authentication api (used by the auto-admin)
    6. Separate content, logic, and presentation
    7. URLs must be fully customizable and elegant (no .cfms and no query strings)
    8. Detailed documentation (both basic and advanced)
    9. Active developer community
    10. Active user community
    11. Production-ready

    Let me quickly address your question about redundancy here too, Michael. It's certainly true that using components is the best way to go with ColdFusion, but components still aren't as good as they could be because ColdFusion isn't fully object-oriented. So you're forced to do a bunch of work to add in a bunch of that object-oriented behavior. The sort of side issue is that ColdFusion doesn't strongly encourage component usage. I've known a good many programmers that write horrendous code, and they scatter their CF logic all over the place. And why not, right? There's no downside apart from readability, maintenance, etc. And that's a huge downside for the programmer who's working on the same project or comes along later and has to deal with it. But the language itself isn't helping anyone because it doesn't encourage best methods.

    But let's say you're using components well. Where's the redundancy? Well, you've either created a generic function to manage your database calls, which forces you to essentially hard-code information your logic in every file that accesses the data — terribly redundant. Or, you create a function specifically for each model (best case, it's just one function for both create and update) which expects an argument for each column. Great, except then you need to write the SQL code wherein you're essentially repeating all the information in your tags. And then you need to write the HTML form that creates and updates your data, wherein you're repeating all the information about your models.

    The alternative is to define your model once, and then everything (database calls, validation, and form code) uses that model. I haven't seen anything in ColdFusion that even approaches that, while Django is almost flawless in this area (the exception being that form management is being rewritten).

    Permalink

  30. 2007/08/24 11:59 a.m. Dave Lowe said...

    @David: AJAX is fine. It is overused, yes, but it has its place. I was criticizing the fact that Adobe chose to hype AJAX in its press release. Of all the timesavers they could integrate into CF, AJAX sure seems like one of the least important to me.

    It's possible to write redundant code in any language, why would CF be any different?

    Because it doesn't encourage good programming methods. Look at Python. One of its features is that it you have to have your indentation right in order for the code to work. It adds a constraint that forces programmers to right more readable code.

    Being "agile" is more a function of your organizations set up and focus, rather than the language you develop in.

    Agreed, but wouldn't you agree that frameworks like Rails and Django were created to achieve a new level of agility? And yet there's an absence of a decent framework for CF. Writing CRUD code over and over isn't agility.

    Permalink

  31. 2007/08/24 2:14 p.m. David said...

    Dave, I'm sure the AJAX features ARE the "least important" to YOU, but then again, that's what this article seems to be all about - YOUR needs. Which is fine - hey it's YOUR blog. However, you make the deduction from there, that CF is "dead". That's irrational. I'm of the opinion, that CF8 HAD to introduce robust AJAX features, and it did.

    Most people see the loose enforcement of the CF language as a plus - I know I have read Gartner documents that say that - but you seem to disagree. I don't need a compiler to enforce proper coding standards, and you know what - I bet you can STILL write spaghetti code in Python, and still have it undocumented, or, WORSE YET documented poorly!

    Redundant code, is writing the same code over and over again in many places, and no language will stop you from doing that if you are a developer with bad practices. Again, your argument in this regard doesn't scan - CF isn't a strict enough language, therefore it's dead. That's irrational.

    I don't know that Rails, etc was created to "achieve a new level of agility" - I just don't know if they were created specifically with that in mind. I'd caution that there are MANY theories of Agile development out there, and some are more language and individual based, while some are more process based. To say that using one language makes you agile is not a statement that could hold.

    We don't use frameworks with CF, but the rapid development features of CF allow us to operate in an agile manner. Still, making the shift didn't require us to make language or platform changes - it was all about the organization, the structure, the way we do business, both internally and with our clients. Not the language, not at all.

    You know, the "dead" argument has bouncing around for a long time now - since version 4, and how long do people have to be wrong about this? Most people who make these arguments are either partisan to a particular technology, or simply don't know anything about CF. I would count you as an exception, because you seem to be approaching this in a rational, intellectual manner - but (with respect) I think you miss the mark.

    Now, not that my opinion should count for anything, in your life, but a re-editing of this post, or maybe a follow up post informing us of why ColdFusion doesn't work for you, specifically, would be a better read. I'd like to know about that, and maybe it will provoke me, and many others to consider other options.

    ColdFusion dead? Not by a long shot, my friend!

    Cheers,

    Davo

    Permalink

  32. 2007/08/27 9:25 p.m. Dave Lowe said...

    @Davo: I appreciate your opinion and respect your fondness for ColdFusion. And I will be writing a follow-up article to better explain what I mean by "ColdFusion is dead." I am not arriving at that conclusion because it is a loose enforcer of its rules, nor because it is simply dead to me (though it is of course :P ).

    I have to wonder about the loose enforcement being a plus. I just don't get that. Who wants to spend more time debugging line of code after line of code? Accurate and immediate error discovery is a top mark in my book. Tell me when I make the mistake, not two months and a production site later. I'm very interested: is this appreciation for loose enforcement the norm within the ColdFusion community?

    You are correct in saying that it's possible to write bad code in any language, but it's much harder in a language like Python. By far the worst code I've seen, and its two dozen also-rans, was in ColdFusion. Coincidence? Perhaps, but I strongly doubt it.

    I also suspect that a smaller percentage of ColdFusion programmers understand OOP than programmers of Python, C, Java, etc. Why do I say such a crazy thing? I believe that if the programming community were more adamant and knowledgeable of OOP, then Allaire/Macromedia/Adobe would have made it a priority to implement better support in ColdFusion, and much faster than they have.

    Okay, final thought for this comment: you said "to say that using one language makes you agile is not a statement that could hold." Yet, that was in reference to Rails which is a framework. And of course the straw that broke the proverbial camel's back for me was the absence and incompleteness of frameworks for CF. Frameworks do make you more agile. That's the point. They remove the redundancy by automating the common tasks of webdev. And while you say "we don't use frameworks with CF", I think it's clear by the past attempts that many CF programmers would LOVE to have a framework. One, ColdFusion on Wheels, was patterned after Rails itself.

    Which leads me to this conclusion: I don't think it's possible to create a framework like Django or Rails in ColdFusion. I don't think the language can support it. And if this is true, and if CF programmers have realized that a framework would be beneficial, why stick with ColdFusion? If it isn't true, then where's the framework?

    Permalink

  33. 2007/08/28 1:13 p.m. David said...

    Dave,
    Regarding frameworks - I'll leave that up to the experts in CF frameworks. There are many to choose from, and I don't know why they didn't suite your needs. I've heard alot of people say they are great. Now, while we have looked at them here, we haven't made the switch, mostly, because we're quite busy, but we probably will for some project in the near future.

    Now, regarding your comments about "loose enforcement of the rules", you state: "Who wants to spend more time debugging line of code after line of code? Accurate and immediate error discovery is a top mark in my book."

    I'm afraid I just don't understand what you're saying here - and maybe an explanation by example would be better. I don't debug line after line of code. If my code doesn't work, I get told where the problem is. And discovering "mistakes" two months down the road - do you mean syntax errors? I've NEVER had that happen to me in CF, not code that I've tested, at least. What I HAVE had happen to me is mistakes in my business logic that has come back to bite me, but I could have just as easily made the same mistake when coding in python, no?

    I guess I'm not really seeing your argument here. I'm not saying you're wrong, but the instances of issues you are referring to are ones that I haven't encountered in CF, and I don't know why. Either I just genuinely don't have those problems - and I code complicated applications - or I am thinking of something entirely different.

    Either way, it doesn't seem like a reason to declare the language "dead"!

    Now, I'd agree with you on one item, that CF developers (and this is in general) understand OO less than, let's say, core JAVA developers. I'm not sure how big a problem this is. Also, I don't think that's confined to CF developers. In fact, I've met a large number of ASP and PHP developers that haven't got a clue about OO.

    (cont'd)

    Permalink

  34. 2007/08/28 1:14 p.m. David said...

    (cont'd)

    Now, I'd agree with you on one item, that CF developers (and this is in general) understand OO less than, let's say, core JAVA developers. I'm not sure how big a problem this is. Also, I don't think that's confined to CF developers. In fact, I've met a large number of ASP and PHP developers that haven't got a clue about OO.

    I do know about OO - I learned it early in my career. It has most definitely stood to me. It changed the way I developed COBOL programs, in the mid 90's (no kidding).

    There have been some people calling for stricter OO enforcement in CF for a while now, and while MM/Adobe have been placating them with some steps in that direction, they have made it clear that it will be optional.

    But as I said previously, don't just listen to the CF community - Garter thinks this is a benefit. While you and I can have our opinions, that actually means something.

    Again, your conclusion makes wild leaps of logic. "CF developers want a framework....there isn't a framework that can mimic Django....CF is dead".

    This REALLY does come down to what you want to do. "why stick with ColdFusion?" Why do people still code in Java? Why isn't Django used in 90+% of all web based applications?

    ColdFusion, right out of the box, has immense productivity. It has great breadth - It's as simple as you want it to be, and can still handle all of the complexities of business applications.

    The frameworks that are out there may not be Django, and maybe we'll never see a Django like CF framework, but the people who use them seem to be really happy, and productive, and all that happy stuff.

    What really gets my goat about your article, and the reason I come back to engage you regarding it, is that you point out some very detailed points that really don't affect many people, and then take a major leap to declare ColdFusion "dead".

    You have joined the ranks of those that have been holding a wake for CF for nearly a decade now. They have been wrong for all that time. Pre CF8, we were told that we'd NEVER see another release of CF. Post CF 8, the "dead" conversation has changed - it's focusing on these minuet details that are prevalent in such a small percentage of web applications and use that as "proof" that the language is indeed very very dead.

    What's unfortunate though, is that your blog post falls almost accidentally into this category, and it doesn't make sense. It's one thing to say "I'll never touch it because...blah blah", but it seems that your article should all along have said "I've outgrown ColdFusion, here's why".

    I always ask the people who declare CF dead, how long they're prepared to be wrong. Because they have been wrong for years now, and they will be wrong for many more years.

    Well?

    Cheers,

    Davo

    Permalink

  35. 2007/08/29 2:46 p.m. Dave Lowe said...

    To everyone who has commented, especially those whose comments have finally been added, you've asked some great questions and made excellent points. I realize what I wrote didn't come across entirely reasoned out, and I do want to apologize for insulting the ColdFusion community at the end there. It was intended more to incite a response than to actually insult, and incite a response it did, but I apologize nonetheless. Probably all of you are new to my blog, and an insult isn't the way I wanted to start things out (kudos to the person who sarcastically noted I must be the author of 'How to Win Friends and Influence People.' Well played. :)

    I appreciate your opinions, and I'm actually very encouraged (even it that sounds strange when a few dozen people basically said "dude, you're daft"). There's a lot more for me to write in defense of my conclusion, and a lot of potential for discussion and I look forward to that. I've learned a lot already.

    In the meantime, for those who asked about the 11 qualifications, I'd love to hear any feedback now that I've posted them above in an earlier comment. Just be aware that I'll need to approve your comment once you submit it before it'll show up.

    Thanks again!

    Permalink

  36. 2007/09/17 4:37 p.m. Jared said...

    Coldfusion is not dead or going anywhere it's just has a niche market. We have been using Coldfusion for years and I myself have been caught up in the "coldfusion is dead" scare but it's still being used. Wow frameworks. They can really help, really confuse, or really slow down an application. But to my point.

    Here is some data from indeed about jobs trends in the web languages.

    http://www.indeed.com/jobtrends?q=Coldfusion&l= The graph looks stable if down slightly but no real spike.
    Current Jobs available 2,994 jobs.

    PHP http://www.indeed.com/jobtrends?q=PHP... Also stable but looks to have a recent surge. Current Jobs available 12,186

    .Net http://www.indeed.com/jobtrends?q=.ne... Stable seems to go up and down a bit. Current Jobs available 80,244

    Ruby http://www.indeed.com/jobtrends?q=Rub... Sharp rise Current Jobs Available 3,407 if used ruby on rails only 1,306

    Django (I know its a framework) http://www.indeed.com/jobtrends?q=Dja... Looks like a roller coaster but it going up. Current Jobs Available 94

    Python Web http://www.indeed.com/jobtrends?q=Pyt... Stable growth Current Jobs Available 3,773

    Java Web http://www.indeed.com/jobtrends?q=Jav... Looks like the coldfusion graph Current Jobs Available 41,590

    It looks like if you want a job and use the most popular language you should learn to like .net. Coldfusion and Java both had a downturn, while slight it still was evident from the graph. The truth is Coldfusion market share is small and I don't see it doing anything magical in the future. But it still will have a place and many organizations will continue to use it. If you want to use the most popular language you should use .net.

    The major problem with Coldfusion is future developers after the original designers move on. But if that was your reason, .net or Java would be the answer. I personally would like to see Adobe release CF as open source or free and then use it to push their other technologies. Unless something that major happens it will continue to be a niche language that works great and is a great tool for many problems. The term "better", is a pointless argument when it comes to programing languages. The best term is whats the most profitable for your business to use. If you compare the job numbers and you said coldfusion is dead, you would also have to say Ruby and Python are also dead as they are really not that far above CF.

    Permalink

  37. 2007/10/26 3:35 p.m. Christina Gould said...

    The reason I'm still doing ColdFusion after seven years is because I keep getting hired specifically for my ColdFusion skills. There are currently more ColdFusion applications than ColdFusion developers, thanks to articles like yours. This last time around, my job hunt took three days. I had to turn companies away. When you're hot, you're hot! As long as I'm getting paid the big bucks, I couldn't care less what the rest of the industry thinks about ColdFusion. My goal is to keep working, in a job I enjoy, at a salary I can live with. So far, ColdFusion has been just the ticket.

    Permalink

  38. 2007/11/07 5:25 a.m. Justice said...

    Your framework requirements are interesting, and I think the latest Model-Glue: unity provide most of these

    1: Include a template engine and ideally a template language

    Model-Glue provides an xml method of defining your page output / processing rules that is event driven, along with robust methods of selecting templates and placing output into sections
    2: Provide full data modeling

    Model-Glue:Unity provides integration with both Reactor and Transfer ORM. Transfer has an XML language that fully models your database, as well as relationships

    3: Manage all the SQL processing by itself (I should never have to write SQL unless I'm doing something very complex)

    Transfer ORM does all SQL for you, as well as supports multiple database servers

    4: Auto-admin: generate a fully usable set of admin screens to create, read, update, delete (CRUD) the data based on the models

    Model-Glue:Unity provides Scaffolding, which is a fully-usable CRUD interface for anything you model in Transfer or Reactor.

    5: Provide a user model and authentication api (used by the auto-admin)

    While this is not directly included in the framework, writing an action pack (small bit of pluggable code), this would be available in any Model-Glue applications you write, and very re-usable

    6: Separate content, logic, and presentation

    Model-Glue provides this in scads, and forces a strict seperation (with an event object to communicate between your controller and view)

    7: URLs must be fully customizable and elegant (no .cfms and no query strings)

    While this is not directly included, Ray Camden has several tutorials to generate SES URL's. This also has a lot to do with your web server, and I dont think it should be a requirement of a framework. I have, and many others have, worked with SES and pretty url's without any issues.

    8: Detailed documentation (both basic and advanced)

    There is provided both online doc, downloaded doc, as well as forums, a google group, #modelglue on DalNet, and a list of houseoffusion.

    9: Active developer community

    There are many people out there spending their time to add features and further tweak and extend model-glue, see above for locations =)

    10: Active user community

    see above

    11: Production-ready

    The current release is stable, fast, and has enabled me and many like me to generate very re-usable code in a well documented fashon.

    I think before you dismiss CF or its frameworks, you may want to investigate this a bit further. The tBlog example will show you how Transfer functions, and there are many Model-Glue examples out there as well.

    Permalink

Comments are closed.

About

Photo of Dave Lowe In Between is the blog of Dave Lowe, a web designer and developer in the Orange County (Southern California) area.

Read more

Contact: email 'dave' at this domain.

Made with Django.

Hosted by WebFaction

XHTML 1.0 Strict, CSS.