Thanks to Doug Setzer from 27 Seconds Inc for these thoughts, he doesn’t blog (yet) so thought I would be interested in posting it –not sure why as it would seem he’s my only reader…!
I tend to agree with Doug on this one, I remember seeing Code Smith in action at a previous Developer Developer Developer day and although it does look, I have similar concerns as Doug, IMSHO I'm concerned it makes the developer lazy and forget his roots. IIRC many generators offer the ability to make your own templates but again, by doing so, how much time do you really save?
Not being a code generator user* I’m also somewhat biased but I’d be interested to hear other peoples thoughts.
*That said, I do have a number of “tools” that I user to generate the repetitive code but these mainly rotate around Excel and are specific to my coding methods.
The decision to use code generators is a long and tricky decision. I'll admit from the start, my slant on code-generation tools is against them.
For one of my other clients, I use a simple code generation application that they provided to me (the guy wrote it). It does a decent job and for their coding style, it works out fairly well. It takes a very simplistic template and can output (to an extent) customizable code.
The problem that I have with all code generation tools is your ability to make changes. Very rarely do you know all of the data, or the extents of repeating data, or the nuances of the code that you have to develop. So - how does the application handle changes? In my case and this (very) simplistic code generation tool - plain and simple, it doesn't. I have to hand-code changes (.NET, ASP.NET and database procedures).
And the last thing - the nuances of the code that you have to develop. How well does a generic tool handle special situations? Again, I know a free/custom-built tool is a far cry from a $500/$2000 tool - but, anything that is outside of a simple CRUD/1-table procedure and again, I'm hand-coding. I can honestly say, 50% of what I'm doing is "special" and doesn't fit into cookie-cutter boxes.
The code generator that my customer gave me did exactly that - it generated code for a database. It was up to me to build the pages and it just gave me an easy database access API. I like this more than tools like Iron Speed because nothing is being done "for" me, I can control the code it outputs and nothing, nothing is "behind the scenes". With Iron Speed, they're doing a LOT "for" you. My fear is what happens if it breaks? Who do you call? Where do you look? And, the purist in me - what does their code really look like? Are they doing poor-design things that ultimately give you performance woes?
Unfortunately, with tools such as this Iron Speed - the only way to know if it'll work for you is to make the plunge, spend the $500 for the pro. version and see how it goes. You can help get yourself a glimpse, looking under the covers by downloading the trial and putting together some little apps in a month. And, I see that they have a public support forum:
See what people are saying they love? what they hate? etc.
And, of course - Google is our best friend:
I hope this helps - it's a lot to digest, but generally what I'm seeing is that it's good for small/simple apps.