Code Generation Tools are Becoming a Requirement
|
Although automating the generation of code may not be everybody's idea of a best practice when it comes to application development, the fact of the matter is such tools are becoming indispensable. What's driving interest in such tools is the shortage of developers that exist in the world and the fact that most of them are behind schedule. Most developers might not voluntarily turn to code generation tools, but their harried managers are increasingly making it a project requirement. From a manager's perspective, developers tend to spend too much time reinventing the wheel. Code generation tools can be used to create the more mundane elements of an application so developers can spend more time customizing the business logic that surrounds the application. After all, it's the business logic that differentiates the application, rather than the basic functions of the application that 80 percent of all applications have in common. Companies that create code generation tools, such as Iron Speed, are starting to develop a following among the people that hire developers because code generation tools help keep the application development running on time. This has become a bigger issue for teams of developers that are trying to keep application development projects in house. Outsourcers routinely use code generation tools to reduce the number of developers they need, which in turn helps them keep their projects bids low. Developers, of course, think of themselves as artisans and craftsmen. That means that nobody else's code, either generated by human or machine, could possibly be as good as theirs. But in the big scheme of things, that may not matter even if it's true. There's just too much work to be done, so it only makes sense to get as much done as possible using the simplest means possible. And because more time can then be applied to creating by hand the business logic that truly differentiates the application, developers are gong to find that their clients going to have a higher appreciation for the quality of their work, which by the way goes up every time it's delivered on time. Given all the issues surrounding application development these days, it looks like use of code generation tools is now in the best interests of everybody concerned. |

