Sunday, 15 November 2015

book review: Cakes, Custard, and Category Theory

Eugenia Cheng.
Cakes, Custard, and Category Theory: easy recipes for understanding complex maths.
Profile. 2015

The purpose of mathematics is to make difficult things easier; the purpose of category theory is to make difficult mathematics easier.

So argues research mathematician Eugenia Cheng in this excellent book. She starts off gently, with relatively simple mathematics, and oodles of real world examples, many based, unsurprisingly given the title, on cooking. These culinary examples serve both to illuminate the concepts, and to demonstrate her thesis: for example, finding out how much icing a cake needs is made easier using mathematics.

The first half of the book is about mathematics in general, and what it can and can't do. There are some lovely descriptions of the role of abstraction and generalisation, and the process of doing mathematics. By the end of this part we are confidently reading about axiomatisation. The second half then delves into the promised category theory. This covers the role of relationships and structure, along with a discussion of sameness. This is all achieved with a lightness of touch, whilst covering some quite profound ideas.

By the end, Cheng has explored an broad range of concepts, illuminating a lot about the philosophical stance of mathematicians, and the relationships of mathematics to the world. And now I want some cake.

For all my book reviews, see my main website.


  1. You made we look it up on Amazon. This review ( struck me particularly. Both you and the reviewer talk about how the book praises mathematics for its impulse toward abstraction. My sense these days is that abstraction is the essence of Computer Science -- and that for many refactoring is the royal road to abstraction. So we should teach our students about refactoring as an important activity. I even expected the reviewer to say that his insight was also that abstraction was the essence not (only) of math but of CS. But he didn't.

    Also, as the reviewer says, I too have wondered about the application of category theory to CS. It may sound strange to say that after praising abstraction. But I'll admit that I've never understood it well enough to know how it applies to software. If the book were a good enough tutorial on category theory to help me understand that I'd be interested. (That's why your review sent me to Amazon.) But now I'm not sure it will do what I want.

    1. This is not a book to go to if you want to learn category theory, but it is if you want to know why mathematicians are interested in category theory.

      I agree abstraction is fundamental in computer science. And I have seen a lot of people excited about category theory in CS, but whenever I've tried to absorb any, I've bounced off for the same reason that Google reviewer did. And I *like* abstraction!

      However, in software engineering, although abstraction and refactoring are hugely important, the devil is in the often messy detail that you *can't* abstract away from, because it's grounded in some grungy real world artefact. So it's a delicate balance of abstraction and detail -- just like all engineering :-)