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.
The cost of visual syntax
- Price: for starters you have to pay for the software when most programming languages are open source and free.
- Community: since the software is not open source and this is a newer space, fewer people are using it, so there is less documentation and support available.
- Flexibility: you have to rely on the creator of the software to implement new features and fix bugs instead of being able to interact with and modify the source code yourself.
- Best in class tools: Your cannot select and implement the development tooling of your choice for change management, logging, monitoring, hosting. You are limited to whatever is made available to you.
- Talent: fewer people are experienced with proprietary software, so your talent pool is limited, or you have to invest in training.
- Speed: In my experience developing with a low code, or no code tool is not faster than typing code once a project is properly set up. In all of the visual builders I have used math, sql, variable setting and reference all tend to be verbose.
- Visibility: Low Code and no code platforms tend to have to bury complexity in menus. This makes it hard to trace what is happening. An error traceback will point you to the exact line of code, but errors in visual builders do not point you to the specific sub menu you need.
The incidental benefit: Infrastructure
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.
The optimal use cases for low code
Simple Use Cases
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.
Static Visual Applications
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.
Opportunities
Infrastructure
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.
An Open Source Low Code Platform
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.
Conclusion
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.