Those of you that have heard me talk at User Group tour talks, or at yesterday’s Online ColdFusion Meetup have heard me use the phrase “RAD without Rules.” It’s been going through my mind ever since I started using ColdFusion Builder and ColdFusion 9 together.
You see, ColdFusion was built as a Rapid Application Development tool for the web and for many of us it was alone in that space. However, it would be disingenuous of me to not acknowledge that there are tools that have stolen the spotlight away from ColdFusion. For me, this release of ColdFusion is about getting that spotlight back.
I was thinking about the phrase “convention over configuration” which seems to be the prevailing philosophy behind other RAD tools, like Ruby on Rails, Grails, Zend, etc. To me it means, “Code the way we tell you to, and we’ll make it fast.” It’s hard to tell tone here, but I’m not trying to knock this. A lot of smart people have done some awesome work with this mindset.
However, it never really fit with me, both when I was using frameworks and when I was writing them. People almost always chafe at the conventions. People always think they themselves can do things better then someone else. Not just me, in this case, but the people I was trying to get to use conventions. Some of that thinking is misguided. Some of it is “Not Invented Here” thinking. But at the end of the day, you’re always going to be more productive using something you believe in, rather than something you’re somehow compelled to use.
This leads me to the features of ColdFusion 9 and ColdFusion Builder.
ColdFusion Builder comes with extensions that generate code for you. Want to quickly generate code for viewing information in your database? You can do that. Hate the code we generate? You can completely change it. It’s written in CFML, and completely visible/editable to you.
Want to do your front end in Flex? You can have it faster. Want to use ColdFusion in Flex quickly? You can use Exposed Services.
Want to work with PDFs? You’ve had that. Want to work with Office files? Now you can do that too.
We’ve added Hibernate ORM to ColdFusion. Want to wire up an object model in ColdFusion, and just have the CFCs define the database? You can do that. Want to model an existing database ignoring its structure, and instead building proper objects regardless of underlying structure? Guess what? Doable. Want to just provide CRUD for your existing database without writing a lot of code? You can just leave your ORM CFCs blank, and we’ll take care of that for you.
Don’t like ORM? That’s fine, CFQuery isn’t going away. We’ve tweaked it a bit, to use the application.datasource by default. Also, the code generation tools we provide will generate CFQuery code for you instead of ORM code. Don’t like the code we generated… you should get the point by now.
The point being this: instead of saying “Code the way we tell you to and we’ll make it fast” ColdFusion is saying “Code the way you want, we’ll make it fast.” That is what I mean by RAD without Rules.”