Defining the Future: Generative Programmers

In the past decade, a growing set of software products have categorized themselves under the terms no-code and low-code. It's an exciting and historic inflection point for computing. In terms of significance, I'd compare it to the introduction of the Web or smartphones. And a change of that magnitude is hard to talk about. We struggle to articulate a vocabulary that lets us compare what's been to what's coming. Most people are still at the “What is Internet, anyway?” stage of this.

Photo Credit: Suzanne D. Williams

The term “no-code” makes sense when applied to a product. It's a framing that emphasizes a benefit to a customer. It says, “You can build with this software without explicitly writing code.” It's a fundamental promise about the demands on your time. It reminds me of the term “serverless” in cloud computing. There's still code running somewhere, but you're paying someone else to handle those details. That frees up your time to focus on other goals.

Talking about people is where we run into trouble. At the moment, people who use and rely on no-code tools are often called “no-coders,” and I find that deeply unsatisfying. First, describing a person by emphasizing their lack of a particular skill is awkward.

But there's a bigger problem. People sometimes use “technical” to describe “someone who understands how computers work and how to write code.” In a narrow context, that may be accurate shorthand. But it's easy to generalize that framing into an attitude that undervalues expertise in other domains. That affects who gets funding and what problems are prioritized.

So how do we do better? I think the answer comes from acknowledging that people who build software without code are still programming, so they're programmers. Among people who code, there are commonly established style categories like imperative, declarative, object-oriented, and functional. Those are almost always code-based styles. But the following can apply to code and no-code solutions alike:

Based on those categories, we already have some vocabulary for people who build software without code. They're visual and generative programmers.

I am particularly excited about the prospect of millions of new generative programmers. While not every no-code tool falls into that category, a generative style is the benchmark. That's because it most closely aligns with the no-code promise: tell me what you need, and I'll handle the details.

In that way, generative programming is an extension of one of software's core purposes, automation in the service of people. And because generative programming has the potential to be much more accessible, many more people will get to participate in software and have new tools to meet their goals.