Do they belong to you? Claim these comments.
Pseudonym
Is this you? Claim Profile »
1 year ago
in What Every Programmer Needs to Know About Category Theory on Languages of the real and artificial
Oliver: Category theory is to mathematics what design patterns are to software engineering (which is not, of course, what "every programmer" does).
In software engineering, if a pattern shows up in several applications, we give it a name so we can talk about it independently of any single application. Same with category theory. Initial objects, products, equalisers and so on are names of patterns which turn up in a lot of algebras.
One thing that I see a lot is that programmers come out of university with a lot of knowledge about how to implement a function/procedure/whatever, but almost none about how to implement the interface. Making things worse is the problem that an interface is harder to change than an implementation. It's more important that you get it right early.
One theme that I'm seeing is that the best interfaces, the best APIs, are the most "mathematical". Even simple things, like binary search trees, are simpler to implement and use if you think about them algebraically. Even some .NET APIs are using monads in anger these days.
Yes, you could come up with that without knowing any category theory. However, category theory is another tool in the programmer's toolbox that can be used to talk about, understand and ultimately solve a problem.
In software engineering, if a pattern shows up in several applications, we give it a name so we can talk about it independently of any single application. Same with category theory. Initial objects, products, equalisers and so on are names of patterns which turn up in a lot of algebras.
One thing that I see a lot is that programmers come out of university with a lot of knowledge about how to implement a function/procedure/whatever, but almost none about how to implement the interface. Making things worse is the problem that an interface is harder to change than an implementation. It's more important that you get it right early.
One theme that I'm seeing is that the best interfaces, the best APIs, are the most "mathematical". Even simple things, like binary search trees, are simpler to implement and use if you think about them algebraically. Even some .NET APIs are using monads in anger these days.
Yes, you could come up with that without knowing any category theory. However, category theory is another tool in the programmer's toolbox that can be used to talk about, understand and ultimately solve a problem.
1 year ago
in What Every Programmer Needs to Know About Category Theory on Languages of the real and artificial
True enough. Only good programmers need to know about it.