Haskell is a statically typed functional language with a robust and feature-full compiler and a large set of high-quality libraries. This tutorial shows you how to write Haskell programs that are ready for the real world.
In this tutorial, we study the internals of a message-queue system implemented in Haskell. Along the way, we will learn how to properly deal with network programming, serialization, persistence, logging, performance, scalability, testing, and concurrency. We start with a very simple message-queue system. The participants will then extend the system and add new features to it.
The tutorial teaches you important techniques for writing correct, robust, scalable, and fast Haskell programs. The topics covered are: network programming, serialization, persistence, logging, performance, scalability, testing, and concurrency.
The tutorial aims at programmers with some Haskell experience. It is not necessary to be an Haskell expert, but you should know how to write functions and data types.
Participants should bring a laptop with the current version of the Haskell platform (2013.2.0.0) installed. A list of additional packages will be made available soon.
Stefan Wehr works for factis research GmbH, where he designs and develops large distributed software systems in Haskell. He has more than ten years of experience with Haskell. Back in 2010, he received his PhD from the University of Freiburg, Germany, for research on combining object-oriented and functional programming techniques.
Emin Karayel works for factis research GmbH and has more than ten years of experience in software engineering, with a focus on the design of algorithms for natural language processing, machine learning and information retrieval. He has been using Haskell professionally for one year.