Growing a language

My third day at OOPSLA started off with Dr. Guy Steele‘s (Sun Fellow) keynote entitled “A Growable Language”. It was a very interesting talk on how Sun Research is building a new language for scientific computation that is suppose to replace FORTRAN by raising development productivity.
Although the Fortress language is not anything I expect to touch in my professional work, there were many interesting aspects in the talk, including:

  • An important design principle was to create a languages that would grow over time. To accomplish this, the focus is to keep the language and the corresponding compiler lean, and relying on libraries to extend the language.
  • Support for unit testing, make (build tool), and Subversion is built into the language (or libraries, I don’t remember which).
  • It uses notation from math as much as possible, since this is what mathematicians know. In order to find notational constructs, they studies what mathematicians wrote on whiteboards, and try to incorporate this into the syntax. Furthermore, they based the syntax on Unicode to incorporate the special characters that mathematicians do. In order to make the code more readable they run it through Latex to get a full mathematical notation. In this respect, Fortress seems to be a kind of a Domain-specific language, or DSL.