Today I'm going to talk about being effective as a Developer/Software Engineer and some hints like to when it is good or not to use such Rapid Application Development (RAD) tools and Integrated Development Environment (IDE)s.
I was astonished when I couldn't find an wikipedia article describing this better, at least they have an article to reference RAD tools (not all of them, for example it is missing the JBoss Forge). So I thought I could help a little bit writing this post and reminding some good references to allow us to better understand our time and make the right decisions.
The idea behind RAD (and part of the IDE concept as well) is to increase the productive of the developer. In a nutshell, you would use a tool, for example some linux-based commands, that would make awesome applications very fast. So any simple command would result in instant (maybe even big) results. In this link tells more how the buzz-word RAD changed over the time, like the PERL language which was designed to be an RAD (it seems very weird but compared how the term is used nowadays).
For Java, I would recommend two RADs: Spring Roo (home, wikipedia and source code) (unfortunately the Spring website changed and many links for that are broken) and JBoss Forge (home and source code) (it has a nice getting started in the documentation, mastertheboss and quickstarts in JDF). Those two guys are the state of art when the subject is RAD for Java. They will provide a good way to create instantaneously an entire applications following some internal scripts, maintain the code and insert new features without any trouble. Of course for big projects it probably be not a good choice to use RAD tools due the amount of details of your business require. But for Proof of Concept or a bootstrap for an application it might give a lot of help as it not only gives you a well-organized and good quality code but it also provides with Maven a way to keep the organizations and management of the project even after removing the RAD tools. Another good use of RAD tools is to learn new technologies and how to integrate them. Is like creating on the fly cool examples where you can test and destroy without worry due it is is very easy to re-build from scratch. There is an old dzone article that talks more about those things for Spring Roo (but it is equivalent for JBoss Tools too).
Thank you for reading, hope you enjoyed!