Functional Programming - Perfectly Said

I have a half-written post sitting on my computer about my frustration regarding the conversation regarding functional programming and to a lesser degree regarding Swift. It was initially prompted by a conversation between Gordon Fontenot’s on this (?) Episode of Build Phase. The short version of my post is that in one breath Gordon acknowledges that despite his excitement about functional programming that it is indeed hard, but in the next seem dismissive of the complaints of non-functional programmers regarding functional programming (“it is just as intuitive as imperative programming! It’s just different!”). I was super-excited that he was talking about this, but super frustrated with where he ended up.

So, instead of getting around to writing the post, I just let time pass and let Gordon do all the heavy lifting on addressing these issues better.

First, he wrote a phenomenally good post on Currying functions, perfectly in the spirit of “explain this to me like I’m stupid”. It was really well structured, working from obvious to thorough, step by step. I finally got currying.

Then, in today’s episode he and Mark Adams had a great conversation about the perils of talking about Swift and functional programming as you are sliding down the slippery slope of a new paradigm. He said everything regarding humility of knowing and teaching that I could have hoped for.

Basically, once you have moved into a new paradigm, it is very, very tricky to talk to others that are not themselves in that paradigm, because you yourself forget how strange the concepts you think about every day seem to them.

So, keep up the good work guys, I look forward to your episodes every week. Glad the holiday break is over!


Now read this

CSV to Multi-Markdown Tables

One person noticed yesterday’s yak-shaving and liked it, which was all the excuse I needed to shave it some more. But I am good to go for now, though this still is still fairly fragile: you have to select only the table lines, there’s no... Continue →