Andy’s research is on programming languages: their principles, logic, usability, and trustworthiness. His work has had impact on several best-in-class programming languages, including refinement types for security in F*. His PhD research was on I/O for Haskell: he invented the “>>=” symbol, and served on the Haskell Committee to standardize monadic I/O. Today, he leads the Calc Intelligence team doing research on end-user programming, especially in spreadsheets.
As a research manager, Andy strives for a diverse and inclusive team. He and his team collaborate closely with the Excel product group. Features such as LAMBDA and Calc.ts, arising from their mission to enhance Excel as a programming language, ship now in production to millions of customers.
The world’s most widely used programming language is a purely functional language! It’s called Excel. No mutable cells, assignment statements, or sequencing; just pure functions and immutable values. But, despite its phenomenal success, considered as a functional programming language, Excel’s formulas constitute a very limited language: it is largely restricted to scalar values, and you can’t write new user-defined functions. Until now. Excel has just released LAMBDA, in its full higher-order glory, just as Alonzo Church defined it in the 1930s. That’s pretty exciting, because now you can define new functions, which can call other lambda-defined functions, to arbitrary depth, and even recursively. It represents a qualitative change not an incremental one: Excel just became Turing-complete. In this talk we’ll tell you some things you may not know about Excel’s existing formula language, we’ll describe the journey that led a few geeks at Microsoft Research Cambridge to influence one of the most widely used programs in history, and we’ll show you some other ideas we’ve been playing around with. Lambda Days indeed!