Why Code Generation is only for greenfield Projects?
14. Mai 2014
Verlosung von Eintrittskarten für das Java Forum Stuttgart 2014
19. Mai 2014
alle anzeigen
Virtual Developer

Virtual Developer

Generate or Interpret

It is getting more and more popular to use app platforms where you can model your application, deploy and run it (the application model is interpreted). Just to name a few of them: Mendix, OutSystems, radarc online, Salesforce. Using such approaches promises to deliver business applications much faster as compared to developing them manually. It may well be that this kind of app delivery is even faster when comparing it to a code generation approach. So is there any sense in applying code generation at all? Well, maybe this should not be the first question to ask. The first questions should rather be:


  • Is there an app platform that fulfills the functional and non-functional requirements for your application?
  • How much control, freedom and flexibility do you want for the design, development and deployment of the application that you plan to develop?
  • Can you live with a vendor lock-in?

When you will have answered such questions and you decide to manually (or partially manually) develop an application, the question whether applying a code generation approach would be useful makes sense. Part of this question is to ask, whether you would be better off developing and maintaining a code generator yourself or transfering this task to somebody else. Questions related to the usefulness of code generation will be handled in a different blog post in the future. A previous blog post that relates to this topic can be found here (Why reinvent Code Generation).

Marcus Munzert
Marcus Munzert
Marcus Munzert ist geschäftsführender Gesellschafter der Generative Software GmbH. Seit 1998 entwickelt er mit Java und ist ein überzeugter Nutzer von Java/Jakarta EE und OSGi. Er ist seit 2002 auf die modellgetriebene Entwicklung spezialisiert und verfügt über langjährige Erfahrung als Software-Architekt, Berater, Entwickler, Projektleiter, Trainer und Qualitätsmanager.