JAOO 2006: Guy Steele: Growing a language
Guy Steele trug in seiner Keynote über die neue Programmiersprache Fortress vor. Ausrichtung ist der technisch-wissenschaftliche Bereich (wo ja immer noch Fortran eine wichtige Rolle spielt) . Entsprechend nutzt Fortress Unicode für die Darstellung der Programme, weil so auch komplizierte technische-wissenschaftliche Symbole z.B. für Summen zur Verfügung stehen.
Neben der Sprache ist für Guy auch die User Community relevant. Außerdem will er die wesentlichen Features nach Möglichkeit in Libraries implementieren und nicht im Compiler, um den Sprachkern klein zu halten. Er will die Probleme der Anwender durch Libraries lösen, die dann in der Sprache möglichst einfach implementierbar sein sollen. Die Libraries selbst sind aus Komponenten mit Interfaces zusammengestellt, so dass man diese Teile austauschen kann.
Das Typsystem - eines der wichtigsten Themen einer Programmiersprache - verwendet polymorphe Operatoren und kann auch Typ-Inferenz. Mit Typ-Inferenz muss man den Typ eines Ausdrucks nicht explizit deklarieren, sondern er wird automatisch festgestellt. Normalerweise haben vor allem funktionale Sprachen solche Features.
Listen, Vektoren (im mathematischen Sinn) und Mengen sind eingebaut wie auch physikalische Einheiten. Ebenfalls gibt es verteilte Datenstrukturen. Auch eine Versionskontrolle ist eingebaut. Der Compiler wird in 2010 wohl soweit sein, dass er gut optimierten Code erzeugt.
Ein neues Konzeot sind Traits: Sie enthalten Interfaces und Code, sind aber keine Klassen und enthalten keine Felder. Dadurch kann man Mehrfachvererbung implementieren - außer eben für Felder. Die Felder kommen in den Blättern des Vererbungsbaums hinzu.
Desgin by Contract wird direkt unterstützt und es werden auch automatisch Tests gebaut.
Die primitven Datentypen sind auch Objekte - im Gegensatz zu Java. Es gibt auch eine deklarative Verteilung von Daten and Threads, transaktionalen Speicher und Schleifen werden per default parallel ausgeführt.
Ingesamt recht interessant, aber eben auch eher eine Nischensprache (zumindest vom Anspruch her). Ob sie sich gegen Fortran durchsetzen kann, wird man sehen, zumal Fortran eben seit ca. 50 Jahren diesen Bereich dominiert.