Reports on evaluation of low-code development platforms
Table of contents
With an increase in applications developed by end users and a shortage of engineers, attention is turning to development methods where the executable code is generated by defining models in a screen with tools instead of developing applications from scratch with programming language.
This is generally referred to as low-code development. Various companies now provide low-code development platforms enabling users to develop applications in this way.
For these reports, we selected multiple low-code development platforms with different concepts, tested them and explained how they differ from each other.
Those who are experienced in developing web applications from scratch but are considering introducing a low-code development platform to enable faster and more efficient system development may find these reports useful for identifying points to focus on when evaluating platforms.
About low-code development platforms
Low-code development platforms are development platforms that enable development of systems (web applications, batches, external interfaces, etc.) with minimal coding.
A GUI-based model editor, automatic generation feature or similar is used to minimize coding using programming language such as HTML, Java or C#, improving productivity.
How low-code development platforms differ from no-code development platforms
Low-code development platforms are very similar to no-code development platforms, but where users of low-code development platforms write some source code, enabling a balance between productivity with extensibility, users of no-code development platforms do not write any source code at all, which has attracted the criticism that while these platforms improve productivity, they have poor extensibility.It is difficult to draw a definitive line between the two types of platform, however. The terms have various definitions and it is often not clear which category a product belongs to.In this report, we have referred to all of the platforms as low-code development platforms for consistency’s sake.
Relationship between models and generation of code from those models
Low-code development platforms are tools for building applications by defining models to generate source code. First, we will explain the relationship between models and generation of code from those models.
[The three layers of the source code generation process]
Low-code development platforms generate source code from models. For the purposes of these reports, we will explain this process using the following three layers.
Users of low-code development platforms use tools to define models, and the source code is automatically generated from those models. For some products, the whole application can be defined from the models alone, which means that development is complete as soon as the models are defined. In these cases, all of the source code that is needed is generated automatically and can be used without any changes.
Some products have the capability to automatically generate models from abstract models such as business rules.
Below is a table showing the correspondence of these three levels and the four tools we evaluated (OutSystems, Mendix, RakRak Framework3 and GeneXus).
- OutSystems and Mendix are model-driven development platforms using visual modeling languages. Elements such as GUI-based development screens and various features to assist with input are used for efficient development.
- RakRak Framework3 is highly compatible with the DOA (data-oriented approach) method. The tool automatically analyzes data models and then automatically generates a web application, enabling fast development.
- GeneXus achieves fast development by deducing methods to fulfill business specifications in various implementation environments and then automatically generating an application.
We will now explain how we evaluated the tools.
We selected four products with the following characteristics.
- A whole application can be defined in models.
- The models can be used throughout the development process, including maintenance development after release.
- Applications can be extended using modules or programming language such as Java or C#.
- OutSystems 11 (free trial license)
- Mendix 7 (trial license)
- RakRak Framework 3 (trial version)
We evaluated the tools based on flexibility of development and extensibility by the following process (evaluation period: April to June 2019)
- Reading publicly available documents
- Attending a seminar
- Building a sample application using the trial version
*For GeneXus, we only read publicly available documents and attended the seminar.
See the appendix for details on how we built sample applications.
We have created detailed reports and a comparison table based on our evaluations to indicate the characteristics of each product and how they differ from each other.
[Detailed reports describing the development method, degree of flexibility, extensibility and best uses of each product]
[Comparison table comparing basic features, system requirements and licensing format]
Effective uses of low-code development platforms
Low-code development platforms enable the greatest productivity in application development within the scope of the standard features.
- Content that can be expressed using the modeling languages.
- Design that is within the scope provided by the templates.
- Cases in which the automatically generated content can be used with no changes required.
While all of the products have methods for extending applications using programming languages such as Java or C#, be aware that misusing this feature or deviating too far from the standard style may reduce productivity or make the application difficult to maintain.
For this reason, low-code development platforms are most effective for development projects such as internal systems or the back-end systems (product master maintenance, etc.) of online shopping websites, where it is easy to organize requirements within the scope of the features provided by the tools.
It is important to conduct a PoC or other evaluation to determine the degree to which the standard features of each tool meet your requirements and suit your system.
(The detailed reports provide information on the characteristics of each product and the situations where each product is effective.)
Building of sample applications
We created product management applications with the following specifications to confirm the development method and evaluate points such as flexibility of development and extensibility.
Specifications of sample applications
- Three masters: products, broad categories and detailed categories.
- Images and PDF catalogs can be registered for each product.
- There are detail screens to enable CRUD (create, read, update, delete) features for each table.
- List pages had paging, sorting and search features if there was a large number of items.
- Each registration screen supported handling of images and files and basic validation.
[Profile of the developer who performed the evaluations]
We have provided a profile of the developer (evaluator) who built the sample applications as a reference.
These documents are provided under the Creative Commons Attribution + ShareAlike 4.0 license.