What to Leave Implicit
To understand a piece of program text one must also understand the con-text in which the program fragment is to be executed. Modern programming languages offer an array of constructs to define context. In Scala, those constructs can be summed up as the three I’s: Imports, Inheritance, and Implicits. Implicits in particular are a central, but also controversial part of the language.
This talk explores the different facets of implicits in Scala, as they exist now and as they might evolve in the future. It highlights their potential benefits and problems, covering aspects of design, implementation, and ergonomics.
Martin Odersky is a professor at EPFL in Lausanne, Switzerland. He has been working on programming languages for most of his career. He first studied structured and object-oriented programming as a PhD student of Niklaus Wirth, then fell in love with functional programming while working as a post doc at IBM and Yale. When Java came out, he started to add functional programming constructs to the new platform. This led to Pizza and GJ and eventually to Java 5 with generics. During that time he also developed javac, the current reference compiler for Java.
Over the last 10 years, Martin worked on unifying object-oriented and functional programming in the Scala language. Scala quickly escaped from the research lab and became a popular open source tool and industrial language. He now oversees development of Scala as head of the programming group at EPFL and as academic director of the Scala center.