This page is no longer maintained — Please continue to the home page at

Scala's Prehistory

Author:Martin Odersky
Date:August 2008

Scala was designed from 2001 by Martin Odersky and his group at EPFL in Lausanne, Switzerland.

Previously, (1986-1989) Martin worked as a Ph.D. student with Niklaus Wirth at ETH Zuerich as a Ph.D. student on Modula-2 and Oberon. After that, he worked on programming language fundamentals and functional programming.
Many of his research papers are found on his website.

In 1995 he teamed up with Philip Wadler to write a functional language that compiles to Java bytecodes. This work on Pizza led eventually to GJ, the new javac compiler, and Java generics.

In 1999, after he joined EPFL, the direction of his work changed a bit. The goal was still to combine functional and object-oriented programming, but without the restrictions imposed by the Java language. The first step in this direction was Funnel, a minimalist research language based on functional nets, an object-oriented variant of join calculus. Funnel was pleasingly pure from a language design standpoint, with very few primitive language features. Almost everything, including classes and pattern matching, would be done by libraries and encodings.

However, it turned out that the language was not very pleasant to use in practice. Minimalism is great for language designers but not for users. Non-expert users don't know how to do the necessary encodings, and expert users get bored having to do them over and over again. Also, it became quickly apparent that any new language has a chance of being accepted only if it comes with a large set of standard libraries

The second--and current--step is Scala, which took some of the ideas of Funnel and put them into a more pragmatic language with special focus on interoperability with standard platforms. Scala is not an extension of Java, but it is completely interoperable with it. Scala translates to Java bytecodes, and the efficiency of its compiled programs usually equals Java's. A second implementation of Scala compiles to .NET. Scala's design was started in 2001. A first public release was done in of 2003. In 2006, a second, redesigned version was released as Scala v 2.0. The language has been steadily gaining popularity ever since.

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland