Is it a tool? Is it a process? Is it a framework? Rapid Application Development is an ultimate dream of software engineering, and has been used and abused by too many vendors to sell every thing from libraries, frameworks, IDE to processes.
Essentially RAD or Rapid Application Development is what it says, it is any thing and every thing which can help you shorten the time to release. In my whole career, I have not met any single customer who is happy to spend money over long and slow development, every one wants their software like their instant coffee, steaming hot and right now.
There is nothing wrong with this expectation, only our current software methodologies are not match to this expectation and that is what causes delays and losses.
There had been countless attempts to fill this need and some of them have been more successful and popular than others. In this post we would be discussing mostly on the tools which were made as an attempt for RAD, not processes like Agile.
The first and the foremost of them, the king of all, UML (Unified Modelling Language) was an attempt by CASE (Computer Aided Software Engineering) tools vendor to define software and code. The most notable of them was Rational Rose which was later acquired by IBM, and created RUP (Rational Unified Process) . Rational provided code generation tools which would understand UML and generate code, the only issue was that these codes were mostly incomplete.
If you look at the above class diagram, you can only generate the class structures, but not the implementation of methods.
UML backed tools were way too far off from the dreamland of RAD, unfortunately the UML tool still have their place in current software engineering, so if you are still using UML tools, you are walking amongst dinosaurs.
The second kind of tools are ones essentially IDE (Integrated Development Environment), today we do not see IDE as RAD tools but there was a time when people used to write code using vim or other text editors and considering that, it was a leaps and bounds of improvement in speed. IBM used to sell WSAD RAD , a part of which is now called Eclipse which I am sure we all are fairly familiar with.
Some of the IDE or IDE features can assist in code generation like Netbeans GUI Builder or Visual Studio UI builder, these are some of the features which we take for granted now, but they were futuristic when they were released.
The third kind of tool are code generation tools which would reverse engineer application from a defined database. These tools assume the database to be the datamodel and generate CRUD flows using some technology or framework. My favourite in this category used to be now a defunct project called MiddleGen which could generate entire application from database. Currently there are way too many code generators for every kind of framework from Laravel or Codegniter to J2EE.
The last kind of tool or framework which we would discuss here are the forward engineering tool for code generation, which work very similar to the reverse engineering cousins, the difference is that the model is defined through the tool or framework. The most famous of all the RAD, mother of all evolution, Ruby On Rails is the the leader in this category. Other notable players in this category is Appfuse and JHipster.
The one big flaw with all the RAD tools is the UI which is generated is of one style and in most of the cases, the first thing you do is throw away the generated UI code to build your new UI code.
This is where ScaffoldThis tries to bridge the gap. In this app you can choose your template before you generate the code.
ScaffoldThis is a forward engineering application generation tool which builds on the foundation of all these and incorporates additional features to build the next generation Rapid Application Development platform.