Abstraction is the New Gold

Fabrizio Romano Genovese
Statebox
Published in
4 min readJan 13, 2020
https://ykode.id/making-sense-of-category-theory-6f901e39fa3c

As our dear readers widely know, Statebox is a company that heavily relies on category theory for the development of its products. Attention towards category theory by academia is not at all surprising. Applied category theory has become a fertile research field, as reflected by the several conferences and events which emerged in the past few years, such as the yearly applied category theory conference (ACT) or our own yearly summit.

On the other hand, the enterprise sector seems to get increasingly aware of how categorical reasoning could impact their own future. In many niches of the tech space, there is a pervasive feeling that we finally possess the right formal tools to apply compositional techniques (that is, ACT) in a widespread fashion. Some companies are understanding this at a naïve level, and are reacting by, say, increasingly adopting functional programming languages for the development of their product stack. Other companies are instead fully aware of this, and are actively setting up research efforts in applied category theory.

How category theory can help your company

In An Invitation to Applied Category Theory, Fong and Spivak introduce their topic as follows:

It is unmatched in its ability to organize and layer abstractions, to find commonalities between structures of all sorts.

To give you an intuitive feeling of how category theory can impact company life, think about the following:

  • at a high and abstract level, business is about connecting different ideas and crunching numbers to see how these ideas perform and become profitable;
  • programming is about connecting different pieces of software in a manner that will minimise generative effects, or as we like to call it, emergent behavior;
  • production and planning is about connecting different facts (e.g. travelling time and price from A to B) while keeping an eye on optimization.

In all these examples, the idea of “connecting things to other things” is preeminent. Category theory provides a universal language to reason about these relationships. Now business planning and programming become just two different incarnations of the same underlying idea. Moreover, the use of functors (which are ways to map things to other things while preserving their connections) makes the unthinkable possible, e.g. by mapping business workflows directly into code. This is precisely what we are working on at Statebox, and you can see a minimal application of this in our video series about designing smart contracts with Petri nets.

Do you need to be a mathematician to learn category theory?

This is the most popular myth surrounding category theory adoption and we are here to bust it. Unfortunately, as all things when seen from the outside world, the ideas behind category theory can feel obscure and complicated. In addition to this, people seem to believe that you have to already know a lot of mathematics to get category theory right. This is clearly false, but such prejudice is reinforced by the fact that nearly all of the free learning material on the internet is directed at mathematicians, physicists and computer scientists.

Too hard, won’t bother

But how hard is it to learn category theory? In my experience as a category theory teacher, I’ve noticed that people tend to naturally think in compositional terms, but somehow they forget about it when they are taught other things. For this reason, learning category theory requires a shift in point of view that, once started, feels more as a re-discovery than as something new. This is confirmed by my own experience as a category theory student. When I myself had to learn category theory, I found out that the cause of my struggle was trying to understand category theory with the tools I had already acquired, instead of just starting from scratch. When things started clicking, I realized that category theory is, by definition, the most natural way to reason about and model systems. From this point of view it is evident that category theory is not difficult to learn, since its working principles are, most often than not, already well understood by its learners, who simply are not yet aware of this.

Category Theory Course — March, Berlin

For the above reasons and more, we decided to launch a category theory course aimed at programmers, system architects and businesses in general. We already have experience in teaching category theory to non mathematicians and we believe the best way to teach it is through examples tailored on the knowledge of the learners. In our course, we carefully evaluate the needs of our clients and their skillset, and figure out the most frictionless way to initiate your journey into categorical thinking.

The aim of our course is to provide a base layer of understanding of the main topics in ACT and show how they can be used to model systems. Then, you will be able to either deepen your knowledge by yourself by accessing previously unmanageable learning material on the internet or to interact with expert category theorists in the ACT community. You will be able to understand the category theory jargon, and this will endow you with a universal language that facilitates the understanding of current research in the field as well as form abstractions and find similarities in seemingly unfamiliar spheres. We truly believe that this opens the door to offering unique solutions to problem solving, regardless of the domain you find yourself in.

Join our category theory course on 24–27 March in Berlin. The course will be taught by yours truly with the support of at least one other guest category theorist from the ACT community. Sign up here!

--

--