Martin Odersky

Creator of Scala

Martin Odersky is a professor at EPFL in Lausanne, Switzerland. He is best known as the inventor of the Scala language. He works on new programming language concepts that transcend the split between functional and object-oriented designs.

He is a fellow of the ACM and a recipient of the SIGPLAN programming languages software award. He has also influenced the development of Java as a co-designer of Java generics and as the original author of the javac reference compiler.

The object capability model has been established since the 1960s. It is probably the most obvious and clean way to protect trusted from untrusted components in a complex system. So why are object capabilities not used everywhere? I argue it's because they currently lack in both convenience and safety:

  • Convenience: Passing all capabilities along long call chains to code that needs them can quickly get tedious.
  • Safety: Access restrictions such as limited lifetimes or sharing are traditionally encoded using runtime mechanisms with the possibility of runtime failures.

In Scala, we have been working on overcoming these two impediments.

  • Convenience: capabilities can be passed as implicit parameters in using clauses, and capability passing can be completely abstracted over using context functions. 
  • Safety: We have extended the type system to track capabilities in types. Specifically, we track which capabilities are closed over in a lambda or object.

I will report on the initial usage experience with these concepts and the measures we took to make the notations ergonomic.


←Back