Haskell eXchange 2013

Topics covered at #haskellx

Wednesday, 9th October in London

7 experts spoke.

This dedicated Haskell conference will pull together enthusiasts, developers, and thought leaders across the Haskell ecosystem. To keynote the conference we're excited to announce that we've got Simon Peyton Jones! Alongside Simon we've secured talks from Simon Marlow, Neil Mitchell, and Andres Loh.

Excited? Share it!


Compiling Haskell to Javascript with Fay

In this SkillsCast recording of a talk by Adam Bergmark, you will be able to get an introduction to Fay, a subset of Haskell that compiles to JavaScript.

Adam compares different strategies for compiling to JavaScript; what they offer from a Haskell perspective, and what's important when working with web browsers and the existing JavaScript ecosystem.

You will also see examples of how to get started with Fay covering the most important features of the language and the compiler.

About Fay - Fay is a proper subset of Haskell that compiles to JavaScript.

About Haskell - Haskell is an advanced purely-functional programming language. An open-source product of more than twenty years of cutting-edge research, it allows rapid development of robust, concise, correct software. With strong support for integration with other languages, built-in concurrency and parallelism, debuggers, profilers, rich libraries and an active community, Haskell makes it easier to produce flexible, maintainable, high-quality software. You can find lots of haskell related talks, meetups, skills casts, conferences and courses by Skills Matter's community here.

About JavaScript - JavaScript (JS) is a dynamic computer programming language.[5] It is most commonly used as part of web browsers, whose implementations allow client-side scripts to interact with the user, control the browser, communicate asynchronously, and alter the document content that is displayed.[5] It is also being used in server-side network programming (with Node.js), game development and the creation of desktop and mobile applications (according to Wikipedia).

Go here for lots of Javascript related talks, meetups, conferences, hackathons, courses and SkillsCasts created for and by the Skills Matter community.

Adam Bergmark

Adam is a software engineer with a deep love for functional programming and Haskell.

Monads for free!

When writing programs, it often turns out to be useful to separate the description of what to do from a concrete implementation that actually performs the actions. You can do so by turning your descriptions into pure data. Then you can analyze them, transform them, and ultimately interpret them in any way you like.

If your descriptions are imperative in nature, it's natural to try to make them monadic. But the usual suspects such as Maybe, State, or IO aren't quite suitable here: they all add a concrete monadic effect, but we'd just like to obtain an abstract description of a sequential program, that we can later interpret in a concrete way. This is what "free" monads give you. In this talk, we'll discuss what free monads are, how they work, and how you can use them.

Andres Löh

Andres Löh is a Haskell consultant and co-owner of Well-Typed LLP. He is based in Regensburg, Germany. He started using Haskell in 1997, when being an undergraduate student of mathematics in Konstanz and has been an enthusiastic functional programmer ever since. Andres obtained a PhD in Computer Science from Utrecht University in 2004, on extending the Haskell language with capabilities for datatype-generic programming. After having been a university lecturer for several years, he joined Well-Typed in 2010.

The Haxl Project at Facebook

Writing code in an environment as large and complex as Facebook involves talking to many different back-end services, including databases, search engines, caches, and so forth. Each of these data sources has different characteristics and requires different access patterns to make best use of its resources.

Typical front-end code will need to access many of these resources concurrently, but the programmer doesn't want to be concerned with the details of how best to access each resource. Moreover, we want to be able to write our code in a modular way and yet have concurrent accesses to the back-end services automatically batched and overlapped for us.

This talk describes a system that we're building using Haskell that allows the front-end programmer writing business logic to access all the back-end services in a concise and consistent way, while the system handles batching and overlapping of requests to multiple data sources behind the scenes. The programming model is one of implicit concurrency: there's no fork or async operation, all external data access is implicitly performed in parallel where possible.

Simon Marlow

Software Engineer

Everyone should use a Generics library - writing HLint with Uniplate

A generics library allows programmers to express only the interesting part of certain tasks, avoiding lots of boilerplate and making the code significantly shorter and more maintainable. Haskell is awash with excellent generics libraries, including Scrap Your Boilerplate, Generics for the Masses, Generic Deriving and Uniplate, yet many developers will never have used any of them. This talk explains how to use the Uniplate generics library, using examples derived from the Haskell Lint tool (HLint), which makes extensive use of Uniplate.

Neil Mitchell

Neil Mitchell is a Haskell programmer who lives in Cambridge with his wife Emily and his son Henry. Neil has a PhD in Computer Science from York University, working on making functional programs shorter, faster and safer. Since then he's worked with F# at Credit Suisse and Haskell/F#/C++ at Standard Chartered and Barclays, taking the lessons of functional programming and applying them in finance.

Lenses: compositional data access and manipulation.

Haskell lets you write beautiful, modular code. Rather than waffle generally, I’ll use this talk to look at a particular example, Edward Kmett’s lovely lens library. Lenses have been called “jQuery for data types”: they give you a way to poke around in the guts of some large aggregate structure. Lenses compose (so you can make big lenses by gluing together little ones), and they exploit type classes to allow a remarkable degree of flexibility (get, set, fold, traverse, etc).

One of Haskell’s most egregious shortcomings is that you can’t use the same field name in different record types. I’ll explain how we are planning to fix that (joint work with Adam Gundry), and how the result will fit nicely into the lens world.

Simon Peyton Jones

Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. Simon was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.

After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University before moving to Microsoft Research (Cambridge) in 1998.

His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines.

More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that's one reason he loves functional programming so much.

Embedded domain specific languages at Scrive

Embedded domain specific language is a particular flavor of a library with domain specific syntax, functions and types. Solutions to many problems naturally gravitate to finally take the form of an EDSL. Haskell is a particularly good host language for EDSLs. This talk presents a couple of domain specific languages that we happen to use at Scrive with lessons that we learned along the way.

Gracjan Polak

Gracjan Polak, founder of Scrive AB in 2010. Haskell is his favorite language due to static typing and purity. Other skills include Erlang,Ruby and piles of C++. Tried to get PhD at Technical Univ. Krakow, gave up half way through. Thinks that cyclin

Haskell at Erudify

As a senior software engineer at Erudify, Bas Van Dijk takes us through how he has employed Haskell at the Switzerland based start-up. Leader of Zurich's Haskell community Bas regularly takes a hands on approach in teaching error and exception handling in Haskell, as well as software transactional memory.

In this session Bas highlights what, from his experience, are the strengths and weaknesses of Haskell from both a technical as well as a business perspective.

Bas van Dijk

Bas is a CTO at LumiGuide.

Other Years