The Essential Tools of Open-Source
Functional Programming, Parametricity, Types
Open-source software projects have become an important contribution to our profession. Volunteers and professionals working away on what they love, aspiring to be a part of software freedom and to provide a benefit to all.
Many tools exist to assist in this worldwide, distributed effort. From distributed revision control systems to programming environments, the open-source team comes to rely on these tools to produce work.
If we are to attract skilled volunteers and work to producing quality software as a team, we must do better than average. Not by just a little bit. We must be the example of a software development team. We must exploit professional tools.
This talk will make a case that some programming tools are neglected, often argued away under a false compromise. Why then, are functional programming and associated consequences such as parametricity so often neglected? Are they truly so unimportant?
This talk will define the principle of functional programming, then go into detail about what becomes possible by following this principle. Parametricity (Wadler, 1989), equational reasoning and exploiting types in API design are an essential property of productive software teams, especially teams composed of volunteers, all enabled by functional programming.