QCon is a practitioner-driven conference designed for technical team leads, architects, and project managers who influence software innovation in their teams.

Presentation: "Asynchronous programming on the server and the client in F#"

Track: The Rise of Scala & Functional Programming / Time: Friday 16:40 - 17:40 / Location: St. James

Asynchronous workflows have been one of the killer features of F#. With await and async keywords in C# 5.0 and similar features in Dart, the language support for asynchrony is becoming a must have. It is the key to writing scalable server-side applications that do not block a thread for each concurrent request, but also to writing responsive user-interfaces that do not hang when calling a service or performing background computation.

In this talk, we look how to effectively use F# asynchronous workflows on both sides of a client/server application. On the server-side, we can naturally express the communication without using callbacks, while keeping the scalability of event-driven code. On the client-side, we get a powerful way of expressing state-machines behind user interaction, without the inversion of control and the use of mutable state. Thanks to the Pit project, we will also be able to deploy the client-side as a JavaScript application.

Download slides

Tomas Petricek, Author of a book Real-World Functional Programming

Tomas Petricek

Biography: Tomas Petricek

Tomas is a Microsoft MVP, long-time F# enthusiast and author of a book Real-World Functional Programming (http://manning.com/petricek) which explains functional programming concepts using C# 3.0 teaching F# alongside. He writes a programming blog (http://tomasp.net/blog) and is an active member of the F#unctional Londoners group. Together with Phil Trelford, he leads functional programming and F# courses in London and New York. He contributed to the development of F# during two internships at Microsoft Research in Cambridge. Before starting PhD at Cambridge, he studied in Prague and worked as an independent .NET consultant.