Comments (10)
As an IronSpeed customer, all of that is true. Further:
1. A code generation tool settles the architectural issues that designers will otherwise argue about such as two-tier vs three-tier. I describe it as solving the cat-herding problem. Otherwise, a chief architect has to design a base class framework and teach it to the rest of the staff. Without one or the other, the chances of succeeding drop to less than half.
2. A code generation tool ensures a smoother workflow with marked sections for code. This also improves QA and ensures consistency.
3. A code generation tool functions as a rapid prototyping application. It is easy to very quickly put together a functional application to show a customer or potential customer.
4. A code generation tool such as IronSpeed forces the discipline of good relational design. Bad table design such as the all too often seen flat tables used by too many fast development shops can be seen instantly with IronSpeed.
5. IronSpeed makes it possible to use programmers trained for fat client work who have little experience with web development but have significant subject matter expertise particularly when an application is replacing older applications with web based applications. While they will still have to learn how to work with stateless applications, the speed with which they can become productive is cut to a third.
6. It makes us competitive with India. Enough said.
IronSpeed and tools like it reduce cost and increase productivity. It is the difference in using a hand saw vs a skill saw. It can save a project.
The downside: someone with superior programming skills is still required to modify base classes and maintain them. No size fits all. The security model is not well thought through for Active Directory applications but tolerable. It is not the best way to do multi-team non-colocated building. IOW, it isn't a great enterprise application. It is too easy for schema changes to cause stored procedures to overwrite each other when the team is in high dudgeon. That said, with coordination, planning and experience, the upsides outweigh the downsides by many orders of magnitude.
Posted by Len Bullard | August 7, 2008 9:02 AM
I am thrilled to use Iron Speed Designer. If it has been a few years since seeing this tool, it is worth another look. It has matured well over the years and brings a TON of value to the table.
I rather like integrating 3rd party controls with Iron Speed Designer. I tend to favor the Telerik controls (Menu, etc.), however, a lot of people integrate Infragistics as well.
Another key point that I use is the Code Customization Wizard. This is a Wizard that runs the developer through making 'common' code changes. I use this in two ways:
1) To actually write the code for me. Although I can write it myself from my head, it is much faster and easier to run through the Wizard a few times and have some very nice customizations done for me, the right way and in the right class and method.
2) To LEARN the OO Object Model (Base Classes). By just taking a small chunk of time and considering the proposed code customizations, I find that I better understand HOW to [properly] make common changes, which methods to override and how to work with the base classes to change the default-generated application to work the way my customer needs.
This tool is will worth the money - especially once you get comfortable with the OO constructs and where the common helper classes are. Next thing you know, you'll be flying along.
Posted by Jim Murphy | August 18, 2008 5:13 PM
I've been using Iron Speed for several years now and have created apps ranging from a just a handful of pages in less than 30 minutes right up to sophisticated 250 table plus financial apps that would have taken a bigger team than I had 3 or 4 times as long.
I really like the reliability and robustness that the data layer provides time after time leaving me to concentrate on custom coding areas that need extra functionality. I can easily integrate 3rd party tools and have created reusable items that drop in to control financial charting and Reporting Services amongst others.
Whenever I start a new project my first question is "Can I use Iron Speed for this?" Invariably the answer is yes!
Posted by Tim Titchmarsh | August 19, 2008 2:22 AM
I’ve been using Iron Speed for several years now and have created apps ranging from a just a handful of pages in less than 30 minutes right up to sophisticated 200 table plus financial apps that would have taken a bigger team than I had 3 or 4 times as long.
I really like the reliability and robustness that the data layer provides time after time leaving me to concentrate on custom coding areas that need extra functionality. I can easily integrate 3rd party tools and have created reusable items that drop in to control financial charting and Reporting Services amongst others.
Whenever I start a new project my first question is "Can I use Iron Speed for this?" Invariably the answer is yes!
Posted by Tim Titchmarsh | August 19, 2008 2:26 AM
We have used Ironspeed for almost 2 years, and although Ironspeed is good for in-house intranet application, the tool is not suitable to be used by a development team. It is not integrated with Visual Studio, will not run on virtual machines and the licensing requires you to be new licenses for the latest version only. This causes any code generated to have to be retested by the QA department. We have left ironspeed and moved over to CodeCharge. If you have unseasoned developers then ironspeed may be a great tool, but if you are developing cuttin edge apps, stay away from ironspeed
Posted by Fahad | September 4, 2008 8:15 AM
CODE CHARGE RIULES!!!!!!!!!!!!!!!!!!!!!!!
http://www.yessoftware.com/products/features.php?product_id=1
Visual IDE and Code Generator
Rapidly build web applications by generating robust, scalable programming code in ASP.NET (C#), ASP, PHP, Java Servlets, JSP, ColdFusion and Perl.
Database-to-Web Converter
Convert any database into a Web application in just a few minutes.
Web Reports, Calendars, Galleries, Charts, Ajax and more...
Transform yourself into a Web guru by using our powerful development environment for quickly creating advanced Internet applications.
Pre-built Solutions
Customize and enhance any of the examples included with CodeCharge:
Community Portal
Online Store
Task Management System
Employee Directory
Bug Tracker
Forum / Message Board
Posted by me | September 4, 2008 3:14 PM
Strengths: This application does an impressive job of creating 80% of what you need
Weaknesses: going from 80% to 100% withing their IDE is bordering on impossible.
Details: Everything in Ironspeed revolves around a couple of reentrant wizards.After the first run through, results are impressive. Certain customizations are remarkably easy (such as adding new fields). Other changes (changing the field from a foreign table to display) is impossible (due to bugs, not design). I tested the 4.2 version, and REALLY wanted it to work - especially after the initial run. On the good side - they have a free 15 day demo - which comes with support (which is what allowed me to determine it wasn't suitable to my needs.
Posted by Johnathan | September 4, 2008 3:19 PM
Len's comments are generically applicable to many code generation environments. Personally I use Clarion, but I find myself nodding in agreement to all of his points.
Some additional (no doubt generic) points;
a) Because the tool generates most of the code, it's easier for programmers to change project, or take over a project. The architecture is consistent from one application to the next, so the detail of a specific project can be easily identified.
b) Code generation tools are not sexy. They're not focussed on cutting-edge language techniques. The emphasis is on getting working code, out the door.
c) Most of these tools are aimed at, and appreciated by, people who make their living based on the projects they complete. So they're largely ignored by the popular press.
Posted by Bruce | September 5, 2008 5:29 AM
Regarding Bruce's comments with regard to Ironspeed
Because the tool generates most of the code, it's easier for programmers to change project, or take over a project. The architecture is consistent from one application to the next, so the detail of a specific project can be easily identified.
---- With Ironspeed this is true as long as your programmers are Ironspeed programmers, and all your projects were generated on the same version of Ironpseed.
Most of these tools are aimed at, and appreciated by, people who make their living based on the projects they complete. So they're largely ignored by the popular press.
---- With Ironspeed is not that the product is ignored, it simply will not work in most development shops. So why cover a product aimed at small projects, or intranets apps.
Posted by fahad | September 26, 2008 10:47 AM
Application generation and development are moving into a new realm... configuration development (e.g. WPF, plugins, themes, etc)... most likely the longer term wave of the future. IronSpeed is embracing that direction by introducing more configuration development options with each version, which overcomes the problem many code/app generators have with upgrades, etc.
We ain't in Kansas any more...
Posted by Les Cardwell | November 9, 2008 2:43 PM