The latest version of the ColdFusion Weekly podcast was released yesterday. Matt and Peter were kind enough to have Aaron and I on to talk about InstantSpot. This was actually our second time to have this opportunity, although we had *much* more to talk about given our experiences over the last 14 months since the previous visit!
We covered a lot of areas from how it all came about in the first place, to some of our trials and tribulations rolling out the latest release and all points in between. If you would like to hear some of our experiences and the technology behind our network, I urge you to check it out.
I blogged the other day about my response to some statements on www.webdevradio.com by Michael Kimsal regarding ColdFusion. This started an interesting chain of events. Michael read my post on the webdevradio.com forum and apparently came here and read my blog. He contacted me later that day and told me he appreciated my comments on the forum and wondered if I would be interested in doing a short segment on his show about the Mach-II/Reactor Jumpstart application. Heck yeah!
So Friday night I put together a segment and sent it to him. He released the new episode today and you can hear my segment in that show. Below is a direct link to the episode, but make sure to subscribe to his podcast. He regularly has good information on it.
Episode 18: Listener feedback Audio Download (31:08 min / 14.3 MB)
I was listening to the Feb 28 podcast of WebDevRadio on the way into work this morning, which is a kind of PHP-centric podcast that branches out a bit into other areas of web development. The speaker (Michael Kimsal) was commenting briefly on ColdFusion and how it is a quirky language with a small group of loyal follower, and how it is a tag based scripting language that allows people without much programming experience to create functionality with relative ease, allowing users to use tags in place of having to write lots of code. Anyone who is a somewhat serious ColdFusion programmer would know that this does not really reflect the nature of ColdFusion today. He also mentioned that it was really hard to find any current information about ColdFusion on the internet, and that most information that he comes across is outdated. To his credit, he did give props to Mark Kruger’s blog and to Hal Helms and Jeff Peters’ Helms and Peters Outloud. I was going to email the podcaster with my reaction to his comments about ColdFusion, but couldn’t find an email on his site. I did however, find that he has a forum set up where people can post comments about the podcasts. I made the following post regarding his comments.
Subject: In Defense of ColdFusion
… ok “defense” is obviously not the right word, as it clearly wasn’t attacked, but I did want to offer some further discussion and counter points to your comments on ColdFusion from the 2/28 podcast. I would like to preface this by saying that this is by *no* means intended as a rant, but more to shed light on a couple of things that you might not be aware of.
Before I get to that, I would like to validate your comments about Helms and Peters Outloud. This is a tremendous series that not only benefits ColdFusion developers but developers in general. Hal and Jeff are both extremely knowledgeable and talented guys that have a wealth of information to share.
The first point I wanted to make was in response to your description of ColdFusion. I am guessing from your comments that you have not worked with ColdFusion since the release of MX, or have tapped into the dramatic changes of the language since that time. To describe it as just “a tag based language that makes it simple to add functionality to a site” (poorly paraphrased) is completely missing the target. I will bullet point a few of the reasons I make that statement.
- Since the release of MX, ColdFusion now sits as a layer on top of Java. Java classes can now be accessed directly from ColdFusion now leveraging a tremendous amount of power that wasn’t there previously. If I want to have my entire data model set up in Java I can do so, then access those objects with ColdFusion as I would if they were part of my application.
- Design Patterns have really been made part of best practices in the ColdFusion in the past couple of years. I find more and more applications that are built with strict adherence to the MVC design pattern, creating far more scalable and robust applications than in days of old.
- OOP is a reality with ColdFusion. The way in which people create applications these days is much more in the vein of writing Java applications. Bean, DAO, Gateway, and TO patterns are typically the way that people access/persist the data in their applications. Long gone are the days of sloppily dropping in a query here and there in a CFM template and putting all your business logic in the page, making brittle applications that have the potential to die if changes are introduced elsewhere. Best practices today abstract all of that and make classes do the work, leaving applications much more insulated from change, and much more portable.
- Duck typing – not something to be ashamed of anymore! In the not too distant past, ColdFusion would be criticized for being a loosely typed language. With the growing popularity of things like Ruby that are obviously loosely typed, people are starting to realize that sometimes there is power being able to duck type objects.
- Incredible amount of growth in the past 18 months… ColdFusion developers were described in your podcast as a small but loyal following. If you look at the recent TIOBE ranking system (which is kind of a buzz meter imho), they rank ColdFusion at #13 of all languages (not just web languages) for March 2006, which is up 13 places from this time last year. In comparison VB.Net is at position 20, and I wouldn’t necessarily describe them as a small group.
- Enormous amount of new frameworks and methodologies… There are now a number of strong application frameworks that employ MVC patterns to ColdFusion design, such as Fusebox, Mach-II, and Model Glue (which is now being ported to other languages). In addition to the application frameworks, there are now ORM frameworks such as Reactor for ColdFusion that offer tremendous power using database introspection ond object factories. For example, the simple fact that a table called UserAccount exists gives me a Bean, DAO, Gateway, and TO of a UserAccount object with all getters and setters, validation, and any methods I need to do what I need to. With Reactor I can also wire all my object relationships in XML, and by simply instantiating a bean I have Iterators available of all its children and there children. There is also ColdSpring that allow you to inject object dependencies via XML.
- As for the comment about it not being open sourced. I am not sure how that is much of an argument against it at this point. I have yet to ever meet a PHP developer who has altered the source of PHP, and if cost is an issue, you can find ColdFusion hosting for $5.00/month at will these days.
I would like to bring up one other point. It was mentioned in your podcast that it is hard to find updated information on ColdFusion. There is a large number of active bloggers in the CF blogosphere, of which Mark Kruger (who also keeps a podcast of that blog), who was mentioned is on, as am I at www.daveshuck.com. If you want all the ColdFusion info you can handle in one place, you must check out the blog aggregator www.fullasagoog.com. Add a live bookmark to the ColdFusion feed an never be left in the dark again! There are a few others as well such as www.feed-squirrel.com, www.codebulletin.com and the MXNA list at http://weblogs.macromedia.com/mxna/. The folks at www.asfusion.com have created a cool blog reader for MXNA built 100% in ColdFusion using 100% ColdFusion with Flash Forms. Go check that out at www.asfusion.com/mxna.
I seriously hope this did not come off as a rant, and I really enjoy your podcast. Keep up the good work.
Anyone who knows me knows that I have a lot of respect for Hal Helms. I took a 1 day class by him at CFUnited this year (his Domain Model OO class) and walked away with my head spinning with all the ideas that I had just tapped into. His class is part code, part programming theory and part Hal’s philosophy. Since then anyone who has asked me about training has received a reply “If you can find a class by Hal Helms. You won’t regret it.”
Well, now you can for free! (sort of..) OK, not really a class, but using the new podcast audio series Helms and Peters Outloud, you can get a taste of what his class offers. In fact, the first one that I listened to “Design Patterns” covered some of the subjects we covered in class, and included an excercise (employees… hourly vs. salary) that we did in class. FYI, our group in class actually got it right The left side of the room didn’t fair so well.
They don’t seem to have a full library listed on their site www.helmsandpeters.com, but there is an RSS podcast feed that lists several of their sessions. Considering I have a 1 hour commute to work, I don’t think it will take me long to get through the ones that are there. I hope more are on the way soon!