Guy Steele on Fortress (October 25, 2006)
I enjoyed hearing Guy Steele talk this morning about his plans with Sun's new Fortress language. Fortress is a modern language for scientific computation. Steele plans to support the usual scientific-computation things efficiently, e.g. floating point arithmetic and matrix operations, while having a system that can support niceties of current languages such as objects and garbage collection.
Steele mentioned two interesting philosophical stances. First, Fortress puts things into a library instead of the compiler whenever possible. Second, the standard library itself is divided into components which can be individually updated. One audience member asked if this arrangement will result in multiple dialects. Steele says YES, Fortress will have multiple dialects. He considers this a lesser evil than having a rigid language incapable of adjusting to new ideas for improvement. Besides, Linux also has dialects via its different distributions; only a moderate number of distributions are important enough for most Linux users to ever learn.
There are a ton of cool individual elements of Fortress. To mention just one, the types include unproven properties such as "symmetric" and "associative". This way, users can define numeric types like rational numbers, and library routines can define optimizations that only take effect if the arguments have the necessary properties. Normally such knowledge is embedded in the compiler, giving the primitive types a major compilation advantage over user-defined types. Will this work out? Who knows, but it seems to be working so far!
Finally, Fortress has syntax. Optional terminating semicolons, a favorite flame war within LAMP, is only the beginning. Fortress allows arbitrary Unicode, like Java, but unlike Java it really embraces it. The library routine for summation, for example, is the Greek sigma. If you want to talk about the real numbers, you write a black-board R instead of the regular R. But why stop there? On top of all of this, Fortress has significant white space, and it distinguishes italics letters from boldface letters.
Overall, Fortress is a very interesting language. It is ambitious in many ways, but if anyone can make it all work out, it is Guy Steele.