Justin Otto • CC BY 2.0
These days, people use no-code tools to create product prototypes, publish web sites, and automate office work. I work with people who want to automate business processes within their company. Half of the software developers I talk to see no-code automation as a misguided attempt to make programming obsolete. The other half dismiss what they see as unacceptable limitations, or dumbing down programming. Both sides get it wrong.
The GUI discoverability revelation
A few decades ago, the 1990s’ graphical user interfaces (GUI) replaced the 1980s’ command line interfaces, for most people using computers; Mac OS and Windows, instead of MS-DOS. GUIs took over, among other reasons, because more people could figure them out.
The 1992 Macintosh Human Interface Guidelines explain that:
The Macintosh desktop works according to two fundamental paradigms. Both paradigms share two basic assumptions: that users can see on the screen what they’re doing and that users can point at what they see.
This discoverability made GUI applications easier to learn than the equivalent command-line tools, especially for infrequent use. A Unix-style operating system, in comparison, can be great for expert users; a nice place to live, but you wouldn’t want to visit.
Discoverability in text-based programming
Anyone learning a conventional programming language faces the same problem as someone using a command line (or text adventure) for the first time: finding out what you can type.
Meanwhile, most professional programmers find
code completion indispensable,
such as this example where a menu of options pops up as you type, so you can find something called
Code completion doesn’t help that much, though. When learning programming, source code remains a kind of secret code.
Programming without coding
As with using a new command-line interface, not knowing what to type makes coding hard, not the actual programming. That might sound odd, if you usually treat coding and programming as synonyms. But imagine if they meant different things!
Wikipedia introduces computer programming by defining it broadly as:
the process of designing and building an executable computer program to accomplish a specific computing result.
This clearly includes non-traditional programming environments, such as spreadsheets, Scratch, workflow automation platforms, and other visual programming environments. These environments replace text-based source code with something more visual, resulting in no-code tools.
The no-code alternative
While no-code tools have a complicated set of pros and cons, they make programming dramatically more accessible to people who don’t do it full-time for long periods - months or years. A full-time programmer doesn’t need this accessibility as much, because they can learn the secret codes (or at least how to look them up on a Q&A web site).
More importantly, perhaps, accessible tools invite beginners, while text-based coding excludes them. More accurately, the professional programming culture that glorifies 1960s-style text-based tools actively excludes all kinds of people. No-code tools threaten that kind of gatekeeping.
Switching from code-based to no-code tools involves many trade-offs, so instead of arguing that one doesn’t work or has no value, you might learn more from identifying the benefits of the no-code alternative, and thinking about what you might trade in to get them.