
An invitation to category theory - sytelus
http://chalkdustmagazine.com/features/an-invitation-to-category-theory/
======
bojo
For anyone that may want a deeper look into Category Theory from the
perspective of a programmer I highly recommend -
[https://bartoszmilewski.com/2014/10/28/category-theory-
for-p...](https://bartoszmilewski.com/2014/10/28/category-theory-for-
programmers-the-preface/)

He also covers it all in few youtube series -
[https://www.youtube.com/user/DrBartosz/playlists](https://www.youtube.com/user/DrBartosz/playlists)

~~~
jxub
Since yesterday, his blog posts are also available as a hardcover book:
[http://www.blurb.com/b/9008339-category-theory-for-
programme...](http://www.blurb.com/b/9008339-category-theory-for-programmers)

~~~
macmac
I wish it could be shipped from Europe too. Shipping makes it prohibitively
expensive.

~~~
dancsi
It seems to me that you can select some of the largest EU countries by
clicking the US flag in the top right corner.

~~~
fmoralesc
The shipping is still a bit expensive if you are not in one of those... 11euro
to Belgium if you select the German option, for example.

~~~
hnra
There seems to be a 25% discount for today which removes about 10 USD from the
price.

Hopefully this book could get picked up by a publishing company so it becomes
easier to find in book stores.

~~~
jxub
Yes, this makes shipping cost a couple € at most.

------
jasim
Tai-Danae Bradley, the author of this post, has also written an illustrated
booklet (freely available) about Category Theory:
[https://johncarlosbaez.wordpress.com/2018/09/18/what-is-
appl...](https://johncarlosbaez.wordpress.com/2018/09/18/what-is-applied-
category-theory/)

~~~
ikfmpwdsoz
And, additionally, was a host on the YouTube series PBS Infinite Series,
shortly before it was cancelled.

~~~
laylomo2
I'm still sad that it was cancelled. She's a great presenter and I was really
excited about the series they were planning on category theory.

------
adamch
My team at work has been studying CT. Every week we read one chapter of
Category Theory for Programmers. Then every Thursday we discuss the chapter
and our problem solutions together.

It's been very fun. Our discussions help forge links between the category
world and our day-to-day programming. We're only 3 chapters in, so I can't say
it's given me some huge insight into programming. But as we move from Go to
Rust/Typescript, it gives us a useful way to think about the correctness of
our programs and a useful shared vocabulary for talking about types in a
language-agnostic way.

~~~
crimsonalucard
My workplace is the exact opposite. They scoff at types let alone categories.
One guy literally told me, and I kid you not, that he doesn't need type
checking, all he needs is to be "careful."

We don't learn things together, instead what happens is if I present something
new, another person stays silent looks it up at home on google and comes to
work the next day pretending he's an expert on the topic. It's toxic.

~~~
zmix
Wow, that's must be some real uncompetitional place. Nobody likes to be called
out on anything!

------
Koshkin
Truth to be told, learning Category Theory will make you a better software
engineer in the same sense and to the same degree as learning Quantum Field
Theory would make one a better electical engineer. It might get you more
excited about your profession, but at the practical level it will be more of a
distraction than an aid.

~~~
Epenthesis
YMMV massively depending on what exactly you're working in.

I've found when I'm writing libraries that will be leveraged by other
programmers, _especially_ in a modern/high level language, insights I've
derived from my understanding of category theory have been incredibly
valuable.

If you're working very close to the metal (eg, embedded), very close to non-
technical users (UI stuff, edge layer business logic), or in less featureful
languages, then you'll get much less value.

------
hazz99
As someone interested in functional programming, but works almost entirely in
imperative languages, is category theory worth learning?

Function programming heavily impacted how I write imperative code. Would I
have similar revelations with category theory – maybe write better
abstractions?

~~~
wenc
> Would I have similar revelations with category theory – maybe write better
> abstractions?

Maybe, but it's not a given. (Haskell folks might have a different view due to
their language being a closer match to the theory)

My sense is Category Theory is one of those things that is useful for
explaining things in retrospect, rather than used as a constructive tool. It
exposes inconsistencies in your current model, and helps clear up your
thinking. John D. Cook wrote a piece on Applied Category Theory which makes
the point that theory itself is perhaps less useful than the discipline of
thinking categorically [1].

I think Category Theory can guide the design of certain types of tools that
deal with relationships. LINQ (in C#) for instance was guided by category
theory. If you wanted to come up with a new kind of SQL, category theory could
be helpful in designing abstractions that are orthogonal and clean.

But the design of these types of tools remain a small, specialized domain
within programming. It's somewhat analogous in my mind to metaclasses in
Python: classes are sufficient for the most part, only framework developers
will likely ever need metaclasses (to generate classes).

In most day-to-day programming, it seems unlikely that category theory will
have as much an impact on practice as does, say, simple principles derived
from functional programming. In fact, there may even be negative consequences
from over-abstracting your code.

[1] [https://www.johndcook.com/blog/applied-category-
theory/](https://www.johndcook.com/blog/applied-category-theory/)

------
spinningslate
I found this really useful. I've had multiple, unsuccessful attempts at
grokking category theory, and never really felt I got it. The closest was John
Baez's online course [0].

I don't have a particular aptitude for maths (as an engineer by training,
maths makes sense to me as a tool for solving problems - not as a source of
study in and of itself).

Most all the introductions to CT I've read get into the maths very early.
That's entirely understandable. I personally find I need a more intuitive
description of the concepts first, using non-mathematical exemplars. OP is,
thus far, the introduction that best articulates things for me in those
intuitive terms.

That's in no way a criticism of more formal/abstract treatments: I've great
admiration for those who naturally create and assimilate things that way. I
wish I was one.

[0][https://forum.azimuthproject.org/discussion/1717/welcome-
to-...](https://forum.azimuthproject.org/discussion/1717/welcome-to-the-
applied-category-theory-course)

------
lolc
This is the first explanation of Category Theory that I could relate to. I'd
tried reading into it before, but quickly lost ground with all the
theoremizing going on. As is typical with mathematics, once you understand it,
it seems trivial. But getting there is not. So thanks for the map.

------
tombert
In the trend of showing other people introductions to category theory, I
recommend Peter Smith's "Category Theory: A Gentle Introduction", available
online:
[https://www.logicmatters.net/resources/pdfs/GentleIntro.pdf](https://www.logicmatters.net/resources/pdfs/GentleIntro.pdf)

It assumes a bit more knowledge coming in, but it's really what made the
entire thing stick for me.

~~~
escherplex
I'd add to that a complementary text by Barr and Wells:

 _Category Theory for Computing Science_ (Revised 2013)

[http://www.math.mcgill.ca/triples/Barr-Wells-
ctcs.pdf](http://www.math.mcgill.ca/triples/Barr-Wells-ctcs.pdf)

------
yenwel
Also nice:

Erik Meijer Explains it well:
[https://www.youtube.com/watch?v=JMP6gI5mLHc](https://www.youtube.com/watch?v=JMP6gI5mLHc)
(check out FP101 on edx) Statebox guys doing stuff with category theory,
blockchain and petrinets:
[https://www.youtube.com/user/wires0](https://www.youtube.com/user/wires0)
[https://statebox.org/](https://statebox.org/) Graphical linear algebra:
[https://graphicallinearalgebra.net/](https://graphicallinearalgebra.net/)
Jules Hedges working on game theory :
[https://julesh.com/](https://julesh.com/)

------
mkw5053
For those in the SF area, a group[1] recently started working through Bartosz
Milewski's Category Theory for Programmers [2].

[1] [https://www.meetup.com/SF-Types-Theorems-and-Programming-
Lan...](https://www.meetup.com/SF-Types-Theorems-and-Programming-
Languages/events/255385123/) [2]
[https://bartoszmilewski.com/2014/10/28/category-theory-
for-p...](https://bartoszmilewski.com/2014/10/28/category-theory-for-
programmers-the-preface/)

------
cosmic_quanta
What a wonderful introduction of category theory. I didn't know about it
before reading this, but I must say I am intrigued.

------
Bootvis
If you’re in Amsterdam, FP-AMS is organizing a CT study group:

[https://www.meetup.com/nl-NL/fp-ams/](https://www.meetup.com/nl-NL/fp-ams/)

------
lordnacho
So, category theory is the abstraction of abstractions? Is that what it's
saying?

~~~
mikorym
Set theory is a foundation for modeling abstract structures. Category theory
is a foundation for modeling abstract structures together with structure
preserving relationships between them.

(Once one has identity relationships then in fact the structures themselves
can be disregarded and one is left with a study of simply structure preserving
relationships.)

