The Next Steps: A Partial Solution to Software Complexity

1 min read Original article ↗

Shane Yu

Press enter or click to view image in full size

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

Press enter or click to view image in full size

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.