PurelyFunctional.tv Newsletter 240: The revolution will not be computerized.
From OO to Clojure Workshop!
Watch my free workshop to help you learn Clojure faster and shift your paradigm to functional.
Issue 240 - August 28, 2017
Thanks so much for all the help on the programming paradigms article. I got so many detailed responses I'm still going through it all. It seems like I've hit a nerve. I'll let you know when I publish the final version.
Oh, and I'll be speaking at the Conj this year. (Can you believe Clojure is turning 10?) I'll be talking about how a little High School Algebra can really up your Functional Programming game.
Please enjoy the issue.
PS Want to get this in your email? Subscribe!
I'm running a quick giveaway this week. You can enter to win 3 awesome Clojure books (Clojure for the Brave and True, Living Clojure, and Clojure Applied). And the more you share the giveaway, the more chances you get to win. Please enter today. I'll do the drawing next week.
Evan Czaplicki's Keynote YouTube
I'm a big fan of Evan Czaplicki, the creator and leader of the Elm language. In this talk, he is trying to show beginners what the process of programming in Elm looks like. It's a question I hear a lot in the Clojure context as well.
In response to my paradigm article, a lot of people asked me to recommend some Alan Kay talks. Well, this is the big one that you absolutely must watch.
Will Byrd is well-loved in the Clojure community and I'm so excited he will be speaking at Clojure SYNC about the history of writing. I also posted a tentative schedule and a little background behind it. Get on the mailing list and buy tickets before the early bird discount expires in a few weeks.
Nothing is Something YouTube
This is a really great talk by Sandi Metz. I like it because she shows
the real nature of the OO paradigm, which is that everything is message
passing. She gives an example of how Smalltalk did conditionals, which
was to call the
ifTrue method and pass two functions, a
then and an
False class was implemented to call the
and everything else called
then. The different branches were
determined by different method implementations.
It's amazing how closely some Smalltalk class definitions map to very succinct Clojure or Haskell definitions. Smalltalk uses pattern matching and recusive message passing. Haskell uses pattern matching and recursive function calls. The languages use different units of computation (message pass vs. function application), but the same solution emerges—probably because it's the most elegant solution. But that also gives me confidence that functional programming is not just about modeling problems with function applications. That simply doesn't account for the important difference.
I also think it's telling that so many of the people defining the principles and methodologies of OOP are former Smalltalkers. Sandi Metz, Kent Beck, and even the Design Patterns Gang of Four were Smalltalkers. Working in a language that really encouraged the paradigm has made them role models for those who don't have the luxury but still want to program OO.
Programming across paradigms YouTube
Anjana Sofia Vakil has a different but similar take on paradigms. It is really valuable to have so many perspectives.