How Are Programs Found? Speculating About Language Ergonomics With Curry-Howard

Johannes Emerich
DOI: https://doi.org/10.1145/2986012.2986030
2016-12-02
Abstract:Functional languages with strong static type systems have beneficial properties to help ensure program correctness and reliability. Surprisingly, their practical significance in applications is low relative to other languages lacking in those dimensions. In this paper, the programs-as-proofs analogy is taken seriously to gain speculative insights by analysis of creation habits in the proof-centric discipline of mathematics. Viewed in light of this analogy, a sampling of mathematicians' attitudes towards formal proof suggests that the crucial role of intuition and experimentation in programming tasks may be under appreciated, hinting at a possible explanation of the challenges rigorously disciplined languages face in practical applications.
Programming Languages
What problem does this paper attempt to address?