Side-Effects Are The Complexity Iceberg
YOW! Melbourne 2024

Thursday Dec 5
13:15 –
14:00
Green Room

Side-Effects Are The Complexity Iceberg

Slides:


Side-effects are insidious beasts. They make code harder to test, harder to use, and harder to compose. And yet to most programmers, they're almost completely invisible. And that means they sneak into our codebases without meeting any resistance.

So let's take a closer look at side-effects and learn how to fight back. By training yourself to spot them, you can start to eliminate one of the sneakiest causes of software complexity. You'll understand why some code is naturally easier to test, and why some APIs are inherently harder to work with. (And you'll be able to write more of the good kinds!)

Then, as we zoom out, you'll see why side-effects are the unifying force behind some of the most exciting ideas in modern programming, from immutable data structures and functional programming, through the latest developments in Java and the roots of Rust all the way to the evolution of event systems and high-scale databases.

There's an iceberg of complexity hiding in your systems' side-effects and by the end of this talk you'll be able to spot it and have a raft of ideas for tackling it, from devops to database design and beyond.