Recap: Northeast Scala 2014 Day 2
I was in NY this past weekend attending nescala 2014 day 2. The day was organized as an unconference. I managed to attend a few presentations, namely Functional Reactive Programming, Concurrent Revisions, and Batshit-crazy Algebra with Types (full unconference grid is here). Here are my notes.
Functional Reactive Programming
The basic idea of FRP is explained on this Stackoverflow page: What is (functional) reactive programming?
If I had to boil it down, I might say something like this: imagine you can have variables that change over time as first class entities, and then you incorporate these variables into other calculations or reference them elsewhere, and when they change, all dependent calculations "react" automatically and change, too. Now try to do this in a functional way. Under the covers this works through a directed acyclic graph (DAG) that maintains what depends on what.
Here are some resources for follow-up:
Concurrent Programming with Revisions and Isolation Types
Batshit-crazy Algebra with Types
I always enjoy going to Scala meetups and watching talks on type theory, especially ones that create great "aha!" moments. This was one of those talks. The talk was by Jon Pretty. Here are the slides.
The slides alone can't do justice to how well Jon presented the topic, so you might want to look at a series of blog posts by Chris Taylor starting with The Algebra of Algebraic Data Types, Part 1. Chris is listed as inspiration for Jon's talk.
Someone in the audience also suggested these books (some of which might free online):
- Analytic Combinatorics
- Generating Functionalogy
- Enumerator Combinatorics
I'm not sure if this talk has much practical application, but it presents another way of looking at the world which will expand your mind as a programmer. For those of us that don't live and breathe algebraic types, Jon helps you make a few mental leaps that might just surprise you.