How Proof Trees Make Declarative Programming Work

Most programming feels like giving detailed instructions to a very literal assistant. You write if-else conditions, call functions in sequence, and manage state step by step. This is imperative programming — you tell the computer exactly how to solve your problem. By contrast, declarative programming is about stating what you want rather than how to do it. It’s like the difference between giving turn-by-turn directions versus simply stating your destination and letting the GPS choose the route. ...

December 22, 2024 · Tolic Kukul

Abstraction Is Hard: Why Wrong Abstractions Are Worse Than No Abstractions

Creating good abstractions is one of the hardest parts of software development. Here’s why getting them wrong is so expensive and how to think about them better.

September 28, 2023 · Tolic Kukul

Kokeshi vs Lego: Two Philosophies of Software Architecture

Software architectures fall into two categories: nested abstractions like Russian dolls, or composable pieces like Lego blocks. Understanding the difference changes how you build systems.

September 15, 2018 · Tolic Kukul