OverviewCommercial Users of Functional Programming (CUFP) is an annual workshop that is aimed at the community of software developers who use functional programming in realworld settings. This scribe report covers the talks that were delivered at the 2012 workshop, which was held in association with International Conference on Functional Programming (ICFP) in Copenhagen, Denmark. The goal of the report is to give the reader a sense of what went on, rather than to reproduce the full details of the talks. Videos and slides from all the talks are available online at http://cufp.org.
Keynote: adopting functional programmingKresten Krab Thorup, CTO of Trifork, Aarhus, Denmark delivered the keynote address. He took us on the voyage he had taken from being an "object head" to "Erlang land." Thorup's foundational training in software development was all in terms of object-oriented methodologies. He went on to work on Objective C for NeXT, then earned his PhD and subsequently founded Trifork, an IT services company that currently employs 250 people and develops software solutions, provides training, and organizes several well-respected conferences.While Trifork originally capitalized almost exclusively on its Java expertise, it now successfully applies Erlang in large-scale industrial projects. Taking cues from anthropology, Thorup described how many organizations have not been able to make such transitions easily. Groups tend to gather around an idea that keeps them together, and try to keep new ideas at bay. This makes it difficult for long-time OO developers to adopt functional programming.Trifork managed to stay flexible by making learning about new ideas and communicating them as part of their regular operation. Everyone at Trifork is encouraged to spend 10% of his/her time in the structured exchange of knowledge by giving presentations, organizing meetings, give training classes, or organizing conferences.Thorup reviewed object-oriented programming and the ecosystem around it to show how it had become successful through an intuitive idea -"an object is an independent encapsulated entity that interprets inputs on its own account" -but also because of the available at https://www.cambridge.org/core/terms. https://doi