Compose Software Like Nature Would
Inspired by biology background, I combine some ideas from functional and OO programming into a presentation about software design. I gave this talk at the OttawaJS meet-up group in September. The slides can be seen here.
Talk Summary
The only constant in software development is change. When our software cannot adapt, it turns into a big ball of mud. It becomes hard to hard to reason about and hard to change.
Living organisms, on the other hand, have the incredible ability to adapt to their environment. Over 3.5 billion years they evolved many different adaptations. For example, there are 400k species of beetles, and they live in diverse habitats. Some beetles feed on decayed matter while others prefer locally sourced, organic vegetation. Perhaps nature could be our inspiration for better software.
The conclusions of the talk are:
- Build small components & compose them with messages.
- Push side-effects to boundaries and have a functional core.
Resources
- Gary Bernhardt - Boundaries
- Dan North - Software that Fits in Your Head
- Rich Hickey - Simple Made Easy
- Jessica Kerr - Functional Principles for OO Development