Principles of simplicity (Go Time #296)

A discussion about one of my favorite topics:

Rob Pike had this great talk, “Simplicity is complicated”, where he says “Simplicity is the art of hiding complexity.” He goes on to give garbage collection as an example, where under the hood, the garbage collector is extremely complex, but to the users it’s really simple.

Rob’s original talk:

Go is often described as a simple language. It is not, it just seems that way. Rob explains how Go’s simplicity hides a great deal of complexity, and that both the simplicity and complexity are part of the design.

This is the essence of good software design – we do hard stuff so someone’s life can be simpler. This does not always mean that we make things simple for ourselves. In some cases, we build a complicated subsystem that makes other more frequent tasks easy. One example of this is the Simple IoT store – it is fairly complicated and took a lot of work to create, but creating new SIOT clients is pretty simple because the store does a lot of the hard work.

1 Like