Why generate when you can interpret?

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).