Category Theory, The essence of interface-based design - Erik Meijer
FooCafe1 HN recommender · recommended in 1 month, 2016-2022
74K views · 11 years ago · talk · evergreen
Erik Meijer argues that category theory is the mathematicians' version of interface-based design. He shows that Java 8 lambdas and method references form a Cartesian closed category.
It is cited as an authoritative take on category theory for programmers and API design.
40:39Category Theory in Life - Eugenia Cheng
Lambda World
113K views • 9 years ago
46:46Category Theory 1.1: Motivation and Philosophy
Bartosz Milewski
394K views • 10 years ago
1:36:54Category Theory by Tom LaGatta
AI Council
73K views • 12 years ago
1:05:51The Functional Programmer's Toolkit - Scott Wlaschin
NDC Conferences
79K views • 7 years ago
1:02:15Lambda Calculus - Fundamentals of Lambda Calculus & Functional Programming in JavaScript
Fullstack Academy
227K views • 9 years ago
1:54:46Lenses, Folds, and Traversals
Edward Kmett
54K views • 13 years ago
1:07:10Brian Beckman: Don't fear the Monad
jasonofthel33t
415K views • 13 years ago
56:58Philip Wadler - Propositions as Types (Lambda Days 2016)
Erlang Solutions
20K views • 10 years ago
1:04:35The Algebra of Algebraic Data Types
London Haskell
27K views • 13 years ago
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
176K views • 9 years ago
40:50Ruby Manor 3 - Programming with Nothing by Tom Stuart
Confreaks
13K views • 13 years ago
45:42Scala Collections: Why Not?
InfoQ
43K views • 12 years ago
1:42:53Edward Kmett - Type Classes vs. the World
Boston Haskell
36K views • 11 years ago
50:49Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019
KanDDDinsky
74K views • 6 years ago
51:40Domain Modeling Made Functional - Scott Wlaschin
NDC Conferences
71K views • 9 years ago
1:33:37Adventure with Types in Haskell - Simon Peyton Jones (Lecture 1)
jasonofthel33t
69K views • 12 years ago
42:43"Propositions as Types" by Philip Wadler
Strange Loop Conference
143K views • 11 years ago
1:12:56Lecture 1A: Overview and Introduction to Lisp
MIT OpenCourseWare
420K views • 7 years ago
42:25Glenn Vanderburg - Cló: The Algorithms of TeX in Clojure
ClojureTV
9K views • 11 years ago
53:56Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure
jasonofthel33t
119K views • 13 years ago
5 comments from Hacker News
> I prefer the academic truth, validated by renowned peers in the industry, presented at acknowledged conferences, to random opinions on the Internet. You don't even know who wrote the IEEE definition and who validated it. Second this isn't academic truth. This is just some arbitrary chosen standard chosen by industry. Not academic at all. In mathematics, the ultimate logical form of academia there is a term for "interfaces". It's called categories, and there's a entire theoretical framework behind it called "Category Theory". This theory of "interfaces" goes beyond just OOP and category theory can be used to foundation-ally describe all of mathematics and function as a sort of replacement of set theory. Don't worship authority for authorities sake. If the IEEE declared 1+1=3 would you believe it? Instead use your own brain. Do my arguments have merit? Does the IEEE definition seem inconsistent? Does my definition make logical sense? If you can think of these things on your own merits instead of blindly following the IEEE then you'll see that the definition of OOP is just something academia hasn't really thought about deeply from a theoretical and mathematical standpoint. OOP is more like a term that comes from applied engineering with very little theoretical foundation. If you want some sort of authority I googled some authoritative talk about category theory explained to programmers: ▶ this video I'm sure maybe you heard of haskell and category theory? Haskell is a purely functi
Also nice: Erik Meijer Explains it well: ▶ this video (check out FP101 on edx) Statebox guys doing stuff with category theory, blockchain and petrinets: link link Graphical linear algebra: link Jules Hedges working on game theory : link
Erik Meijer gave a talk called "Category Theory, The essence of interface-based design" ▶ this video Fundamentally, category theory is seen as some sort of holy grail of programming. The hope is that learning about only one API will let you interact naturally and composably with any interface conforming to that design.
I watched a talk by Erik Meijer [1] recently where he mentioned that an implementation of a tuple such as (C# syntax mine, but illustrates the point) class Tuple<T1, T2> { public Tuple(T1 t1, T2 t2) { } public T1 Item1 => default(T1); // null for reference-types public T2 Item2 => default(T2); // null for reference-types } is a perfectly type-safe implementation of a tuple that's completely nonsense. I'm curious as to how you might actually encode into the type system that the values that come out of Item1 and Item2 are actually the values you put in. I would love to see tests at the interface level (or typeclass level for Haskellers) rather than the implementation level, to enforce that all implementations of an interface satisfy laws like this. In Haskell, this would mean that you could enforce things like monadic laws which we all assume to be true anyway. [1] ▶ this video
Yes! This isn't an accident. Erik Meijer, who contributed extensively to the Reactive Framework at Microsoft, has been very vocal about his use of category theory for software design. ( ▶ this video ) He currently runs Applied Duality which is uses category theory as its guiding design principle ( link )