Sun Microsystems released a preliminary version of its new Fortress scientific programming language this Tuesday.
Fortress has a variety of features specifically designed to support scientific programming. Fortress equations are designed to look like mathematical equations (as in Mathematica) so that computer codes will be readable for other scientists. Fortress allows numbers to have physical units (meters, seconds, ergs, keV) which enhances readability and also allows the compiler to check for unit consistency (a common way for scientists and engineers to check their handwritten calculations). Fortress has compile-time safety checks similar to those found in OCaml to make programs less error prone. Fortress comes with a test framework (unit tests and assertions) to facilitate the debugging process.
Fortress’s most interesting feature is implicit concurrency, which allows Fortress programs to easily take advantage of speed boosts from multi-core architectures and computing clusters. A Fortress program can run on a computing cluster without any parallel-processing related instructions because many Fortress commands are parallel by default. For loops, the equivalent of DO loops in Fortran, are automatically split across multiple processors.
Fortress is still at a very early stage of development, but I have a feeling that it will be an excellent tool for speed-critical, scientific programming (such as nuclear radiation simulation) a few years down the road. Of course, I don’t have the patience to wait that long – Fortress is already running on one of my computers, and I was among the first fifty programmers to sign on as “observers” of the project