Sponsored by SIGPLAN
Co-located with ICFP 2011
Tokyo, Japan
Sep 22-24
Proposal Submission Deadline 15 June 2011
Functional programming languages have been a hot topic of academic research for over 35 years, and they have seen an ever larger practical impact in settings ranging from tech startups to financial firms to biomedical research labs. At the same time, a vigorous community of programmers employing functional languages has come into existence.
CUFP is designed to serve this community. The annual CUFP workshop is a place where people can see how others are using functional programming to solve real world problems; where practitioners meet and collaborate; where language designers and users can share ideas about the future of their favorite language; and where one can learn practical techniques and approaches for putting functional programming to work.
If you have experience using functional languages in a practical setting, we invite you to submit a proposal to give a talk at the workshop. We're looking for two kinds of talks:
Experience reports are typically 25 minutes long, and aim to inform participants about how functional programming plays out in real-world applications, focusing especially on lessons learned and insights gained. Experience reports don't need to be highly technical; reflections on the commercial, management, or software engineering aspects are, if anything, more important.
Technical talks are also 25 minutes long, and should focus on teaching the audience something about a particular technique or methodology, from the point of view of someone who has seen it play out in practice. These talks could cover anything from techniques for building functional concurrent applications, to managing dynamic reconfigurations, to design recipes for using types effectively in large-scale applications. While these talks will often be based on a particular language, they should be accessible to a broad range of programmers.
If you are interested in offering a talk, or nominating someone to do so, send an e-mail to avsm2(at)cl(dot)cam(dot)ac(dot)uk or yminsky(at)janestreet(dot)com by 15 June 2011 with a short description of what you'd like to talk about or what you think your nominee should give a talk about. Such descriptions should be about one page long.
There will be a short scribes report of the presentations and discussions but not of the details of individual talks, as the meeting is intended to be more a discussion forum than a technical interchange. You do not need to submit a paper, just a proposal for your talk!
For more information on CUFP, including videos of presentations from previous years, take a look at the CUFP website at http://cufp.org. Note that presenters, like other attendees, will need to register for the event. Presentations will be video taped and presenters will be expected to sign an ACM copyright release form. Acceptance and rejection letters will be sent out by July 15th.
Focus on the interesting bits: Think about what will distinguish your talk, and what will engage the audience, and focus there. There are a number of places to look for those interesting bits.
Setting: There are a few areas where FP is pretty well established, including formal verification, financial processing and server-side web-services. An unusual setting can be a source of interest. If you're deploying FP-based mobile UIs or building servers on oil rigs, then the challenges of that scenario are worth focusing on. Did FP help or hinder in adapting to the setting?
Social: as with any new technology, there are often barriers to gaining acceptance within an organisation (be it a startup or a big corporation). Did you face any objections with your choice of language (e.g. hiring worries, risk of new technology, training difficulty). How did this pan out and are there lessons in there for others?
Technology: The CUFP audience is hungry to learn about how FP techniques work in practice. What design patterns have you applied, and to what areas? Did you use functional reactive programming for user interfaces, or DSLs for playing chess, or fault-tolerant actors for large scale geological data processing? Teach us something about the techniques you used, and why we should consider using them ourselves.
Getting things done: How did you deal with large software development in the absence of a myriad of pre-existing support that are often expected in larger commercial environments (IDEs, coverage tools, debuggers, profilers) and without larger, proven bodies of libraries? Did you hit any brick walls that required support from the community?
Don't just be a cheerleader: It's easy to write a rah-rah talk about how well FP worked for you, but CUFP is more interesting when the talks also spend time on what doesn't work. Even when the results were all great, you should spend more time on the challenges along the way than on the parts that went smoothly.
Don't go too fast: CUFP talks are short --- you have 25 minutes to get your point across. So don't rush through a lot of technical material at high speed.
Keep your slides light: Don't put too much on your slides. You especially shouldn't be reading sentences from your slides aloud. Slides are best when used for keeping track of the broad structure of your talk, and presenting code snippets or graphics. Also, keep your font sizes nice and big so people can read from the back of the room!
Give a talk that you would love: As a practitioner of functional programming, ask yourself what topics you would like to hear more about, and guide your talk towards those areas.