Fortress is a general-purpose, statically typed, component-based programming language designed for producing robust high-performance software with high programmer productivity. In many ways, Fortress is intended to be a ``growable language,'' i.e., a language that can be gracefully extended and applied in new and unanticipated contexts. Fortress includes an extensible component system, allowing separate program components to be independently developed, deployed, and linked in a modular and robust fashion. It also supports multiple inheritance, multiple dynamic dispatch, and programmer-defined coercions. The Fortress type system includes both static and runtime support for generic types, and for ``hidden type variables,'' i.e., type variables that are not explicit type parameters but that quantify over type definitions nonetheless. In this talk, I provide a brief overview of the most novel object-oriented features of Fortress and discuss the status of the project.
Invited talk at FOOL/WOOD; Saturday, 20 January 2007; Nice, France