DEV Community

Functional Geekery

Functional Geekery Episode 69 - Bartosz Milewski

In this episode I talk with Bartosz Milewski. We talk his introduction to category theory, teaching category theory, comparison of Monads and other composition patterns in functional programming to composition patterns in object oriented programming, and finish with some philosophical thoughts on category theory.

Our Guest, Bartosz Milewski

@bartoszmilewski on Twitter
https://bartoszmilewski.com/
Bartosz’s YouTube channel for his category theory videos

Announcements

EuroClojure is coming up in Bratislava, Slovakia from October 25-26. Visit http://euroclojure.org/ to find out more, register, or sign up for their mailing list.

The 2016 edition of ScalaIO will take place in Lyon, France, on 27th and 28th of October. Visit http://scala.io/ for more information and to register.

CodeMesh is taking place the 3rd and 4th of November with tutorials on the 2nd of November. Tickets are available now, but they are going fast. Visit codemesh.io to register and submit your talk.

Scala Wave is coming up on the 25th and 26th of November in Gdańsk, Poland. Visit http://www.scalawave.io/ to find out more and sign up for their newsletter for updates.

Destination Code, a new unconference starting in Utah, is having its inaugural event this December. Visit http://www.destination.codes/ to find out more.

The 2016 Clojure Conj will be taking place in Austin, TX on December 1st – 3rd. Visit http://2016.clojure-conj.org for more information and to register.

Lambda Days will be taking place again on the 9th and 10th of February 2017. Visit www.lambdadays.org to submit your talk and keep updated as more information becomes available.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Bartosz
Bartosz’s videos on category theory on YouTube
How Bartosz became exposed to category theory
Elegant code, and what does it mean for code to be elegant?
Exposure to functional programming through C++
Template meta-programming in C++
Andrei Alexandrescu’s Modern C++ Design: Generic Programming and Design Patterns Applied
Haskell
Translating functional solutions in Haskell to C++
Exposure to category theory
Categories for the Working Mathematician
Edward Kmett
Understanding category theory through examples
What clicked about category theory once Bartosz “got it”
“Category Theory can be simplified to just two things, composition and identity”
Futures in C++
Futures are monads
“Monads are just about how to compose stuff”
Bartosz’s posts on Futures
Broken promises–C++0x futures
Futures done right
C++17: I See a Monad in Your Future!
“You cannot design a good library, if you don’t understand category theory, or at least elements of it”
Category of Types and Functions
“A composition is the essence of a category”
“A monad is a way about composing side-effects”
Category theory patterns become hard to understand because they are so general
Function composition in an imperative language
“A monad is the overloading of a semicolon”
Background of attendees in his courses
Interest in teaching category theory to artists and other domains
Curry-Howard Isomorphism
“You take a concept from logic, you can translate it almost mechanically to a concept in programming, and visa versa”
LamdaDays 2016
Philip Wadler’s keynote on Curry-Howard Isomorphism at LambdaDays 2016
Bartosz’s Curry-Howard-Lambek Isomorphism at LambdaDays 2016
Imposing structure on the universe because that is the only way we can understand stuff
Wondering if “mathematics is just the way of studying our minds rather than an objective reality”
“If category theory is the study of the human mind, then everything must follow the laws of category”
Possibility to take category theory and explain it using examples from other domains
Introduction to Category Theory talk as a starting point
How useful it is to learn category theory???
“I think that getting this higher-level view […] drives you to better solutions”
Importance of keeping your mind open because you never know when something will be useful

As always, a giant Thank You goes to David Belcher for the logo design.

Episode source