Low code and no code platforms are attempting to make creating software more accessible by removing the need to code. The problem with this strategy is that writing code is not the difficult part of development. In the best cases low code and no code platforms incidentally help remove some of the barriers to software creation, but it comes at a steep cost.
On the face of it writing code is daunting. You know what you want to create, but are presented with an unhelpful blank file and have no idea what to type. It seems like the text interface is the problem, however, on my journey from Philosophy major to integrations developer through increasingly complex low code and no code applications, I discovered that the difficult part is the context, not the syntax. Interacting with computers is very different from interacting with the physical world around us. It does not matter if you are executing a for loop by typing, or dragging a for each “shape” onto a “canvas” (or whatever jargon a platform has chosen). The crux of the issue is understanding how a for loop works, not the syntax, and for loops are just the tiniest tip of the iceberg. In order to be successful, a user will need to know how databases, automated tests, networks, APIs and more work.
Programming with shapes instead of letters is just changing the syntax. It is like changing programming languages. Visual builders are usually very high level, but we have high level programming languages, like Python. In addition there are now open source frameworks that make building applications much easier. It is also important to be aware of the trade offs in visibility and memorization required by higher level languages. More is happening behind the scenes, so it is harder to “see” what is going on and troubleshoot. In addition when you provide more functionality out of the box the user has to be familiar with all of that functionality and how it works to take advantage of it. The biggest advantage of a visual builder that I see is that you cannot make typos, but most code editors do a good job of surfacing those, as does automated testing, which does not become unnecessary when you are using a visual builder.
Setting up local development environments, CI/CD pipelines and servers is a lot of work and takes a lot of time, energy and knowledge. It also makes getting started incredibly difficult. Instead of being faced with a blank page low code and no code applications can create welcome flows to empower new users. Once a piece of automation is complete it can be pushed live, if it was not just built in production, without any devops help, or infrastructure set up.
In these cases low and no code tools enable quick solutions without requiring users to fully understand a complex technological landscape. Tools like Zapier come to mind here.
Computation is not visual. This means that most low code and no code platforms further abstract the computation process into visual components. This is not the case when creating Static visual applications, like websites. In these cases language has been created to describe visuals to computers, so it can be easier to just create and interact with the visual and let the computer figure out the description of that visual.
As mentioned above, setting up development environments, project structures, deployment pipelines and hosting applications is a lot of work. We have seen drastic improvements in this area recently, but there is still work to be done. Creating a platform that takes care of these components simply, for example a web app code editor integrated sensibly through to cloud hosting, enabling developers to spend more time focused on their code, has potential.
Open source projects are outpacing proprietary projects. Proprietary low code and no code tools will be held back for the same reasons as proprietary software, many of which are listed in the “The cost of visual syntax” section.
In attempting to solve the problem of software development being inaccessible by removing the need to write code, low code and no code platforms expose the true barriers to software development, context and infrastructure. There are use cases for visual development platforms and there is room for improvement through a shift in focus away from removing written code and towards simplifying development infrastructure. Open source software has been the most successful in recent history and I imagine this will be the case in the low code and no code space as well.