What is No-Code, and what challenges does it face?
07-08-2021 | By Robin Mitchell
It is hard to grasp how quickly technology changes and each change can leave some behind. What challenges do current technology trends present, what is No-Code, and is it the solution to keeping people up to date with technology?
What challenges does rapidly changing technology present?
For the past several thousand years, technology has progressed slowly presenting people with ample time to adjust. The introduction of bronze replaced stone tools, and the introduction of iron replaced bronze tools. But these technological changes would have taken hundreds (potentially thousands), of years and this long period of time enables entire generations of families to change their profession slowly. In fact, many family names are related to a profession with one common example being Smith; this family name refers to blacksmiths.
However, the past 100 years have seen technology exponentially grow, and this rapid development of technology has seen many struggles to keep up with changing times. For perspective, the beginning of the 1900s saw the development of basic radios and the internal combustion engine, and the start of the 2000s saw the creation of nanometer-sized features.
To make matters worse, the introduction of new technology has seen many professions replaced either by new professions or eliminated entirely with automated systems. Jobs that many thoughts were irreplaceable are now being replaced using advanced systems such as AI, and many now wonder what machines cannot do instead of what they can do.
The issue with destroying a profession is that anyone involved in that field of work needs to retrain to remain valuable to society. In the past, simpler technology meant that most could retrain or undertake different work and understand their role quickly. However, modern life is built on top of incredibly advanced technology which cannot be understood in a few days. In fact, large portions of modern technology require years of study and training before even the basics are fully understood.
As a result, those whose professions are lost in today’s world cannot simply “learn to code”; a concept which some journalists tried to pedal a number of years ago. Instead, many of these individuals are left to either find similar employment or face an uphill battle against technology.
What is No-Code?
While the concept is not new, No-Code is a somewhat modern idea whereby applications and systems can be constructed and built without the need to learn how to code. More specifically, a No-Code platform would use graphical elements to allow people to place and connect functional parts together in a similar fashion to building a car. It is not important what each functional element does underneath the hood, but how those functions work together is what is important.
No-Code systems are already in deployment, and a few famous examples include AppSheet Google, Shopify, and WordPress. Another notable example is Clickteam’s Multimedia Fusion 2; the decades-old program allows for the development of PC games using an event grid instead of code.
While many may struggle to understand and learn all the syntax and requirements of coding languages, a No-Code platform only requires the user to understand what they want their application to do, and how it should work together. The concept of No-Code is very similar to libraries used by programmers; it is not important to understand how printing characters to the screen works, it’s only important that a premade function can do it.
Of course, No-Code is not the only candidate trying to enable more individuals to create applications; there are graphical coding environments too. For example, the Micro::Bit uses a graphical environment of jigsaw pieces that represent pieces of code, and these can be attached together. Such a system still requires the user to understand the basic principle behind programs and execution, but they are not required to remember all the functions off by heart nor are they required to use commands to compile programs.
Can No-Code help with technology?
No-Code is not just limited to the development of applications; anything that requires a series of commands or instructions can be converted into a No-Code system. For example, robotic arms are notoriously complex to program due to the advanced kinematics involved. However, such an arm could instead be manually manipulated with all positions recorded so that a user can direct the arm what they want it to do.
This leads up to the question; are No-Code systems a good idea? While No-Code can enable anyone to create and develop applications they are not without their faults. The first is that a No-Code system is generally limited in capability as custom code cannot be used. This means that should something go wrong in the application, it can be tricky to debug. Systems that enable custom code to be entered suddenly lose the No-Code title, and instead become Low-Code systems.
The second challenge presented by No-Code environments is that users who rely on No-Code environments will always be limited by the platform they choose to use. For example, Clickteam’s MMF2 application used to create games limits the user to only being able to make 2D games. The use of No-Code does not teach users about coding, and this can pigeonhole a designer very quickly. Furthermore, a No-Code platform may be reliant on developers to add new features and fix bugs meaning that should a No-Code platform become defunct then the user has to move to a new system.
The third challenge presented by No-Code environments is that users may not be adequately experienced in critical concepts such as hardware and security. This means that key aspects to creating reliable and safe applications may not be implemented, and this can present a danger to any application utilizing a No-Code system.
No-Code could present older generations an opportunity to continue working in technologically advanced environments, but it is more than likely that No-Code platforms are more of a novelty than a practical method for designing and distributing future applications.