Having Pure Fun on the Web With Haskell*
Practical programming in Haskell: is that an oxymoron? Not at all: in recent years, many programmers have joined together to create a vibrant library ecosystem for the Haskell programming language. In this interactive workshop, you will see the skeleton of a web service implemented in Haskell, then write your own code to implement the missing pieces. Whether you go on to learn more Haskell or just apply new ideas to your work in any language, you'll leave knowing the Haskell is pure fun.
Practical programming in Haskell: is that an oxymoron? Not at all: in recent years, many programmers have joined together to create a vibrant library ecosystem for the Haskell programming language. People like to write code in Haskell because it’s cool: by using features like higher-order functions, pattern-matching, and laziness, you can say more in fewer lines of code. And Haskell’s flexible and powerful type system means you don’t have to sacrifice readability and maintainability for conciseness. In this interactive workshop, you will see the skeleton of a web service implemented in Haskell, then write your own code to implement the missing pieces.
Even if you’ve never seen Haskell before, join us to find out how to write elegant code. There’s no mystery to learning Haskell: we’ll find out together what all those features actually mean and build a simple web service that really works. Haskell is fun. It’s also more approachable and practical than ever, with a great community to turn to when you have a problem. In this workshop, you’ll gain new ways to think about programming in any language (though once you’ve seen Haskell, you may not want to go back!)
This is a code-along session, using FP Complete’s online IDE for Haskell. So bring your laptop, but there’s no need to install anything in advance (except a Web browser!) Using the Happstack server, we’ll develop a simple web service (an anagram server), learning functional programming concepts by example, along the way. You’ll find out how Haskell makes it easier to write web services, and maybe even learn what a monad really is.
You’ll get the most out of this session if you have programmed before, but you don’t have to have any experience with functional programming. You’ll learn about all the basics of Haskell through code examples. Expect to learn about recursion, string processing using higher-order list functions, pattern-matching on algebraic data types, writing effectful code, and using Happstack to write a simple HTTP server. If time permits, you may also hear a little about testing with QuickCheck and using the Threepenny library to make GUIs. You’ll get to walk through the code for a partially-implemented server in a participatory/lecture format, and in the remainder of the session you’ll have a chance to pair-program to fill in the blanks to make a working system. You’ll leave prepared to continue on your Haskell adventure or just code more confidently in any language.
Haskell, web, functional-programming
I spoke at Open Source Bridge 2013: http://opensourcebridge.org/sessions/970
I have also spoken at the Haskell Implementors' Workshop (2009) and at the Portland Functional Programming Study Group (pdxfunc), as well as at Portland State University when i was a student there. This talk will be entirely new.
I’ve been programming in Haskell for 14 years. After a 3-year sojourn at Mozilla working on the Rust team, I returned to functional programming as a software engineer at AlephCloud Systems. I studied computer science at Portland State University; the University of California, Berkeley; and Wellesley College. I’ve been contributing to open-source projects for ten years. When I’m not writing code, I like to write about social and political issues, ride my bicycle, and play with my cats.