% fortune -ae paul murphy

Ideal languages

Sun's Fortress programming language is intended for general purpose but high performance computing. It's a re-invention and integration from scratch of some interesting ideas including automatic parallelisation and the use of mathematical notation in programming.

Here's the summary from the language home site:

Fortress is a new programming language designed for high-performance computing (HPC) with high programmability. In order to explore breakaway approaches to improving programmability, the Fortress design has not been tied to legacy language syntax or semantics; all aspects of HPC language design have been rethought from the ground up. As a result, we are able to support features in Fortress such as transactions, specification of locality, and implicit parallel computation, as integral features built into the core of the language. Features such as the Fortress component system and test framework facilitate program assembly and testing, and enable powerful compiler optimisations across library boundaries. Even the syntax and type system of Fortress are custom-tailored to modern HPC programming, supporting mathematical notation and static checking of properties such as physical units and dimensions, static type checking of multidimensional arrays and matrices, and definitions of domain-specific language syntax in libraries. Moreover, Fortress has been designed with the intent that it be a "growable" language, gracefully supporting the addition of future language features. In fact, much of the Fortress language itself (even the definition of arrays and other basic types) is encoded in libraries atop a relatively small core language.

Sample code, referenced on the FAQ page looks like this:

I think it's pretty cool and has great potential - particularly if they succeed in getting the native implementation running on Rock and later CMT/SMP CPUs because then it could become, not just a better Fortran, but a better Java - consigning the latter to continuing success in its natural market: device independent run-times while getting it the star blank star out of the data center.

So what would it take to expand Fortress into business uses? The simple, but cynical, answer is better business programmers - but I think Ajax points to the righter answer: some way of adding high quality screen management, user interface control, and effective text manipulation to the core language.

This is what APL didn't have, Java doesn't have, and otherwise indefensibly poor language environments like Informix 4GL, Unify/Vision, or Progress have out the wazoo -it's what makes them easy to use for business applications even though none of them have the computational range to handle enterprise wide optimisation, engineering integration, or even relatively simple multi-point transportation planning.

Fortress has all of the latter - and its inherent extensibility means that it could become a compelling business choice if allowed to also grow the former.

Paul Murphy wrote and published The Unix Guide to Defenestration. Murphy is a 25-year veteran of the I.T. consulting industry, specializing in Unix and Unix-related management issues.