2005 Commercial Users of Functional Programming
September 24, 2005
Co-located with ICFP

Functional Programming As a Means, Not an End

   The workshop was held September 24, 2005.

The goal of CUFP is to build a community for users of functional programming languages and technology, be they using functional languages in their professional lives, in an open source project (other than implementation of functional languages), as a hobby, or any combination thereof.

In short: anyone who uses functional programming as a means, but not an end.

Functional languages have been under academic development for over 25 years, and are still proving to be very fertile ground for programming language research. Consequently, most of the development focus of these languages is driven by academic and theoretical questions. More recently, however, functional languages have been very successfully used in commercial, industrial, open-source, and government settings, where their advantages have been able to be leveraged dramatically.

It aims to help functional programming become increasingly viable as a technology for use in the commercial, industrial, and government space, by providing a forum for FP professionals to share their experiences and ideas, whether business, management, or engineering. It also aims to enable the formation and cementing of relationships and alliances that further the commercial use of functional languages. Providing user feedback to language designers and implementers is not a primary goal of the workshop, though it will be welcome if it occurs.


The meeting lasted a full day, with a mix of invited presentations and discussion sessions.

In 2005, we had the following speakers:

  • Atrijus Tang; talked about PUGS, a Perl6 implementation, written in Haskell; slides available (PDF).
  • Fabrice Le Fessant; talked about MLDonkey, a popular multi-platform, multi-network P2P client written in OCaml.
  • Michael Sperber; talked about uses of Scheme in the banking industry.
  • David Roundy; talked about darcs, a popular and flexible revision control system well-suited to highly distributed development, written in Haskell; slides available (PDF).
  • Jim Grundy; talked his experiences with functional programming at Intel's Strategic CAD Labs.
  • Robert Boone; talked about his experiences at Freescale.
  • Jonathan Soebel; talked about lessons the FP community can learn from the OMG's Model Driven Architecture (MDA) and its related marketing efforts.
  • Francesco Cesarini; of Erlang Training and Consulting Ltd., talked about his experiences using, teaching, and supporting the concurrent functional language Erlang.

We also had two working sessions, where lively debate and brainstorming were the order of the day:

  • FP, Education, and Industry: industry folks complain that there aren't enough FP folks being produced by schools, and educators complain that students don't see any point in studying FP if there are no jobs to be had. How can we break this stalemate? Simon Thompson of Functional and Declarative Programming in Education (FDPE05) joined us, and we debriefed at FDPE05.
  • Stimulating a CUFP Community: we'd like the buzz and excitement surrounding CUFP to persist beyond the workshops. What would such a community look like? How do we make it happen? The session kicked off with two separate but complimentary starting points: a proposed "Users of FP" community web site and a proposed "Haskell Consortium" web site.

There was no published proceedings, as the meeting is intended to be more a discussion forum than a technical interchange. A full report of 2004's workshop appeared in the Functional Programming column of the December 2004 issue of SIGPLAN Notices. Simon Thompson kindly wrote up some notes about his impressions of the 2005 workshop.


Mike Ashley. Mike.Ashley at sagian.com
Jim Grundy. Jim_Grundy at ichips.intel.com
Xavier Leroy. Xavier.Leroy at inria.fr
Simon Peyton Jones. simonpj at microsoft.com
Ulf Wiger. ulf.wiger at ericsson.com
Andy Moran. moran at galois.com
John Launchbury. john at galois.com (Chair)