📝Programming systems become more and more complex

The net sum of complexity in a programming system increases.

Programming in general seems to become easier but at the cost of higher complexity in other parts.

  • Hardware becomes more complex.
  • Operating systems become more complex.
  • Compilers and interpreters become more complex.
  • Programming languages become more complex (but at the same time, easier to use).
    • Can programming languages decrease the complexity of software? (thus forming a loop, whereby more complex languages help create more complex system)
      • Rust and Servo?
      • self-bootstrapping compilers
      • Is that the same as pushing complexity of that thing on the compiler itself?
        • pushing the complexity of compiler on the compiler itself creates an interesting paradox (re: bootstrapping)

Humans tend to hide complexity by abstraction, but the whole stack does not become any less complex—just the opposite. But, compartmentalizing complexity makes every part of the system manageable. (Every part becomes more and more complex.)

This assumes a simple definition of complexity as a sum of complexities of each part (C=pcpC = \sum_p c_p). But, Time-adjusted complexity justifies pushing the complexity downward.


  • what this implies?
    • we will see more and more specialization
  • examples in other areas?
    • medicine?
      • doctors specializing more and more, you can find less and less generalists
  • decreasing entropy