The functional programming people as of late have fallen in love with jargon words like “functor”, “monoid”, etc., which they bandy about as if they had discovered something exciting. These terms come from an obscure branch of math known as Category Theory. It is an example of a theory that was invented that is in search of problems. Unlike the great breakthroughs of the past which were predominantly motivated by solving a problem in the real world, like the motions of the heavens which motivated Leibniz, Newton, Lagrange, etc., Category theory came out of algebraic topology, an extremely lofty section of mathematics that has almost no practical applications. The fundamental theorems of category theory have nothing to do with programming. The fundamental theorems are:
The general adjoint functor theorem
Freyd's representability criterion
Beck's monadacity theorem
Recognition theorems for locally presentable categories
Brown's representability theorem
These theorems don’t relate to programming at all, but Algebraic topology has a great practical use as a sleep aid. I can’t think anything that is much more abstract, and my brain’s natural reaction to being boggled is to go to sleep where i can concentrate without sensory distractions.
Unfortunately programmers are using category theory jargon to enhance their priesthood status as magicians who can mumble secret incantations and impress the uneducated, and to me this tarnishes the work of high algebraists who frankly don’t care much about programming.
Programming to most math geniuses is a trivial field. The Intel and ARM architectures which underlie 99% of all computers today are so boring inside that mathematicians don’t pay much attention to them.The fantasy that category theory is going to bring us into an era of interchangeable parts in software, and that programming errors will disappear is not going to be realized from a base of category theory.
TD; LR: Category theory is a dry hole for programmers.