From JVMLangSummit
Jump to navigationJump to search

Fundamentalist Functional Programming

Erik Meijer


In 1984, John Hughes wrote a seminal paper Why Functional Programming Matters in which he eloquently explained the value of pure and lazy functional programming. Due the increasing importance of the Web and the introduction of many-core machines, in the quarter century since the appearance of the paper the problems associated with effectful imperative languages have reached a point where we hit a brick wall. We argue that fundamentalist functional programming, that is radically eliminating all side-effects from our programming languages, including strict evaluation, is what it takes to conquer the concurrency and parallelism dragon. We must embrace pure lazy functional programming all the way, with all effects apparent in the type system of the host language using monads. Only a radical paradigm shift can save us, but does that mean that we will lose all current programmers along the way? Fortunately not. By design, LINQ is based on monadic principles. The success of LINQ proves that the world does not fear the monads.

Author Bio

  • <update the bio here>

Key Issues for Discussion (cooperative)

(please expand cooperatively) Talk:Fundamentalist Functional Programming