In this episode I talk with Eric Smith. We talk about his introduction to functional programming and what he looks at from a organizational perspective, his interest in the history of computation, and covers some thoughts on how we should be introducing people to programming with lessons learned from digging into the history of computation.
Our Guest, Eric Smith
Eric is @eric_s_smith on Twitter
Middlebury Interactive Languages
Sponsors
This episode is sponsored by PurelyFunctional.tv. PurelyFunctional.tv’s Online Mentoring has just launched. It is step-by-step online mentoring that takes you from Clojure dabbler to Clojure professional. Sign up with the link purelyfunctional.tv/geekery to get 50% off the first month!
Announcements
LambdaDays 2016 will be taking place on the 18th and 19th of February in Kraków, Poland. The CFP and registration has opened, so make sure to visit lambdadays.org to find out more. And make sure to use code FunkyGeekz4dWin to get 10% off registration.
:clojureD 2016 will be taking place on the 20th of February in Berlin, Germany. The CFP has opened, so make sure to visit www.clojured.de/ to find out more.
If you have a conference related to functional programming, contact me, and I will be happy to announce it.
Topics
About Eric Smith
Vermont Functional Programming user group
One of Eric’s talks at VT Fun
How Eric got into software development
Personal language evolution and introduction to Functional Programming
Architecture the Lost Years by “Uncle Bob” Martin
“Keep the interface with the world at the outside layer of the onion”
“Recursive Functions for going over data collections”
Common Lisp, Clojure, Haskell, and Scala
PureScript
What Eric liked about the different languages from both a personal and work place organization perspective
“Setting the bar high is actually helpful”
Daniel Spiewak
May Your Data Ever Be Coherent
Separation between what you are trying to express and your control flow
Peter Landin’s The Next 700 Languages
Thinking in State Transitions vs Composition
Statement vs Expression based languages
Denotational Semantics
Peter Landin, Christopher Strachey, and Dana Scott
Eric’s interest in the history of computing
“Victim of an industry that has prioritized moving forward or getting things done vs getting things done in a sustainable or scalable way”
Presper Eckert and the von Neumann architecture
“We’ve lost sight of what was happening at the very beginning”
Kurt Gödel’s Proof of Incompleteness (in English) and in original German
Gödel Numbering
Lambda Calculus by Alanzo Church
Recursive Functions of Symbolic Expressions by John McCarthy
What drove Eric to dig into the history of computing
“As a manager, I was inheriting fairly large code bases that were a mess”
Let’s be mainstream! by Evan Czaplicki
“We would not teach people imperative programming as a beginning thing, and that would be something reserved for experts”
Functional Reactive Programming
Elm
big-bang in Racket
Other lessons of history that people should know of
On the basis of the mathematical theory of computation by John McCarthy
Peter Landin
ISWIM
Robert Floyd, Assigning Meaning to Programs
C.A.R. Hoare
John Backus’ and his Can Programming Be Liberated from the von Neumann Style
Speedcoding
How to Design Programs
Systematic Program Design from edX
QuickCheck
F# for Fun and Profit from Scott Wlaschin
Sum Types
Curry-Howard isomorphism
Property Based Testing
Edsger Dijkstra’s Structured Programming
“Forces you to think about the properties of what comes out of your function”
Scott Wlaschin’s An introduction to property based testing
How to Design Worlds
PureScript by Example by Phil Freeman
As always, a giant Thank You goes to David Belcher for the logo design.