Does category theory make you a better programmer? by Debasish Ghosh.
From the post:
How much of category theory knowledge should a working programmer have ? I guess this depends on what kind of language the programmer uses in his daily life. Given the proliferation of functional languages today, specifically typed functional languages (Haskell, Scala etc.) that embeds the typed lambda calculus in some form or the other, the question looks relevant to me. And apparently to a few others as well. In one of his courses on Category Theory, Graham Hutton mentioned the following points when talking about the usefulness of the theory :
- Building bridges—exploring relationships between various mathematical objects, e.g., Products and Function
- Unifying ideas – abstracting from unnecessary details to give general definitions and results, e.g., Functors
- High level language – focusing on how things behave rather than what their implementation details are e.g. specification vs implementation
- Type safety – using types to ensure that things are combined only in sensible ways e.g. (f: A -> B g: B -> C) => (g o f: A -> C)
- Equational proofs—performing proofs in a purely equational style of reasoning
Many of the above points can be related to the experience that we encounter while programming in a functional language today. We use Product and Sum types, we use Functors to abstract our computation, we marry types together to encode domain logic within the structures that we build and many of us use equational reasoning to optimize algorithms and data structures.
But how much do we need to care about how category theory models these structures and how that model maps to the ones that we use in our programming model ?
Read the post for Debasish’s answer for programmers.
For topic map authors, remember category theory began as an effort to find commonalities between abstract mathematical structures.
Commonalities? That sounds a lot like subject sameness doesn’t it?
With category theory you can describe, model, uncover commonalities in mathematical structures and commonalities in other areas as well.
A two for one as it were. Sounds worthwhile to me.
I first saw this at DZone.