CMS Administration vs. Presentation Languages
Joe’s ColdFusion post got me thinking about a little fling I had with ColdFusion a few years back. I liked it for its simplicity and declarative syntax, but I didn’t think it had enough depth.
However, wouldn’t it be great as a templating language for an existing CMS? It’s lightweight, simple, plays well with HTML, etc. In a larger sense, who says that your content needs to be presented by the same language that your CMS is written in? Separation is good.
Think of content management as having two sides – (1) managing and administering content, and (2) displaying content. (I would actually argue – and I have – that content management has nothing to do with displaying content, but stick with me here.)
Now, lets put the 50-yard line of this game at the database. So the creation, management, approval, and general administration of content all leads up to one moment – when a certain content record in a database table is declared “active.” Everything is working up to that point. The “active” records in the database table are free to be used on the public side of the site.
Why not just create a view of the database that only includes those records, then give your designers and presentation specialists a read-only user and a copy of ColdFusion? Who says that the language the CMS is programmed in has to be the language the content is presented in?
I’ve talked before about the fact that the management of content is the hard part, The presentation of content is usually pretty easy, while actually getting content to the 50-yard line of our situation – through creation, adding of metadata, approvals, various workflows, etc. – is the real value-add of content management.
I say use whatever language you need to program your CMS, but don’t feel compelled to use that same language for presenting the content. ColdFusion would be perfect in this capacity (and ColdFusion Express is – or was – free). Client-tools work work well here as well – Dreamweaver has great database integration, and FrontPage would even work in a pinch. And who could forget about Escapade?
I working on a CMS right now, and I’m tempted to bag the entire built-in templating system I have and just leverage an existing language for it. I’m suddenly enamored with the idea of drawing a defined “content line” and having a complete separation of systems on either side of, with the only common element the database itself.