Once upon a time, computer programming was done in “machine language;” the low-level instructions that told the computer’s processor exactly what to do. At a somewhat higher level was assembly language, which hid much of the processor-level instructions but was still painstaking, easy to mess up, and hard to debug. Both levels were also specific to a type of processor; programming a computer with a different manufacturer’s processor meant learning a whole new language.
Higher up the food chain were procedural languages such as COBOL, FORTRAN, Pascal, and C. These were processor-specific and enabled programmers to focus on program logic and flow. Programmers still had to concern themselves with certain low-level tasks such as memory management that were operating-system specific.
With successive generations of programming languages, even these lower-level tasks were hidden from the programmer.
In recent years, even higher-level development platforms have emerged. These platforms, often called “no-code” app platforms, are almost entirely visual—developers drag and drop user interface widgets and indicate their relationships graphically. Little or no coding is needed; hence the “no-code” moniker.
With the advent of these platforms, almost anyone with no coding experience or expertise at all can develop and deploy functional apps.
In principle, it sounds like a great idea: Enable anyone to develop apps and start using them without the need for high-priced in-house or third-party development teams.
The truth isn’t that simple, and in today’s article we discuss some of the shortcomings of these app platforms.
First, let’s look at some of the product offerings. It’s rather a crowded field at the moment, with both big-name contributors and lesser-known entrants.
Some no-code platforms are surprisingly sophisticated. But they all have limits as to what can actually be accomplished with no coding. Here are a few:
No-code can take you only so far. Many of these platforms provide templates that offer tweakable user interfaces and basic logic for common tasks. User communities can provide a wider variety of these templates, but even these won’t cover every business need out of the box. At some point, your company does something differently than everyone else, and implementing that peculiar business logic requires some amount of coding.
Database access isn’t always straightforward. All no-code platforms enable some level of database access. Yet accessing these databases with queries isn’t always straightforward or intuitive using the point-and-click interface. Eventually, you may need to write some SQL to get exactly what you need.
Apps have limited expandability and maintainability. With no code, there is limited ability for an app developer to leave comments for those who follow. The intention of a particular interface widget might be obvious, or it might not. Building on such an app’s functionality or tweaking it to meet changing business needs can become a difficult undertaking—it might be easier, in some cases, to throw the whole thing away and start anew…starting the cycle all over again.
“Citizen developers” aren’t necessarily good designers…or developers. No-code app platforms enable users to put together user interfaces any way that suits them. This means those with no experience or expertise with user interface design or usability can create apps that are so confusing as to be completely unusable. The resulting mess becomes a frustrating experience for everyone involved. The idea you can jettison your entire development team is wishful thinking at best.
What about security? No-code app platforms don’t necessarily force developers to think “security first,” build good security into the app design, or even observe security best practices. Relying on such an app to manage sensitive data or mission-critical processes without a thorough expert review could be a recipe for disaster.
Mobile apps, anyone? Although some no-code app platforms support the development of mobile apps, you will be hard-pressed to come up with something that’s acceptable for both iOS and Android, assuming the platform can do both. It’s better to limit yourself to web apps, which don’t need to pass muster with the app stores and are generally easier to develop anyway.
Given all these limitations, it’s fair to ask, “What are they good for?”
Happily, no-code app platforms can have a useful place in the modern development environment. No-code platforms are also known as rapid application development (RAD) platforms; with good reason: They enable the rapid creation and modification of functional artifacts that can be used as prototypes for the “real thing.” This offers a number of advantages:
So: Although it might not be wise for enterprises to rely on no-code app platforms to develop and deploy business-critical software, these platforms do have a place in the enterprise.
And they are getting better all the time. They may never replace a “real” development team, but with time they will become ever more capable, and user communities will continue to provide templates for more and more niche applications. It’s a worthwhile exercise to look into adding one or more of these platforms to your development toolbox.