"Helping Programmers Program Better"

Erik Meijer, Microsoft

Thursday, April 28, 2005, at 4:00 P.M.

Lubrano Conference Room

One of the greatest challenges that programmers face is to translate the concepts they have in their head into a form that is suitable for a machine to execute. Programming languages are the bridge between the programmer's brain and the underlying machine. When designing programming languages there is a natural tension between what the machine can do and what a human can comprehend, a tension between program efficiency and programmer productivity. A typical example of this tension is automatic garbage collection. On the one hand it is too hard for most programmers to manually manage their memory, on the other hand there might be cases where automatic memory management is a performance bottleneck.

Moving forward, the dominant costs for IT projects are people costs more than hardware costs. Meeting business needs revolves around improving developer productivity. This provides great opportunities for language designers and compiler writers to concentrate on providing more powerful high-level programming abstractions rather than on low-level optimizations.

We will discuss various advancements in programming languages geared towards simplifying the development of three-tier distributed and data intensive applications. In particular we will concentrate on ways to bridge the impedance mismatches between objects, relation data, and XML and the importance of dynamism in this trend.


Erik Meijer is a technical lead in the SQL server division at Microsoft where he currently works together with the C# and the Visual Basic language design teams on data integration in programming languages. Prior to joining Microsoft he was an associate professor at Utrecht University and adjunct professor at the Oregon Graduate Institute. Erik is one of the designers of the standard functional programming language Haskell98 and more recently the C? language.

Host: Tom Doeppner