Daniel King Curry On 2017 Interview

Daniel King will be giving a talk at Curry On 2017. His talk is called Building Tools and Languages for Terabyte Scale Biology: A Call to Action.

Follow him on his Homepage, GitHub and Twitter.

PurelyFunctional.tv: How did you get into Functional Programming?

Daniel King: I was first exposed to functional programming in a fundamentals of computer science class during my undergraduate education. The class was taught using Scheme. I was really impressed by the concision and expressiveness of lambda expressions. This was a stark contrast to my prior experiences with Java and C.

PF.tv: What is your talk about?

DK: My talk is about Biology and how the software engineering community can better serve Biology, particularly the sub-fields of "transcriptomics" (e.g. DNA sequencing, RNA sequencing) which are generating extremely large high-dimensional, tensorial datasets that will elucidate the genetic foundations of disease.

PF.tv: Who is your talk for?

DK: My talk is for anyone with a background in software engineering, but particularly those who want to use computer science to have a positive impact on humanity.

PF.tv: What do you hope people will take away from the talk?

DK: I hope the audience will appreciate the rich computational problem space presented by modern biology. I particularly hope some audience members will be inspired to join me in writing software for biologists.

PF.tv: What concepts do you recommend people be familiar with to maximize their experience with the talk?

DK: Experience with Spark helps.

PF.tv: What resources are available for people who want to study up before the talk?

DK: I mostly learned by repeated failures, but I've heard good things about the edX course on Spark.

PF.tv: Where can people follow you online?

DK: I'm on twitter: @danking00

PF.tv: Are there any proje cts you'd like people to be aware of? How can people help out?

DK: I'd love people to contribute to Hail, our project for analyzing statistical genetics data. Our long term goal is to become the "Spark Dataframe" of high-dimensional, tensorial data.

PF.tv: Where do you see the state of functional programming in 10 years?

DK: Man, I have no idea. Quickcheck was published 17 years ago. Java got generics 13 years ago. In ten years many things that are inaccessible to most programmers will become built-in to mainstream languages (read: Java), I'm thinking of: dependently typed matrix dimensions and other automatically proven dependent types (a la Liquid Haskell), SMT solvers right in the language (a la, and perhaps tighter integration of visualization and plotting libraries.

I also think something needs to be done about the performance-expression ratio in high-level languages. I want to describe algorithms with the Scala collections API and get bytecode that uses jumps and mutation. I waste so much time in my job manually compiling code using Scala collections to while loops. I need an API that lets me declaratively describe the solution AND specify how to implement it efficiently.

PF.tv: If functional programming were a superhero, what superpower would it have?

DK: Creating hype