
Category Theory for the Working Hacker [video] - louthy
https://www.infoq.com/presentations/category-theory-propositions-principle
======
Koshkin
To be honest, Category Theory is the _last_ thing a software developer
("working hacker") should worry about learning. It is indeed a fun subject, it
has grown into a large branch of algebra, it has connections with functional
programming (lambda calculus) etc. But if one wants to be a good programmer,
there is so much of _really_ useful and important (and difficult) stuff to
learn before you can even come to appreciate what, if anything, knowing
Category Theory can do to improve your software engineering skills, that I
would dare to characterize it just as an obscure subject that in all
likelihood is not worth spending your time on.

~~~
Nydhal
I'm curious, what should come before as a far as a mathematical subject ?
Graph theory ? Number theory ?

~~~
tnecniv
Depends on what you do. I work in robotics, so probability and linear algebra
are the two most indispensable subjects I know. Graph theory might be a little
more generally applicable.

At the end of the day, you don't need a lot of math to write CRUD apps. The
more math you know, though, the more approaches you'll have to formulate and
solve problems.

~~~
SomeStupidPoint
A lot of graph theory is implemented as linear algebra, using things like
adjacency matrices.

------
khrm
[https://www.youtube.com/watch?v=I8LbkfSSR58&list=PLbgaMIhjbm...](https://www.youtube.com/watch?v=I8LbkfSSR58&list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_)

I love this series

~~~
rv11
I read his blog, never new he had some videos.

[https://bartoszmilewski.com/2014/10/28/category-theory-
for-p...](https://bartoszmilewski.com/2014/10/28/category-theory-for-
programmers-the-preface/)

interesting enough.

------
pmoriarty
LtU discussion:

[http://lambda-the-ultimate.org/node/5366](http://lambda-the-
ultimate.org/node/5366)

------
Yxven
As a working programmer that is curious about category theory, I feel like
this misses the mark completely. I watched this yesterday, and this is what I
remember:

1) I will tell you why category theory is relevant to you, the working
programmer.

2) Here are the 2 most important data structures that you don't use in your
day job.

3) Look at how they relate in this mathy not applicable way.

4) Conclusion: lambda calculus is awesome.

What I would like to see is:

1) I will tell you why category theory is relevant to you, the working
programmer.

2) Here is a realistic but simplified problem and a solution written in python
that is obviously the wrong approach to solving the problem. With category
theory, we know this is the wrong approach because the math is wrong (and
don't go into the math).

3) Here is another example that seems like a decent approach to solving the
problem. With category theory, we know this is the wrong approach because the
math is wrong (and don't go into the math). Doing it our way has these
benefits...

4) Conclusion: learn category theory to become a better programmer.

If you can't do that, find some other way to illustrate the concrete benefits
of learning category theory. If there aren't any concrete benefits, it's like
telling baseball players they should learn physics to have a better
understanding of baseball.

------
javitury
Is the diagram at 30:05 right? It says: (A+C)x(B+C)=(A+B)xC However I can't
stop thinking it should be: (AxC)+(BxC)=(A+B)xC

~~~
hoprocker
That's how I learned it in grade school, yup.

------
nickpsecurity
A nice presentation I found to introduce software engineers to category theory
and its areas of application:

[http://www.cs.toronto.edu/~sme/presentations/cat101.pdf](http://www.cs.toronto.edu/~sme/presentations/cat101.pdf)

I don't know category theory so I can't vet it. My skimming of it did show it
was interesting, though.

------
emblem21
This is fantastically timed and very well explained. Our company is working
deeply with Category Theory right now as we believe programming in the future
will find itself focused primarily on the task of orchestrating AI to code.

~~~
adamnemecek
What company is that?

~~~
emblem21
[http://www.emblem21.com](http://www.emblem21.com)

------
gravypod
Why don't things like Category Theory and Set theory update their terminology
to align with more modern words of describing these?

Why is a "function" and "arrow"? A "function" implies an operation that is
part of a larger system of organized operations. An "arrow" implies stone age
technology. One is infinity more descriptive in my opinion.

Is there a reason for this?

~~~
tobbe2064
The word function has a sort of precis mening in math as a rule mapping each
NUMBER in some domain to some NUMBER in a codomaon. The word arrow however can
refer to any directed relation including less than or divides or what not, as
long as they are composable and associative

~~~
tobbe2064
Further math is sort of a stone age technology

~~~
jonsterling
wtf are you on about? That is not how math works.

~~~
tobbe2064
I apologise for my drunken and incorrect silliness.

Aside from that, would you please enlighten as to what you meant by "that's
not how math works"?

~~~
jonsterling
Sorry for my harsh comment; here's what I'm thinking of...

In math, you are dealing with many different kinds of object, not just
numbers. In fact, one of the big realizations that led to modern mathematics
is that _not all mathematical objects can even be coded as numbers_!

Your remark about "arrow" being more general than function is correct; but
functions do not map only between sets of numbers, but between arbitrary sets,
some of which contain elements that are not numbers, or even encodable as
such.

