Both Low Code and Model Driven Engineering have been around for a while, and both approaches aim to reduce coding and make application design easier.
Jordi Cabot, ICREA research professor at IN3 (UOC), says that low code is nothing but Model Driven Engineering with a new name, and it is just a small segment of the larger umbrella of MDE.
But is this the truth of Low Code/No Code? Or are there differences between these two approaches to software development? In this blog, we delve into the similarities and differences between the two.
What Is Low Code?
Forrester first mentioned it in 2014, but Low Code has been around much longer.
But yes, it was perhaps the first clear definition of a set of ideas whose time had already come. The ideas were simple:
- Reduce the effort of coding by making the approach visual-driven.
- Use prebuilt modules for regular tasks and processes
- Make application development Cloud, mobile and web-native, easing deployment
- Use API libraries for integrating existing applications
- Building in the lifecycle management of the application as part of the platform
All of this served, to some extent, to let the developer focus primarily on building the logic and leave the grunt work behind.
What Is Model-Driven Engineering?
As the name suggests, Model Driven Engineering (MDE) is all about using models to deliver a task. Models help improve productivity and reduce errors because they help clarify ideas and automate them.
Because they offer so many advantages, MDE focuses on using models for everything, from creating the user specs to writing code to testing and maintaining the software.
However, this does not mean that every model-driven development task ends up creating code. Some of these model-driven platforms simply end up creating pure models, such as UML models or application testing models.
Low Code vs. MDE: Where Do They Meet?
As you might have noticed, both Low Code and model-based engineering put a lot of focus on visual representation to simplify tasks, reduce coding and improve productivity. Hence there is a significant overlap between what both approaches want to do.
However, low-code development platforms also focus on application deployment and managing lifecycle, which is not a shared objective. In reality, various platforms and applications adopt a mix and match of what the two approaches are trying to do.
For example, some platforms may offer visual platforms for modeling but may not end up creating any back-end code. Others may offer everything from drag-and-drop design platforms to lifecycle management and deployment services, meeting the objectives of both approaches.
We can largely divide applications into five segments: three with significant overlap of both approaches and two where the objectives skew to one side or the other.
Here are the three cases where they overlap:
- MDEs that reduce code but have no deployment/lifecycle capabilities. Examples include JHipster, Google Protocol Buffers, and OlivaNova.
- Models that overlap completely: CodeBots and Judo
- Applications that reduce coding but are not model-driven (they do not create explicit models but instead store data in RDBMSs)
Here are the two scenarios where they completely miss each other:
- MDE with no focus on reducing coding (hence no Low Code). This includes reverse engineering tools like Modisco and UML design models.
- LCDPs that do not employ any models. Examples include Phreeze.
How Is Low Code Different From MDE?
While there is clearly a large area of overlap, there are practical differences between Low Code and MDE in terms of the platforms they build, the users they target, and the domains in which they are deployed. Let’s discuss them below.
Different Types of Platforms
Low Code development platforms always focus on being platform-independent and cloud-native since their primary objective is towards making real-world business applications.
They also include application deployment and lifecycle management within their platform. This makes them particularly good for non-tech-savvy developers who can create and launch applications that run on all platforms simultaneously.
However, MDE typically has a different focus. Most MDE platforms, even today, are desktop based and have nothing to do with deployment or lifecycle management.
LCDPs are democratic. Most low-code platforms actively advertise ease of application development through visual interfaces, easy-to-understand drag-and-drop development approaches, and how quickly even non-techies can learn to use them.
MDE intends to make the task of pro coders easier. It starts from the other end of the spectrum – while low code focuses on letting citizen developers create business applications, MDE focuses on making the job of expert developers simpler.
Where Are They Employed?
Low Code has always had a clear focus on business applications and has been very successful in this area. However, recently, low-code tools have also started to become popular in high technology domains such as AI/ML, event driven apps, IoT, and chatbots.
MDE solutions, being more focused on the pro developer, were always the domain of specialized application development, such as cyber systems, automotive, power engineering, and so on.
Both Low Code and MDE aim to bring visual interfaces and design into creating applications, but their paths have been very different.
While low code focuses on making application development simpler for the tech novice, MDE focuses on making the job of the pro coder easier.
Low code is a complete suite that helps deploy and maintain applications, whereas MDE is more focused on improving productivity in certain sections or processes.
Practically speaking, both have very different focuses and applications, and each serves an essential purpose in making software development easier.