How OO Almost Destroyed a Business

I stumbled across an honest account by Marc Funaro about how OO almost destroyed his business. He spares no detail in the post, but I still think it is worthwhile to read in its entirety as a reality check for yourself.

Dynamic languages like PHP and CFML have been on a quest over the past few years to be more “Java-like,” adding more object oriented capabilities. These features bring a lot of promise for your code to become self-documenting and organized. But there have been undercurrents by pragmatists who contest that these features add unnecessary complexity for languages that were “fine just the way they were.”

As I’ve progressed through my career with ColdFusion, I’ve started agreeing more with the pragmatists. While ColdFusion experts have been arguing about “XML versus no-XML” over the past year, I’ve strongly desired getting my work done so I could feel some accomplishment and have a fresh breath of air away from my computer from time to time.

With my personal experience, this is where ColdFusion on Wheels has entered and really brought the fun back into ColdFusion development.

One thing that Wheels has done for me is use CFCs to organize my code and make database queries easier. But at the same time, I don’t feel like I’m wasting too much time worrying about the design of my objects. It all just flows and works organically, and it all works that way simply by following conventions that we’ve laid out for you. I will forever be amazed at what David Heinemeier Hansson has accomplished by implementing the concepts of Ruby on Rails and what these concepts accomplish for me in my life as a CFML developer through my use of ColdFusion on Wheels.

If you at all have felt CFML lose its magic in a way that Marc Funaro described so well, give Wheels a try. The more you uncover about our framework, the more it just makes sense. Our framework considers what ColdFusion as a platform does well and sticks with that. ColdFusion returns recordsets lightning-fast, so Wheels’s findAll() methods return recordsets instead of CF‘s notoriously slow objects. (It also uses objects to represent data when that makes sense.) Wheels also helps you easily understand where your URLs point to in your code with its controller conventions. And hell, I’ll even offer up the fact that Wheels’s default URL behavior doesn’t even give regard to the underlying platform. Having URLs that end with .cfm, .aspx, .jsp, etc. do nothing to contribute to the overall user experience anyway.

These sentiments bring me a lot of hope for Wheels’s role in the CFML community. We’re pushing forward and helping you develop beautiful code using the best platform for developing web applications, period.


  1. Adam Fortuna says:

    Nice response Chris. I don’t do CF work really anymore myself, but if I did I’d be using Wheels. Looking into it definitely made CF more fun, while not worrying as much about the outside community opinion. Very easy to get into.

  2. Chris Peters says:

    Thanks Adam. Back in the day, you did at least one good write-up of Wheels that I can remember.

    While sometimes I poke at the CF experts, I do want to clarify that I love them to death. It boggles the mind when you stop and think about what they’ve done for us. From writing the CFWACK to the software that this very blog is running on, most of us are forever in debt to them.

    I think I can speak on behalf of the Wheels community by saying that we need to bring the fun back into ColdFusion. There’s potential for some really cool stuff to come out of CF because it is such a great toolset.

  3. James White says:

    I will have to give CF Wheels a look and see what’s up. I have been chasing Java and OO for about 3-5 years now and almost lost the desire to continue programming. I was tired of learning one having to constantly learn this framework and Server Platform or that framework and Server Platform on top of what you needed to know for basic JEE web development (core Java, JSP, and Servlets). I am all for learning, I just wonder at what point do you stop learning and start coding? I think the CF community became too obsessed with being just like Java (me included). I have made a good living off of CF for 10 years, and yet I still felt like I had to learn Java, JEE, Struts, Spring, Hibernate, etc. to be a “good programmer”. Again, thanks for the post.

  4. Ike says:

    Much the way I feel about the onTap framework as well. I’m having some trouble with a domain transfer on the site right now, but the riaforge project is still up — unfortunately because the DNS isn’t resolving, the webservice I created for installing framework plugins isn’t working. D’oh! But when it works it makes adding stuff in a snap. 🙂

  5. Chris Peters says:

    Thanks for commenting, Ike! I heard your interview on CF Conversations and have wanted to give onTap a try. I’ll have to check it out sometime soon.

  6. Ike says:

    Thanks Chris. Getting CF on Wheels into the frameworks comparison article I wrote a while ago (where I ported Galleon Forums to several different frameworks) has been on my list of things to get to for a while, but it always seems like I’ve got so much else going on… Although my articles about the Galleon project are my most read articles on my blog and I think it’d be helpful for the Wheels community too. 🙂

    In case you hadn’t seen the blogs or the report, the first blog article about it is here: There was also an online CFUG presentation on the Galleon project here … Of course if you’ve got time to port Galleon yourself, I’d be happy to put it in there, otherwise I’d like to get to it although I’m not sure when.