ALTERNATE UNIVERSE DEV

Functional Geekery

Functional Geekery Episode 70 - Simon Thompson

In this episode I talk with Simon Thompson. We cover a broad range of topics from a history of functional programming from the 1980s, to his involvement with Haskell, teaching Haskell and Erlang, the functional programming hype cycle, recent and future work, and much, much more.

Our Guest, Simon Thompson

https://www.cs.kent.ac.uk/people/staff/sjt/
@thompson_si on Twitter
https://profsjt.blogspot.co.uk/

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.

ClojureD will be taking place on the 25th of February, 2017, in Berlin, Germany. Visit www.clojured.de to submit your talk, get tickets 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 Professor Thompson
University of Kent
Overview of Functional Programming in the 1980’s
Functional Programming and its Applications: An Advanced Course by Peter Henderson, David Turner, and John Darlington
SASL – Saint Andrew’s Static Language
Alice
Hope
KRC – Kent Recursive Calculator
Miranda
Functional Programming and Computer Architecture conference
“Revolutionary new architectures that only functional programming languages would work with”
David Turner saying “I am sure by 2000, mathematicians will use automated proof as a matter of course”
Haskell
Simon Peyton Jones
What Professor Thompson worked on in Haskell
Haskell: The Craft of Functional Programming
Type Theory and Functional Programming [pdf]
Work on input in Miranda as streams of Input and Output
Year of Programming
Input/Output as combinators which became the precursor to monads
Interactive functional programs: a method and a formal semantics
Turning Haskell programs into logical formulas
Ericsson and Erlang
Open Source strengthening Haskell and Erlang
Cabal
Hackage
WhatsApp
Elixir
Scala
Java
View of the recent hype cycle of functional programming
“People are so scared to program Java on a 100-core machine, they haven’t come into the mainstream”
Seeing the change in jobs doing functional programming
Professor Thompson’s work over the past 10 years
Refactoring tooling
Randomly generate programs and randomly apply refactorings
OCaml
Z3 SMT solver
CakeML
Prove refactoring in CakeML
JaneStreet
Wrangler
Creating a DSL for scripting refactorings
Overview of differences between Haskell and Erlang
Laziness in Haskell
Differences between the size of the languages
Simulating a dependency typed language in Haskell
Differences in the rates of release in new versions of the languages
Central place to have a place to upload and download software libraries
Differences between first exposures to Erlang and Haskell for students
Erlang is more approachable due to smaller syntax
Notation for lists in Erlang is a stumbling block for students
Erlang’s weak types as a weakness for beginners
Dialyzer
Success Typing
Complexity of Type System in Haskell and errors for beginners
Benefit of simple syntax and concurrency story for beginners in Erlang
Haskell as a laboratory for concurrency ideas
Thoughts on teaching students functional programming ideas
Erlang MOOC preliminary launch
Erlang MOOC to be coming in Spring 2017
Recursion
Threads vs Processes in Erlang for experienced programmers
“Let the concurrency in the program mirror the concurrency in the real world”
“It would be lovely to do some work […] to validate these claims”
OSCON
CodeMesh
Importance of bottom up development of learning materials
Peter Landin Semantic Seminar
Erlang MOOC composed of two “mini-MOOCs”
“Give it a try”
“Different languages have different things to offer”

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

Episode source