A large software project is more than just the code that goes into a release, in particular you need lots of glue code to put everything together - including build systems, test harnesses, installer generators etc. While the choice of language for the project is often a carefully considered decision, more often than not the glue code consists of shell scripts and Makefiles. But just as functional programming provides a better way to write the project, it also provides a better way to write the glue code. This talk covers some of the technologies and approaches we use at Standard Chartered to glue together the quant library. In particular, we'll focus on the build system where we replaced 10,000 lines of Makefiles with 1,000 lines of Haskell which builds the project twice as fast. We'll also look at how to test programs using Haskell, how to replace ancillary shell scripts with Haskell, and how to use Haskell to generate installers.
Talk objectives: The talk aims to show that functional programming is suitable as the glue language for putting together large projects, regardless of the language the project itself uses.
Target audience: The talk should be interesting to anyone putting together a large project or interested in using functional programming in new domains.
Neil is a Haskell programmer who works in the quant group at Standard Chartered Bank. He obtained his Ph.D. in functional programming from the University of York in 2008. His open source projects include a search engine (Hoogle), a codesuggestion tool (HLint), and a library for writing build systems (Shake).