One of the trending tech words is Low Code/No Code, which I, from now on, will shorten to LCNC.
The promise of LCNC is that non-developers can create different applications with very little or no code at all.
One of the recent trending articles on this topic is on StackOverflow, where the author asks if LCNC will shake up tech development, and the conclusion is a big NO.
I am a developer myself. I wrote my first lines of code right at the start of this millennium, and I have been working professionally for the last 16 years. I have coded many different things from mainframes, High-performance computing software, old clunky CGI-based websites and smooth, modern-day apps.
The concept of LCNC is nothing new and has shown itself in many different ways throughout my career.
The picture above gives a rough overview. I know many different applications are out there, and I have named very few, with no intention to leave others out.
- The first. Excel is probably the first real LCNC tool out there. It does numbers, and you can query and perform operations on data without being a dev wizard. And it gently introduces non-developers to coding via its macros. Excel is so commoditised and used in cases beyond what was initially imagined.
- The pioneer. A pioneer is WordPress. Probably the first thing that comes into the mind of many when thinking of no-code. WordPress made it possible for everyone to launch their first website and to build e-commerce businesses.It is also customisable with code. However, most developers feel that getting started is easy, but stepping outside of the boundaries of a WordPress template is painful.
- Current-gen. The current generation takes the pioneering work one step further and lets non-developers create real apps and business logic. These are the zapiers and the bubbles. Some offer easy API integrations, and others provide a UI to build your app. The entry barrier is high for some tools, and development knowledge and tech savviness are still needed even if you do not have to code.
- Next-gen: This is the topic that I will cover later in the coming text.
Many today argue that LCNC is tricky and good enough only for prototyping and changing some texts and Images. It gives a sense of self-empowerment but is not nearly as powerful as coding. I do think this is valid for pioneering tools such as WordPress. But today’s tools are getting more powerful and have expanded the use case from simple websites to applications containing business logic.
Without having built a complete app in any of them, but asking around, what I have understood is that people still need to hire a developer to do the heavy lifting and then they can do the easy modifications themselves.
Looking at these tools from a developer perspective, I feel it is more like visual coding than a UI for non-developers.
Although the primary users of these tools are not developers, they still require a lot of development knowledge, such as data structures, databases and many other terminologies relevant for coders only.
And many tools handle the visual functionality well but creating the non-visual functionality (business logic) is not as easy. This approach exposes the power of coding in a UI but gives a much worse experience than writing the code.
For LCNC to make an impact, the next generation of tools has to be capable enough to handle most web and app development cases without the creator needing specific development knowledge and still deliver the same quality as a black belt developer. Both on the functional and non-functional parts of the app.
A developer should be able to deliver cutting-edge functionality without feeling that they have a wrestling match with the app. It should be as easy as coding in their language and framework of preference. Another vital aspect is that it should never try to replace code but interact with it very smoothly.
When these breakthroughs happen, web and app development will be available to millions of new creators who can realise their ideas and build fantastic tech-based businesses that today require developers. We developers are one of the world’s most rare resources, and the demand is high and keeps growing. The only way we are trying to meet the need is to educate more developers, which I think is very important, but this approach will never meet the increased demand. Another way is to build better tools so everyone can create software.
Next generation LCNC can be a huge contributor, and I think it is a very healthy evolution. And it makes it possible for skilled developers to create higher value by focusing on more creative, less repetitive, and mundane coding tasks.
Looking even further into the future, I do think that almost anyone, including an eight-year-old, can build advanced apps that are scalable and secure.
This vision aligns very well with what I think software engineering is all about, building tools that enable others.
As the StackOverflow article mentions, many developers are sceptical, and their opinion is that LCNC will not be as good as coding itself.
When I started coding in early 2000, the same type of discussion was going on with the topic of assembly code and C versus the “new languages” such as Java. Skilled developers said Java would never be as high performing as Assembly and C. Thus, Java would never be a significant language. Fast forward to today, we know that much more code is written in Java, not so much in Assembly.
This type of argumentation is not unique to our industry. The automotive industry has a long history with manual and automatic gears, and we see that today even sports cars use automatic since it is better than manual gear on all points.
I do think that a similar shift will happen in the near future for LCNC and that future might only be five years ahead.
I am not worried that developers will be obsolete. The world will undoubtedly need us, and demand will be high. But I am very sure that the large batch of web and app developers will need to acquire new skills in other areas of software development. Something that is not unfamiliar for any developer since new technology is at the heart of our work, and we are constantly updating ourselves and learning new things.
I am very excited about this future and see it as a massive success for us engineers since the core of our work is to use our exceptional skills to enable possibilities for others.