Back to 2015-proposals

Title: Referential transparency is overrated
Proposer: Didier Verna
Type: Presentation
Duration: 90 mins
Description:
The expression 'referential transparency' itself is already confusing and subject to interpretation, according to whether you're in the context of natural, functional or imperative languages. In any of those contexts however, referential transparency is generally regarded as a Good Thing ™. In computer science for example, it helps to reason about programs, prove them, optimize them, and even enables some paradigms such as normal order (lazy) evaluation.

In this talk, we claim that referential transparency is overrated because it also limits your expressive power. We demonstrate some neat and tricky things that we can do only when referential transparency is broken, and we explain the language constructs and techniques that allow us to break it intentionally, both at the regular and meta-programming levels. Such tools include duality of syntax and syntax extension, mixing of different scoping policies, intentional variable capture and free variable injection, lexical communication channels, anaphoric macros.

Please fasten your seat belts, as we're going to explore mostly uncharted territory. Whether these techniques are considered extremely powerful, extremely unsafe, or extremely bad style is a matter of personal taste. In fact, they are probably all of that, and much more . . .