The Next Steps: A Partial Solution to Software Complexity

Shane Yu
6 min readDec 2, 2020
Photo by Alina Grubnyak on Unsplash

What is software development?

What causes software complexity?

These are two fundamental questions. Even as computers are becoming faster, new languages, tools and frameworks are being developed, there feels like fundamental problems with software development. Understanding them will hopefully let understand why programming often feels broken, and why it feels like we have in many ways as an industry hit a wall.

What is Programming?

Core Ideas

  1. Programming can be thought of a set of transformations: turning human concepts down a chain of intermediate steps to something executable by a computer.
  2. All programming constructs: programs, frameworks, libraries, languages, etc, are ways of expressing concepts at different levels down this chain.

The Transform Stack

Photo by Debby Hudson on Unsplash

Let us consider what I will call the transform stack.

On the top you have Human Level concepts, and on the bottom you have computer level instructions.

--

--

Shane Yu
Shane Yu

Written by Shane Yu

Cognitive Scientist, Concept Engineer, Programmer, Designer, Researcher

No responses yet