In this episode Wouter Swiestra and Niki Vazou talk with Conal Elliott. Conal discusses doing things just for the poetry, how most programs miss their purpose, and the simplest way to ask a question. Conal is currently working on a book about his ideas and actively looking for partners.
Around the 10:00 mark, Wouter remarks that even in Agda, the code you see is the result of an iterative process. The process of constructing the proof is not present in the final code. Conal says that he wants to get back to that observation at a later point, but I don’t think they did come back to it. Is that right?
“Beauty” is an underrated value among programmers, the (im)possibility of a beautiful solution tells you something about the nature of the problem itself… not just being a merit of its own!
the Godfather (along with Paul Hudak) of FRP.
I got into FRP by way of FP. I mistakenly conflated the two.
In the early 2000’s when I was starting my journey, I looked into the bleeding edge of software. At the time, people were talking about RxSwift.
So, I looked into functional reactive programming. I searched for podcasts and information on it but found nothing but Functional programming. Thinking they were the same thing (or at least closely related), I started to learn (as one does) about category theory and all of the foundations for functional programming. That learning brought me through years and years until I finally came to the realization that FRP is an entirely different paradigm (but is based on the foundation laid by FP). The best realization was that it was inextricably related to functional programming which I now had a very solid grasp.
As I finally feel ready to study FRP, the explanation that Conal did in one of his talks really helped me to finally make the connection. He used the analogy of vector images (which have the ability to achieve infinite resolution or scale infinitely) to describe FRP. Just as vector images are infinitely expandable, functional reactive programming (in contrast to FP which intentionally has no concept of time) works with time where time is infinitely scalable like a vector image. This one analogy BLEW MY MIND and made everything lock into place with perfect clarity just as Conal seeks to do in his work.
I’m so thankful for Conal. His brilliance, wisdom, and commitment to beauty and elegance is invaluable in our world. Building an app with his (and Paul Hudak RIP ) FRP concept is a revelation; let’s me build software that is safe, dynamic, and elegant all at once.
I sometimes call Conal “the Rick Ruben of the software engineering world”…and I mean that as a high compliment. Much like Conal, Rick tends to strip away the edifice and pretense of the technical to brilliantly dive down to the heart of what he is trying to achieve. Zen in the service of elegance.
I was hoping for a spirited discussion about SMT solvers between Conal and Niki… Ah well I hope there will be a part 2 : )
Yeah it felt really short. Here’s one that felt incredibly long: Type Theory Forall
At one point toward the end he says something hilarious: (paraphrased because I can’t find where he says it) “if you use Python, you should probably admit that you don’t care to know exactly what your program is doing.”
true!
Conal’s ideas and approach are key ingredients in the ignition of my Haskell (and for that matter, programming) journey. Elegance in mathematics is something that I have grown fond of, and think that it is both of a practical and aesthetic value. It was cool to know about his later work; the existence of a connection between hardware design and category theory is quite amazing.