On Tuesday, the company quietly released as open-source software a prototype Fortress "interpreter," a programming tool to execute Fortress programs line by line. "We're trying to engage academics and other third parties," Eric Allen, a Sun Labs computer scientist and Fortress project leader, said about the open-source move.
Fortress is designed to be a modern replacement forbut still very popular for high-performance computing tasks such as forecasting the weather.
Even though Fortress grew out of a, it tackles a mainstream computing challenge, too: more easily extracting work from all those new processing engines appearing in multicore processors.
"We certainly have a lot of visibility in the high-performance computing market right now. We think as multicore becomes more important for ordinary desktop systems that programmers are going to have to turn to a language like Fortress in order to take advantage of the performance their hardware is providing to them," Allen said.
Mainstream x86 chips from Intel and Advanced Micro Devices today have two or four processing cores, whileand will move to . But it's hard to break down software into independent chunks that run in parallel across all those cores or across multiple processors.
"For some types of workloads, the computer industry has done a pretty good job. Google is a parallel programming problem," Illuminata analyst Gordon Haff said. "Some workloads scale very well. A lot do not, however. Extracting parallelism from those workloads is a very long-standing computer science problem. Progress has been made, but it's a long way from being solved."
Sun hopes that Fortress will help with that problem.
"Fortress isn't pixie dust. But it does allow us to write programs in a way that really work better on multicore in general," Allen said.
For example, Fortress programmers must explicitly declare when software shouldn't run in parallel, a reversal of the prevailing default. When a Fortress program performs a "for" loop--a repeated task such as examining every pixel in a photograph or finding how many people in a list are above age 21--Fortress automatically breaks the job into pieces and farms each piece out to different cores, processors or servers, Allen said.
Fortress also tries to store data intelligently so it will be conveniently near the processor that needs it, Allen said. That should help with large compute clusters that gang together independent servers on a high-speed network, Sun argues.
Sun, by virtue of its successful Java language, has a notable track record introducing new programming languages. But that doesn't guarantee success.
"What is hard--very hard, in fact--is attracting a substantial portion of developers to that language," said RedMonk analyst Stephen O'Grady.
Tapping into the open-source software movement, in which anyone can see and modify the underlying code for software, is a natural way to try to ensnare new programmers--in particular, programmers in high-performance computing where open-source software is popular, a do-it-yourself ethos is encouraged and people are willing to experiment with new technology to extract the most work from their hardware.
New languages that have shown some successes in recent years--PHP, Python, Perl and Mono, for example--have open-source underpinnings. And after years of resisting,.
It's too strong to say Fortress would be doomed if it weren't open-source, "but its future would be extremely niche," O'Grady said.
Sun released the Fortress interpreter under the permissive open-source BSD license. The company is keeping control over the official version, though, so for now at least outside programmers will need to give Sun control over their contributions, Allen said.
It's also important to have a community interested in a new language to get it to catch on, O'Grady said. For Sun, that community is high-performance computing.
For example, programmers can use ordinary mathematical expressions rather than having to translate formulas into the typically very different syntax of computer languages. "It provides more productivity because it allows the scientific programmer to stay closer to his own problem domain instead of learning some computer science language," Allen said.
Still a prototype
Fortress is good for other tasks, too, Allen believes. For example, it's perfectly appropriate for somebody writing business software for customer-relationship management, he said.
But not just yet.
Sun released an alpha version of the Fortress language specification in September, but it's not final, Allen said. And the interpreter is in its early stages. The interpreter can handle some Fortress features--for example, "work stealing" in which one hardware element that's finished up its task can pick up chores from another that's still busy--but it still only runs a subset of the Fortress language.
The interpreter runs on a Java foundation, but shouldn't be confused with Java itself. Java lets the same program run on a multitude of computers, so it means the Fortress project can be developed more widely.
Ultimately, Sun wants to build not just an interpreter, which executes Fortress software line by line, but also a compiler, which translates the software in advance into a form a computer can understand from the code a person wrote. Compiled software is generally faster than interpreted software. In addition, Sun envisions an optimizing compiler, a technology that adjusts the compiled version of software as it runs to improve performance.
Sun has started with a clean slate with Fortress. That means new programmers have more to learn, but also that Sun has more options for development. But Allen has respect for Fortran's inertia.
"There are a lot of features in Fortran that make it difficult for programmers to write as efficiently as they can in modern programming languages," he said, but added, "It's hard to imagine a world in which Fortran programs are no longer run at all."