You may have heard of "Low Code" and "No Code" applications - they probably sound rather appealing, but what are they and where do you start?
22-07-2024
In this column we will take a look at the concepts of Low Code
and No Code applications and consider what the implications are for more traditional software development.
We will start off by defining What Low Code and No Code generally means and then look at what tools are available for both approaches - and their respective pros and cons.
It should be noted that the distinction between Low Code and no Code is somewhat arbitrary and there is actually a continuum between the two which means that one person’s Low Code might be another’s No Code.
What is Low Code?
Let's start off by explaining what is generally meant by a Low Code environment or toolset.
In general, it is a visual approach to building software applications. It typically uses a drag-and-drop style interface with pre-built components to simplify the development process. In this style of application, a user has a workspace onto which they drag these prebuilt components and some way to link them together. It is reminiscent of a drawing package such as the old MacDraw
or more modern 3D computer graphics tools such as Blender or Autodesk 3ds Max.
This approach allows people with limited coding experience to create functional applications. The tools themselves tend to focus on a particular domain or application area and so are well suited to a particular target audience.
They are low code environments because it is possible to add custom definitions to the behaviour of nodes or to add custom components to the tooling. The extensions may be in the form of functions or formulae to execute, or new components written in a particular language.
What low code tools are there?
There are many popular low-code tools available, each with its own strengths and target users and domains. Some well-known examples include Mendix, Microsoft Power Apps, and Salesforce Lightning. These platforms allow users to create a variety of applications, from simple data management tools to complex customer portals.
What are the benefits of low code?
Low-code development aims to offer a number of advantages over traditional development methods, including:
Development time: By streamlining the development process, low-code tools can significantly reduce the time it takes to build an application. This is compared to writing the application from scratch.
Lower Costs: Low-code development can help businesses save money on development costs by requiring less coding and fewer professional developers. Additionally, low-code platforms often have built-in features that can reduce the need for expensive third-party integrations.
Easier Collaboration: Low-code tools can improve collaboration between business users and IT departments. Business users can easily prototype and test applications, while IT departments can provide guidance and ensure that applications follow established guidelines.
Agile Environments: Low-code platforms make it easy to make changes to applications, which can help businesses stay agile and adapt to changing needs.
What are the disadvantages of low code development?
As might be expected Low Code development is not without its disadvantages or drawbacks:
Customization Limitations. There are often limited options available for customizations within Low Code environments due in part on their reliance on pre-built components. This can thus make it harder to tailor an application for a specific set of requirements or reduce the ability for unique aspects to be added to the application. In other words, if you want to push the boundaries of what the Low Code tooling was design ed for you will have problems!
Security Challenges: A very real issue with Low Code tools is security. The underlying security of an application may rely on the low code environment itself, configurations of that environment and on the pre-built components being used. Each of these may have hidden weaknesses or require updates that may not be obvious to the non-technical user. In addition, when integrating these systems with other systems, unexpected loopholes and weaknesses can be introduced. Careful analysis of the resulting system is required to ensure that the system has maintained its integrity and is safe and secure.
Vendor lock-in: As applications are built using the specific tooling provided by a particular vendor and often generate control files or data files that are proprietary; one you adopt a given Low Code environment for your application; you are tied to that vendor. Worse, you may also be tied to a particular platform; for example, if the environment you are using only works on Windows then you will have to stay using Windows boxes even if the rest of your organisation has decided to switch to Linux!
Ease of Use: Although a low code environment may not require the user to learn a specific programming language; they must still learn the Low Code environment and its toolset. This may or may not be intuitive; particular (and ironically) for non-programmers. This is because even a low code toolset tends to reply on the use of logic and data flows at its core.
Tied to a particular application or domain. Many low code environments are specific to a particular application or domain, such as data analysis or web site creation; this means that they are not general purpose tools and thus although you may be able to use one toolset for one application it may not be appropriate to use it for another.
What is No Code?
So, we have discussed Low Code development; what about no Code development? This almost sounds like an oxymoron, but it is really the same ideas as presented in Low Code take to the extreme. That is, No Code development environments are those that allow an application or solution to be developed without writing any code, formulae or functions. As with low Code environments these toolsets typically utilize a visual interface with drag-and-drop style functionality. In general, a user again drags icons onto a workspace and then link them together to create the desired solution. This enables people without any programming experience at all to create functional applications.
What no-code development tools are there?
Interest in no-code tools is growing and some of the most popular include:
Bubble: Bubble is a no-code platform / environment that allows users to build web applications, mobile apps, and even marketplaces.
Webflow: Webflow is a no-code tool for designing and building websites. It offers a drag-and-drop interface and a visual editor that makes it easy to create professional-looking websites without any coding knowledge.
Adalo: Adalo is a no-code platform that allows users to build native mobile apps. It offers a drag-and-drop interface and a variety of pre-built components that make it possible to create custom apps.
Glide: Glide is a no-code tool for creating simple mobile apps from Google Sheets. It can be used to create application that capture or present data.
What are the benefits of no code development
The benefits of no-code environments are similar to low-code environments, with the possible additional advantages of:
Empowered Users: Potentially any user, with an idea, can use a no-code tool to create a new application or web site; even if they know nothing about how these applications or systems are developed. This can help an organisation or an individual to be more entrepreneurial or more innovate.
Agility. Related to the previous point is that organisations may then be able to be more agile as they can quickly respond to changing demands or requirements without the need to engage actual code developers.
Reduced Costs. Another claim made for no-code tools is that as it is not necessary to employee coders costs can be reduced!
What are the disadvantages with no code development
The disadvantages of no-code environments are similar to those of low-code environments plus:
Scalability Concerns: No-code applications may struggle to handle large amounts of data or complex calculations. Additionally, scaling a no-code application to accommodate a growing user base can be challenging.
Limited Control: No-code toolsets typically provide even less options than low code tools, for specific control over security, performance, deployment options etc.
Tied to a particular type of application or domain. No-code toolsets tend to be even more tied to a particular application such as data entry or data presentation within a mobile application etc.
Low code versus no code
As both low-code and no-code have similar aims and aspirations it is worth providing some comparison between the two (although as noted at the start of this blog it is a grey dividing line):
Type of Users
Low-code is aimed at users who have some coding experience or IT professionals looking to streamline development. Anything but very basic applications will likely need some form of customization, configuration or function / formula created.
No-code is aimed at users with very little to no coding experience at all.
Customization
As suggested above, low-code environments typically offer more flexibility and customization compared to no-code.
Learning Curve
Typically, low-code will require some understanding of programming concepts and the specific platform.
In general no-code environments are intended to be easier to learn with few if any expectations around programming concepts or configurations.
Applicability
Generally speaking, Low-code environments tend to be more widely applicable while no-code environments tend to be more focussed on an application type and / or domain.
The elephant in the room
This has been touched on above in this blog, but the elephant in the room for no-code and low-code approaches is security. The primary concerns around security include:
Limited Security Control: With no-code platforms, you may have little control over security and with low-code you tend to have limited control; compared with more traditional approaches to application development.
Pre-built Components: Security vulnerabilities can exist in pre-built components used in low-code and no-code development. This is of course true of all application development; but in more traditional approaches development teams tend to have more control over the libraries and modules deployed and how they can be upgraded when a security issue is identified.
Integration Risks: Integrating low-code and no-code applications with other systems can introduce new security weaknesses.
Where does this leave software developers?
Is this the end of software development as we know it? Probably not!
There are several hints above indicating the need for software developers with a deep knowledge of the platforms, development languages, security etc. These are for those situations where, in particular low-code environments pass responsibility to some feature or requirement to more basic implementation techniques.
However, it is also important to remember that there still needs to be someone who can review the low-code or no-code system to ensure that it meets its non-functional requires associated with performance, scalability, stability, security etc. Such analysis requires again detailed technical knowledge.
In addition these low-code environments/ tools are great if they do what you want, if not then they often leave it to a developer to create an extension or plug in to fill the gap.
The languages supported by these tool for such extensions differs depending on the platform and the tool, but common languages such as C#, Java, JavaScript and Python are common options.
Experts in these languages, and how to integrate them into these tools, are often highly sort after.
Summary
Low code and no code environments are highly visual, drag and drop style tools. They often allow non-programmers to create sophisticated and functional applications with little or no ‘coding’. However, they are not a panacea for all situations and technical expertise can still be invaluable to an organisation.
There is also the issue that no and low code tooling does not by any means provide a solution to all situations.
Would you like to know more?
Have a look at our Rust Training Course and get in touch if you would like to discuss customising a Rust workshop to focus on your project's use case.
To help raise awareness of challenges and vulnerabilities and ways to reduce risk, we've got a bumper crop of cyber security blog articles. We've also got a robust range of hands-on training courses covering security for non-technical staff and IT professionals
We use cookies on our website to provide you with the best user experience. If you're happy with this please continue to use the site as normal. For more information please see our Privacy Policy.