"Design, Composition, and Performance" by Rich Hickey (2013)

Discover how design, composition, and performance intersect in this thought-provoking talk by Rich Hickey. He explores the importance of design in programming, drawing parallels with music and emphasizing the need for modular, reusable code.

Key takeaways
  • Design is important as it helps understand a system, make decisions, and communicate with stakeholders. It’s not just about solving real-world problems, but also about creating something new and innovative.
  • In music, composition and performance are closely related. A composer writes a piece of music, and a performer brings it to life by playing it.
  • Instruments are limited and have their own unique characteristics, which require the performer to adapt and respond accordingly.
  • Design is about taking apart complex systems into smaller parts and understanding how they fit together.
  • In programming, design is often overlooked, but it’s essential for creating reusable code and ensuring that the system works as intended.
  • Good design is about making trade-offs and weighing the pros and cons of different approaches.
  • Design is not just about solving problems, but also about creating something new and innovative.
  • In music, harmony and melody are important concepts that work together to create a cohesive piece of music.
  • Design is about separating apart who does what, and understanding how the different components of a system fit together.
  • A good design should be modular, so that it can be easily modified and extended without breaking the system.
  • Design is about thinking about the big picture and understanding how all the different parts of a system fit together.