The race to bring apps to market faster and faster is driving the emergence of a new programming paradigm – low-code development platforms.
The idea is fairly straightforward, develop applications with a minimum amount of coding.
Forrester Research defines it as “platforms that enable rapid application delivery with a minimum of hand-coding, and quick setup and deployment, for systems of engagement.”
While there isn’t a lot of research about this approach yet one analyst found that using a currently available low-code platform took only 2.5 hours per function point compared to 10.6 hours for Java and 15.5 hours for C#.
We already have many examples of low-code development tools – templates, widgets, plug-ins and even libraries all save time and reduce the need for hand coding. Recently low-code development platforms have begun to consolidate all these pieces.
According to a blog post written by Gottfried Sehringer on the Mendix website (creators of their own low-code platform called MDD [model-driven development]) there are three key elements to a low-code development platform; visual development tools, an ‘app store’ repository and app lifecycle support.
To minimize hand-coding, low-code platforms must offer easier, more intuitive ways to build apps. [The platform] should offer visual models for defining data models, application and process logic, user interfaces, etc.
There have been visual development tools for years and they’ve experienced various degrees of success (Visual Basic, springs to mind). One of VB’s appeals was the fact that it automated many user interface tasks. It let developers quickly build common UI elements such as buttons, windows and lists using a drag-and-drop graphical interface and it generated all the code automatically. Even a novice VB programmer could throw together a working interface in a matter of minutes. But VB programmers still had to hand code a lot of the functionality associated with those UI elements and in the early days VB had some performance issues.
Unfortunately, in an effort to expand VB’s capabilities the visual design aspects and simplicity gave way to more and more complex hand coding.
The second element Sehringer highlights is an app store-like repository of useful elements the developer can pick from.
Productivity can be further accelerated with low-code development platforms that offer an App Store populated with templates, widgets, plug-ins and even complete business components. In this sense, developing apps becomes more like visually “orchestrating” the necessary building blocks, versus reinventing the wheel each project.
The final piece of the low-code picture is full app lifecycle support. If developers want to build robust applications this is a necessary element of low-code development.
[Low-code solutions] must provide a single environment that supports the entire app delivery lifecycle: design, build, deploy, manage and iterate. As such, in additional to visual development tools, they typically include capabilities like social collaboration, project management, full deployment and application monitoring, end user feedback loops, etc. The time to market advantage of visual development (over hand-coding) is mitigated if there’s not a seamless way to move apps along the lifecycle, particularly in terms of deployment.
In an age of quickest to market wins the race, low-code development platforms could offer an alternative to hand coding apps – that is assuming they cover all the bases.