4 ms·
Question to all CS majors, that invested in learning Category Theory: Did you have any concrete take aways from learning it? ( I have a math background, and s
by heinrichhartman 7y ago
Question to all CS majors, that invested in learning Category Theory:
Did you have any concrete take aways from learning it?
( I have a math background, and struggle to find something concrete. Maybe I am just blind. )
- lidHanteyk 7y agoYeah. I couldn't have attempted learning about certain sorts of objects like Chu spaces, posets, or topoi without category theory. After having gone through the change and categorifying my thinking, I now find category-theoretic constructions everywhere in mathematics, and I find the mathematicians who refuse to examine category theory quite insufferable. Edit: More: The connection between type theory, logic, and computation is not specious, but is part of the fabric of reality. I now can understand why chemistry -- being a linear logic -- is time-reversible, or why every DAG is a poset is a system of logic is a language of computation, or why a ring has two interlocking groups, or why social groups tend to include one big conversation and many side chats in a power-law distribution of sizes.
- dominotw 7y ago> I now find category-theoretic constructions everywhere in mathematics, i think gp might have been asking about practical use in CS ( CS majors).
- heinrichhartman 7y agoYeah exactly. I am interested in practical applications for programmers. I know a thing or two about the prevalance of categories in Mathematics (https://arxiv.org/abs/1012.3121 https://arxiv.org/abs/1012.3121). I heared many people talk about Haskell, Monads and Types <=> Proof duality, but I never heard anyone saying: "I applied the Yoneda Lemma to build this API.", or "I read about Category Theory and now $CONCEPT_XYZ started making sense to me."
- lidHanteyk 7y agoAnd CS is merely a subfield of maths. What should I say? Scott theory, domain theory, CPOs, Galois connections? The problem here is that, as usual, folks are trying to figure out what category theory is good for, but ignoring the entire point: The definitions are the important part. Once the definitions make sense, then the rest of the system makes sense. Category theory is all about the definitions, and moreover, all about coming to have the definitions at hand so that one can recognize categorical structures in practice. Or, I guess, I could take a lazy route and just say "theorems for free, those are the practical use" and be done. But it's frustrating to hear folks over and over wonder what something is good for, when they clearly aren't reading and trying to find the goodness for themselves.
- deleted 7y ago[deleted]
- tsimionescu 7y agoThe problem for someone like myself is that I have taken some classes on basic abstract algebra in high school (groups, monoid, rings etc) and came out of it with some definitions and... Nothing else. I can probably still tell if some operation on some set forms a group or not, but that has never been a directly useful tool in what I learned further through high-school and university. It didn't help in linear algebra. It didn't help with calculus. It didn't help with control theory. It didn't help with numerical methods. Sure, I could go around and see if new operations I learned about formed, say, rings, and I'm sure a lot of them do, but that was never used in theorems or demonstrations in those fields (the way I was taught them, anyway). It was only ever a set of definitions. And almost everything I've seen browsing on category theory seemed the same - like it's just definitions, new names for old concepts, with few theorems shown that elucidate the need for these new names. For example, lists and optionals and Either are monads. IO is also a monad. The most I've seen make use of knowing this fact is some nice-ish syntax sugar that works for all 3 of these seemingly disparate concepts. But even then, the 'work' for enabling that sugar seems to be done by the simple properties of the monad, more than some theorem that had been proven on monads in general. Are there some examples of common CS abstractions that are almost but not quite category theory constructs? Are there any simple examples where we get new proofs by recognizing that some old CS concept is, say, a monad? I understand your point about theorems for free in principle, but I have never seen one in these kinds of discussions (at least, not one that wasn't also a definition, e.g. if X is a monad than Y must be a functor).
- davidxc 7y agoI believe my real analysis class made me a significantly better programmer and thinker in general, but I don't use anything specific from it (not yet, anyway).
- umanwizard 7y agoWhat does real analysis have to do with category theory?
- BeetleB 7y agoGenuinely curious how real analysis made you a better programmer...? I've taken it and loved it, but my interest was more due to physics/engineering applications. I can't see a connection to programming.
- atq2119 7y agoI suspect it could be that real analysis truly makes you challenge your assumptions and forces you to build a habit of thinking through corner cases. Other maths courses do this as well, but real analysis is particularly vivid for some people because of all the fun counter-examples you get to see in a well-taught course, such as a function that is everywhere continuous but nowhere differentiable. This habit of thinking through corner cases is something I miss from a lot of (junior) programmers.
- tutfbhuf 7y agoThe chain goes like this: Everyone's favorite programming language (Python, JS, ...) gets (much of) their concepts from Haskell and Haskell gets its concepts from category theory. Thus, by studying CT you enable yourself to see these concepts in the programming languages you use at work. This can make it easier for you to read, write and reason about programs, since you are provided with new (previously unknown) ways to think about it.