April 23, 2020

Model Driven Development vs Code Generation – WaveMaker

Low-code products provide rapid acceleration of app development using Model Driven Development. The idea of using a model as a starting point to describe your business semantics and then from the model generate application artifacts can be very powerful as it eliminates a lot of code development while building your application.

Low-code products take this approach to accelerate and help deliver applications faster with higher productivity. With that said, there are two interesting angles that low-code products take:

1. Full dependency on Model Driven App Development
2. Partial dependency on Model Driven App Development

Full Dependency on Model Driven App Development

In this scenario, the Model is used to abstract the business semantics and logic, and it is then interpreted at runtime into a working application. There is no real code that is generated and the application is always dependent on the model for its functioning.

This is good for business users to define the model and then have the application derived out of it. The downside is there are very little opportunities to do very specific customizations as there is no code generated or accessible. Magic happens underneath the covers if you will and at any point there is no way to independently take the application out and maintain or enhance outside of the Low-code products. Many Low-Code Products that are business process driven fall into this bucket and suffer from lack of real code generation, customization and more importantly independent existence of the application.

Partial dependency on Model Driven App Development

In this scenario, the Model is used as a starting point to describe business semantics and relationships, and is automatically converted into real code. There is no runtime interpretation of the model. The Application relies on software generated code to be fully functional.

The approach allows users to abstract the business semantics as one is still starting with a Model driven development but allows greater flexibility and customization by allowing developers to access, modify and fully extend real code that is auto generated using the model.

Magic still happens but is fully visible to the developers. At any point in time, since code is always generated it is always accessible. The application can be extended using real code. The application can be exported and has an independent existence outside the low-code product as well. In some ways, you get the best of both worlds, (acceleration and freedom). WaveMaker Low-Code Platform falls into this category and more importantly supports this approach with fully standards based modern technology stack and architecture suited for cloud native application development and delivery.

Originally published in IT BRIEFCASE