Djehouty, CC BY-SA 4.0, via Wikimedia Commons

No-code, Low-code, and Pro-code

What do we mean when we use these trendy terms? Why do they matter? And aren’t these just new names for things that already existed?

Towards Data Science
4 min readJun 9, 2021

--

Let’s begin with why these terms matter

I’m presuming you’ll agree:

  • Developers should be able to build novel, useful, scalable, secure software with only a minimal amount of clean, maintainable code.
  • Minimizing the complexity and scope of code enables faster deployment of software applications which are easier to maintain and improve.
  • Minimizing the complexity and scope of code enables a larger, more diverse, more domain-specialized pool of developers to design, implement, maintain, and improve software.
  • All of this results in more software, and more useful software, eating the world, faster.
The original world-eater, Jörmungandr, Wikimedia Commons

How do we summon this world-eating software serpent?

By minimizing and optimizing the use of code!

  • With specialized languages, libraries and SDKs. For example, in the R language, developers rarely have to write code to implement statistical calculations and algorithms — a myriad of statistics libraries are available do the work. Similarly, Python has the SciPy and NumPy libraries to do much of the heavy lifting. Coding level: high-code, just less of it
  • With software development frameworks. For example, the Angular framework organizes and orchestrates many aspects of web software automatically so developers can focus on the HTML, CSS and JavaScript/TypeScript code specific to their application. Node.js is another example of a useful software development framework on the server-side. Coding level: high-code, just less of it
  • With customizable software components. There are lots of examples, including Apache Spark, Docker, relational databases, and cloud services. Software components like these are significantly constrained in scope compared to programming languages—but that’s on purpose — constraining scope enables developers to easily configure these powerful software components and integrate them into their tech stack with clear, minimal coding. Coding level: low-code (configurations, templates), pro-code (plugins, scripts)
  • With trained AI software components. This is where trained AI models are inserted as modular predictors / generators inside a larger software application. For example, targeted advertising systems include an AI component that takes the user’s data and runs it through a trained algorithm to select the optimal ads to display to the user. It’s worth noting that AI software components require much more coding than people (i.e. executives) expect. Coding level: high-code (data prep, design, optimization), no-code (training, testing, runtime)
  • With customizable full-stack software. For example, WordPress enables developers to create and deploy websites with very minimal setup and coding. Similarly, R/Shiny enables developers to create and deploy web applications for data analysis without having to write any web interface code. Coding level: low-code (configurations, templates), pro-code (plugins, scripts)
  • With customizable end-user software. At this point we escape the realm of coding entirely and allow users to configure the specialized behavior of software through human-computer interfaces — e.g. via point and click, swipe and drag, search queries, data entry forms, and voice commands. There are millions of examples of this, some of the most popular might be Excel, Gmail, Facebook, Alexa (I’m not sure why I needed links there — for readers that have just awakened from a coma, I guess).
    - Coding level: no-code (structured forms, unstructured queries)
  • With AI-built end-user software? Haha. Mhm. Give me AI-built unit tests first, s’il vous plaît. Coding level: vaporware

I’ve only recently heard about no-code, low-code, and pro-code, aren’t they new?

No, not really.
But there are many more useful SDKs, frameworks, and companies these days — cough, Tag.bio, cough — which minimize coding to facilitate useful software development and behavior. It’s also an investment trend right now in the Venture Capital space.

No-code means configuring software without coding. Some folks might argue that no-code should be limited to situations where users explicitly intend to be making / publishing novel software applications from their no-code actions, but that’s just a matter of perspective and UX. No-code is probably best done when the user natively performs a task of interest —like making a post on Twitter. The intent to publish a new software application for other people — i.e. an interactive web page available at a specific url for that tweet — is a secondary objective.

For example, Tag.bio enables doctors and biologists to perform advanced analysis on data via iterative no-code parameter configuration (point-and-click).

Low-code means writing high-level configurations and templates (still code) which customize a wide range of behavior for a software component or system. JSON and YAML seem to be the most popular syntax options right now for doing this. Low-code isn’t always simple—configurations and templates typically have bespoke attributes, operations and schemas for each software component which developers must learn. And the more complex a config / template system becomes, the more it becomes its own high-code programming language.

For example, Tag.bio enables data engineers to rapidly design, build, and deploy domain-driven, decentralized data products via low-code JSON templates.

Pro-code means writing code in a regular programming language like Python, or a specialized programming language like SQL, and inserting that code as a pluggable module into a larger software system. Pro-code provides the advantage over low-code of giving the developer full control of the process within the narrow scope of their plugin / script.

For example, Tag.bio enables data scientists to rapidly build and customize data analysis apps for use by researchers via pro-code R/Python plugins.

Thanks for reading!

Any thoughts? Comments are welcome.

--

--

Full-stack data scientist, computational biologist, and pick-up soccer junkie. Brussels and San Francisco. Opinions are mine alone.