Is Java getting outdated?
Is C# worth learning in 2023?
Is MySQL still relevant today?
The constant buzz surrounding the relevance of technologies begs the question: what does this tell us about software developers?
Software development is an industry where what’s hot today may be old news tomorrow. Consequently, developers’ biggest fear is that the skills that they have spent years or even decades cultivating will one day become obsolete.
Now, with the rise of low code tools, the concern is amplified: will traditional developers be replaced by low code developers?
Let’s take a step back and first understand what exactly low code tools are.
As a developer, you’re no stranger to the convenience of frameworks and libraries, such as Angular, Vue, React, Chart.JS, or Numpy. Things that make your job as a developer easier because you don’t have to build everything from scratch.
But have you ever wished for a tool that could build entire applications without needing to code everything from scratch? Enter low code tools.
These innovative solutions resemble libraries or frameworks. They give developers access to higher-level abstractions to build more robust software faster.
They’re changing the game by making it possible to rapidly build and deploy web applications by writing less code – but without eliminating code. Think of an Integrated Development Environment (IDE) that lets you mix and match high code with prebuilt features.
To understand the future of software engineering, a good starting point is to understand its past.
In 1942, German computer engineer Konrad Zuse invented the first high-level language Plankalkül. How has software engineering evolved since?
Languages are becoming easier to read and write. 1s and 0s (or 1st Generation Languages) have evolved into 3rd Generation Languages, such as C#, JavaScript, or Python.
Programming languages have undergone a significant evolution over time. The focus has been on making them easier to read and write, giving them a more natural language-like syntax.
In the early days of computing, programming languages were machine-specific and required a deep understanding of the underlying hardware architecture. However, as computers became more accessible, the need for higher-level languages that were easier to learn and use became apparent.
First- and second-generation programming languages, such as machine code and assembly language, were extremely difficult to read and write. And quite literally so. Some of the earliest programming languages used punch cards. These languages also required a detailed understanding of the computer’s hardware, making programming a time-consuming and error-prone task.
Third-generation languages, such as COBOL and FORTRAN, introduced the concept of high-level programming by using English-like statements that made programming easier to understand and use. More modern languages, such as C, C++, and Python, were designed to be even more user-friendly and English-like.
Because these languages no longer speak with the machine in the machine’s native language (i.e. bytecode), other tools are required to bridge the gap between professional developers and machines. These tools are interpreters and compilers.
Some programming languages are interpreted, and others are compiled. These two mechanisms translate the instructions that a programmer gives to a computer into bytecode. A compiler converts programming language into machine-readable code. An interpreter takes source code written in a high-level language and translates it into commands for execution on the target platform.
More modern languages also introduced features like object-oriented programming and dynamic memory allocation, making it easier to write complex programs. Additionally, they were designed to be more portable, allowing developers to write code that could run on multiple platforms without having to rewrite it. Of course, this trend towards portability was further amplified by the rise of the Internet. Developers started building for the web, rather than client-server software for specific operating systems.
Languages have come a long way in terms of readability, better syntax, and ease of use. To understand just how much easier, check out this collection of “Hello World” programs in 603 different programming languages.
Today, programming continues to evolve, with a focus on making it even faster, more accessible, and more efficient.
Low code tools are best understood as part of this evolution in programming. They are not new programming languages, even though some tools do introduce their own languages. Examples are Microsoft PowerApps’ Power Fx, a low-code programming language based on Microsoft Excel, or Zoho Creator’s Deluge, an online scripting language that is powered by guided scripting. Low code tools are new approaches to application development.
A second trend in software engineering is the role of code. Today, fewer lines of custom code are required to write complex systems.
Lines of Code (LoCs) used to be the de-facto standard to measure developer productivity. Capers Jones, an American computer scientist writes that
“The oldest metric for software projects is that of “lines of code” (LOC). This metric was first introduced circa 1960 and was used for economic, productivity, and quality studies. The economics of software applications were measured using “dollars per LOC.” Productivity was measured in terms of “lines of code per time unit.” Quality was measured in terms of “defects per KLOC” where “K” was the symbol for 1000 lines of code. The LOC metric was reasonably effective for all three purposes.”
– Capers Jones (2012). A Short History of the Lines of Code Metric
This has changed dramatically over time. Today, according to Bill Gates,
“Measuring programming progress by lines of code is like measuring aircraft building progress by weight.”
– Bill Gates
Why are lines of code no longer a good measure of developer productivity?
As written above, the reuse of code keeps increasing. Through GitHub, NPM or open-source libraries, developers rely more and more on code written by others.
Today’s software developer writes significantly less new code than in the past. According to QSM, a software estimation company, “On average, today’s developers deliver about 40% as much new and modified code per project as they did 40 years ago.”
Interestingly, however, lines of code can still matter, even in today’s world. During the Twitter layoffs, Elon Musk purportedly asked Twitter engineers to show screenshots of the most salient lines of code written in the past year.
“Anyone who actually writes software, please report to the 10th floor at 2 pm today.
Before doing so, please email a bullet point summary of what your code commands have achieved in the past ~6 months, along with up to 10 screenshots of the most salient lines of code.”
– Elon Musk (2022). Email to Twitter employees.
Similarly, the complexity of the entire Google product suite is often referred to in lines of code: according to a book about Software Engineering at Google, Google manages a monorepo of more than 2 billion lines of code.
In spite of these occasional fixations on lines of code, the metric has lost its importance in software engineering. The overall evolution of software engineering is a story of simplification. Low code tools are the next step in this evolution. One important thing to note is that low code tools are not the only productivity-enhancing inventions that help manage the complexity of software engineering projects. Smart code completion, AI-assisted development, better source control, or project management tools like agile all contribute to the increased efficiency of software engineering.
Low code tools supercharge application development.
With the ability to increase software development speeds by up to ten times that of traditional processes, according to IT consultancy Forrester, it’s no wonder these rapid application development platforms are surging in popularity.
According to Gartner, low code tools will be responsible for over 65% of app development by 2024. The low code developer population is also expanding at over three times the rate of traditional developers, says IT consultancy IDC.
Back in 2017, GitHub’s co-founder and then-CEO Chris Wanstrath famously said that “the future of coding is no coding at all”. This was quite a controversial statement, especially from someone who oversaw 14 terabytes of code on the very platform they founded.
“The future of coding is no coding at all.”
– Chris Wanstrath, co-founder and former CEO of GitHub
Wanstrath’s prediction seems to confirm traditional software developers’ worst nightmare: low code developers and a code-less development will take over application development. But let’s not jump to conclusions here.
The reality is that the demand for software developers (and code) is increasing, rather than decreasing.
First, there are not nearly enough software developers. According to labor market statistics, there are only 20 million trained software developers worldwide. And more than half of all software developers work at non-software businesses, according to McKinsey.
Almost every business regardless of size, industry, or geography relies on software nowadays. And there’s not nearly enough engineering talent to satisfy the hiring needs of all those companies. By 2030, there will be a global shortage of more than 85 million tech workers, representing $8.5 trillion in lost annual revenue, according to Korn Ferry, an HR consultancy. Software developers’ career prospects continue to be bright, regardless of whether they use low code tools or not.
Second, even amongst software developers, few think that low code tools will result in fewer developer jobs.
Only 33% of developers surveyed by TechRepublic said that low code tools would result in fewer jobs. Most developers think that low code tools increase productivity, reduce app development time and help automate manual processes. Even better, 42% of CIOs plan to increase the headcount dedicated to low code and no code, according to Gartner.
“67% of developers surveyed by TechRepublic do not think that low-code or no-code platforms will result in fewer developer jobs.”
Last, low code tools require the input of traditional developers.
Low code tools are not designed to eliminate code. Instead, they give developers 80% to 90% of what they need to build and deploy an application. For the remaining 10 to 20%, high code, written by an experienced developer is required. Five, for example, has a code editor for SQL, JavaScript and TypeScript and lets developers write functions and queries to interact with the Five API or the MySQL database that each application built with Five uses.
Low code developers, and low code tools, will not replace traditional software developers. But there are unique benefits of low code, which current development tools cannot provide. They help development teams build applications more rapidly. They provide a better coding experience. And they can help instil a culture of rapid application development to professional developers that build custom apps.
Enterprises will continue to demand traditional developers, as well as skilled low code developers to work side by side and build more software faster. Low code tools complement traditional software development processes.
To find out more about low code or to develop your first application using low code, get your free trial now.