Has anyone actually seen a real world problem being solved via Category Theory? As in, "in the wild", instead of being mentioned on a website dedicated to Category Theory?
To me it seems a lot like the crypto and web 3.0 promises of "soon there will be all of these amazing applications"... and then there aren't any.
Also, all of the examples of CT I've seen are applicable only to pure functional languages like Haskell, which seems to limit their practical utility.
All these concepts actually apply to any programming language. Haskell often allows to express them very concisely and compose them elegantly, but the fact that say, lists can be viewed as a functor (ie, you can apply a function taking an int and returning a string, apply it to a list of ints, and get back a list of strings), is independent of the language. Knowing that fact however does (for a certain type of programmers at least) make it easier to combine different pieces of code.
I usually program in C++ or php, but I do think in monads / functors / applicatives quite often. I then use whatever features of the language I have at my disposal to “encode” my thinking at an appropriate level of abstraction. What level of abstraction that is depends not only on the language, but also how efficient and “communicable” I want my code to be. I don’t mind expanding the `map` of a functor into an explicit for loop, if my junior colleague can more easily deal with it.
In fact, at this point, with functional programming patterns having become so pervasive, most people including beginners have no problem with the concept of functors, and “mapping” functions on things. Monads still have that aura around them, but really, any time you write a line of code that reuses the result of a previous line of code and checks for something, you probably have a monad hiding in there, and “exposing” it might make it easier to factor out your code or find an elegant API.
There was a talk a few years back by Conal Elliott about a concise implementation of reverse mode automatic differentiation through tweaking the definition of derivative to make it composable and then dualizing[0].
There was another talk where IIRC Edward Kmett dualizes divide and conquer algorithms to derive a generic bucket sort that works on general algebraic data types[1].
These are generic concepts. Haskell is just convenient to express them in. In some sense, obeying functor or monad laws just means you'll have a "clean", predictable design, for example. The language doesn't need special support; you just need to check whether your code is composable in a sensible way.
It is used in some formalizations of quantum field theory. Quantum field theory is used to make testable predictions about physics, and historically, giving scientific theories a rigorous mathematical backing has been useful. So that could be an example.
The classification problem of sorting humans into two groups:
- the group of people who don't see the relevance of mathematics "in the real world", and expect any a-ha moment to have come to them by magic already, and;
To properly talk about compositionality in differential equations you absolutely need category theory. Likewise I firmly believe that PDE and numerical mathematics actually lack a good foundation in category theory, not that they don’t need one.
It is just very hard to create non-trivial general theories in sich „Applied“ fields, Functional Analysis alone is not very exciting. For an example see for example the work or Hairer (stochastic differential equations) or Costello (QFT).
> Statebox is blending an ACT approach to Petri nets together with blockchain technology to develop a technology stack based on a visual programming language. In addition, they have built a software engine for compositional game-theoretic modeling, a finite state machine oracle.
Hmm.
More seriously:
> Structured cospans of Petri nets were implemented
in the software package Julia to develop an SIR model that
is compositional in the sense that various cities can each
have their own model that can be connected together to
form a composite SIR model
SIR is the most common way of modelling infectious diseases. Having said that though - there are plenty of SIR models that don't require category theory.
Sorry, but what real world problem does a quantum circuit solve?
My interpretation of "solving a real world problem" means that it can't be infinitely abstract, and must be a relatively good solution, compared to other options. I only see, from my dumb perspective, extreme abstracts.
There's no such thing as "infinitely abstract". All abstractions eventually become real-world given enough time. It's only a question of how far ahead of the curve they are and long it takes.
Is this what Grothendieck specialized in? I remember reading an article about how it was applied by NSA to break encryption. I tried reading then about how that was done but at most it seems like its one abstraction layer above the model itself and so you can step around things, maybe.
To me it seems a lot like the crypto and web 3.0 promises of "soon there will be all of these amazing applications"... and then there aren't any.
Also, all of the examples of CT I've seen are applicable only to pure functional languages like Haskell, which seems to limit their practical utility.