Keynote: Functionalist programming language design

May 17, 2018

Speakers

About

The word "function" in "functional programming" refers to mathematical concept of a function, but in this talk, I will pretend that that's not the case. Imagine that functional programming was instead inspired by functionalist architecture and the word "function" referred to the modernist design principle that "form follows function". How would this perspective transform our thinking about programming? Using a number of practical F# examples, I will try to convince you that "function" in the design sense is already more useful for understanding what makes functional programming great than "function" in the mathematical sense. Along the way, I will go through a number of interesting language features and libraries available in F# that have close, but not quite equivalent cousins in Scala. We will look at the design principles behind "type providers" which provide an easy way to integrate external data sources into the language; we will look at ""asynchronous workflows"" which is the F# way for writing non-blocking computations and I will reflect on the cautious F# approach to meta-programming. I might not be able to retroactively change what "functional programming" means in just one talk, but I will try nevertheless! Tomas is a computer scientist and open-source developer. He is a Visiting Researcher at the Alan Turing Institute working on tools for open data-driven storytelling (http://thegamma.net). He wrote a popular book called "Real-World Functional Programming" and is a lead developer of several F# open-source libraries. He is a partner at fsharpWorks (http://fsharpworks.com) where he provides trainings and consulting services. Tomas' PhD thesis at the University of Cambridge introduced coeffects – a theoretical basis for context-aware programming – but his most recent writings also includes three essays try to understand programming through the perspective of philosophy of science.

Organizer

Categories

About Scala Days

Scala Days brings together developers from all corners of the world to share their experiences and new ideas around creating applications with Scala and related technologies, like Spark, Kafka, and Akka. Scala Days provides a unique opportunity for Scala users to interact with the contributors to the language and related technologies and connect with fellow developers.

Store presentation

Should this presentation be stored for 1000 years?

How do we store presentations

Total of 0 viewers voted for saving the presentation to eternal vault which is 0.0%

Sharing

Recommended Videos

Presentations on similar topic, category or speaker

Interested in talks like this? Follow Scala Days