4 ms·
I find it most useful as a kind of conceptual organization. It's not something you'd directly solve problems with, but rather a way of organizing your work on t
by Twisol 5y ago
I find it most useful as a kind of conceptual organization. It's not something you'd directly solve problems with, but rather a way of organizing your work on the solutions. In that sense, it's much like software architecture -- you don't directly solve problems with architecture, either, but you do want an architecture that supports you when you need to make changes or grapple with a large or complex problem domain.
Unfortunately, that's also why most resources directly on category theory are deeply wedded to pure mathematics -- it's an architectural form that has been developed by mathematicians to organize their own constructions. Folks like Scott Wlaschin [0] and Mark Seemann [1] have, I think, much more success in teaching categorical concepts in a software context, but since their material is often so far removed from category theory "proper" (intentionally and for good reason), they don't really paint much of a path toward category theory themselves.
(I've recently been learning Agda, a dependently-typed language / proof assistant, and it's kind of shocking how often refactoring my proofs lead to more "obviously categorical" concepts. I really think there's something to this category-theory-as-mathematics-architecture angle.)
[0] https://fsharpforfunandprofit.com/rop/ https://fsharpforfunandprofit.com/rop/
[1] https://blog.ploeh.dk/2017/11/13/endomorphism-monoid/ https://blog.ploeh.dk/2017/11/13/endomorphism-monoid/
- Twisol 5y agoThat said, Spivak's work on framing databases in terms of categories [2] is pretty fascinating, and might be worth poking at. [2] http://blog.ezyang.com/2010/06/databases-are-categories/ http://blog.ezyang.com/2010/06/databases-are-categories/