Compression Oriented Programming == Simple Design?

It seems like what Casey calls compression oriented programming is a non-TDD version of "Simple Design".

Basically a "simple design" satisfies these rules:

  1. Passes its tests
  2. Minimizes duplication
  3. Maximizes clarity
  4. Has fewer elements

Casey is not doing unit tests but he does emphasize the importance of writing usage code first, which, along with asserts, gets you a lot of the benefit of TDD (i.e. writing tests first forces you to write usage code first).

The "compression" part seems like it is the "Simple Design Dynamo":



It is hard to argue with the goals for simple design so I suppose it is not surprising that Casey's approach seems like a different way of thinking about how to achieve it.