In 2000, I decided to switch careers and devote my life to bringing programming language theory to the masses. In this talk, I will contemplate on the various things that I learned along the way of adding exotic theoretical concepts such as monads and monad comprehensions to mainstream practical programming languages such as C# 3.0 and Visual Basic 9. The lessons learned include topics such as the difference between creating software for the real world and creating a research prototype; how what get's rewarded deeply influences what get's done and how that creates a deep gap between theory and practice; the importance of KISS, but why it is still constantly violated; and the differences and correspondences between the research and industry environment. Each of the topics will be illustrated by technical examples, so there will be plenty of greek symbols and horizontal lines!

Erik Meijer is an Architect in the SQLServer division of Microsoft where he works with the Visual Basic and C# teams on simplifying programming dynamic data intensive distributed applications. While he still was an academic in Nijmegen, Utrecht and OGI, he just thought he was working on simplifying dynamic data intensive distributed applications.