The emergence of #NoCode tools is a natural, and necessary, evolution in software development. This movement represents the fourth major generational industry shift, and it too will bring forth a new wave of developers, applications, and use cases that were previous neither accessible, nor possible.
I’ve been using Bubble for a couple of years, for prototyping and building my own apps, and absolutely LOVE it. As a result, I’ve followed the #NoCode trend very closely and used many of the tools. Here, I’ll put this movement in context, and outline why I think it’s the next big generational shift in software development, which will bring forth an explosion of new apps and use cases.
The evolution of software development
Marc Andreessen‘s software is eating the world thesis has borne out spectacularly. However, we still rely heavily on formal Computer Science education, or learn-to-code schooling, to produce those that develop software. This approach is not scalable to meet the demand for developer literacy & capability. Now, a new path has emerged with a wave of “no code” / “codeless” tools. This movement represents a 4th shift in how we’ve developed software; but to fully understand it, let’s recap how we got here.
DISCLAIMER: This is not an exhaustive history less, rather a quick synopsis to put the #NoCode movement in context.
The 1st shift to procedural languages
The first major shift, was in the 1980s, from early “close to the CPU” tools, like Assembly, to languages like C.
These languages abstracted the need for developers to have deep knowledge of the hardware their program ran on, and instead relegated such performance optimizations to a compiler. Similarly, concepts like functions & structures made for greater code maintainability and developer productivity.
Education here was limited to academic institutions, often via a Computer Science degree, and software was still delivered to larger mainframes.
The 2nd shift to Object-Oriented languages
In the late 1980s / early 90s, better hardware gave rise to to client-server technology, and with it, object-oriented programming languages like C++ and Java.
This new paradigm allowed codebases to be easily split into smaller modules, or “objects”, while also providing greater abstraction from the implementation details. Also through concepts like polymorphism & dynamic binding code could be processed at runtime, instead of compile time, making for easier extensibility of the codebase, and easier management with larger teams with a mix of levels of proficiency.
In this wave, Computer Science was still the main training vehicle, but also engineering programs, and some specialized vocational training — as a result, increasing the overall size of the developer pool.
The 3rd shift to higher-level languages and frameworks
The next wave began sometime in the mid-aughts, when browsers emerged as the primary software delivery model. With this trend, higher level languages like Ruby on Rails, and JavaScript frameworks emerged to develop web applications.
Educating developers now moved out of standard post-secondary training institutions into “developer boot camps” and “learn to code” online programs. Once again rapidly increasing the number of available software developers.
Today’s shift to “codeless”
The convergence of powerful web applications becoming mainstream, alongside the proliferation of well-documented APIs, gave us a whole suite of new tools.
From block connecting tools like Zapier and IFTTT, to integrated environments like Airtable & Google Sheets extensions, to interactive site builders like Webflow, to full blown app development environments like Bubble, we have a new wave of tools to build apps without a single line of traditional code.
These tools abstract any implementation, or language details, and leave the developer only to design the interface, orchestrate the logical flows, and add make any external connections. As a result, software development is democratized to truly anyone who wants by watching a few tutorial videos, or even just tinkering & figuring it out themselves, without a need for any formal “training program”.
The right tool for the right job
While each shift has brought forth a new development model, none have replaced their predecessor; each model still has its own merit for the type of problem. For instance, managing petabyte scale data may currently require a stronger understanding of the underlying infrastructure powering the software, whereas building a personal to-do list app will not.
But with this new model, we’ll see an explosion of developers creating new apps and solving new use cases. In the 90s when the web was taking hold, the prevailing sentiment was “why does a business need a website”, or “why would I need the internet?“. Similarly, we’ll see a similar explosion of use cases once we open up software development to everyone.
What we’ll see
The challenges with codeless tools fall into 3Ss: security, scalability, and speed. Are those deal killers? No. Likely, the increased adoption of these tools, will create incentives to solve these problems in time.
Moreover, we’ll see hybrid solutions that take advantage of each type of tool; with the modularity of software today, I’ll be able to connect high powered tools, like a TensorFlow cluster to an interface I’ve built myself, as such enabling the “easy” part to be iterated on quickly, while the “hard” part to be handled by another more capable party, on the right infrastructure.
As this movement unfolds, I think it’s going to be a once-in-a-generation shift, that unleashes new developers, and with it, new possibilities…and I’ll also be a participant rather than an observer.