Information Technology News.


Meet Sun's new Fortress programming language

Get the most dependable Linux or Windows Web hosting at the lowest cost. Domain names at only 99 cents for a whole year! Click here to learn more.

January 14, 2007

Sun Microsystems has enlisted the help of the open source community, in an attempt to create a new programming language dubbed Fortress.

On Jan. 9, Sun quietly released as open-source software a prototype Fortress code interpreter, a programming application that compiles and executes 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.

Moreover, Sun has begun an open-source phase of an attempt to develop and popularize a new programming language called Fortress, a replacement for the aging Fortran language.

Sun is hoping that its language will make it easier for programmers to get useful work out of computers with multicore processors, a long-standing computer science challenge. The project also could elevate Sun's profile in the high-performance computing realm, where it has languished.

Fortress is designed to be a modern replacement for Fortran, a programming language born more than 50 years ago at IBM but still very popular for high-performance computing tasks such as forecasting the weather and other complex mathematical functions.

However, even if Fortress grew out of a Defense Department-funded supercomputing project, it tackles a mainstream computing challenge which is better extracting work from all those new processing engines appearing in multicore CPUs.

"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, while Sun Niagara chips have eight cores and will move to sixteen soon. But it's hard to break down software into independent chunks that run in parallel across all those cores or across multiple CPUs.

"As a whole, for some types of workloads, the computer industry has done a pretty good job. Google is in fact a parallel programming project," 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.

There in lies the power and scope of Fortress.

Sun's new programming language also tries to store data intelligently so it will be conveniently near the processor that needs it, Allen said. That should help with large computer clusters that gang together independent servers on a high-speed network, Sun argues.

By virtue of its largely successful Java language, Sun Microsystems has a notable track record introducing new languages. But that doesn't guarantee overall success to the company.

"What is really difficult is attracting a substantial portion of developers to that language," said RedMonk analyst Stephen O'Grady.

Drawing from the open-source software movement, in which anyone can see and modify the underlying code for software, is a natural way to try to entice new programmers, in particular, developers in high-performance computing sectors where open-source software is king, a do-it-yourself ethos is encouraged and people are willing to experiment with new technology to extract the most work from their hardware.

Overall, new programming languages that have shown some successes in recent years such as PHP, Python, Perl and Mono, have open-source underpinnings.

As a result of all this resistance, Sun is still making Java an open-source available software.

It is premature 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 intance, 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 other computer science language," Allen said.

Also, Fortress is good for other tasks, Allen pointed out. For example, it's perfectly appropriate for somebody writing business software for CRM (customer-relationship management) he said.

Sun released an alpha version of the Fortress language specification in September 2006, but it's far from final as of today, Allen said. And the interpreter is still 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 new Fortress interpreter runs on a Java foundation, but shouldn't be confused with Java itself. Java lets the same program run on a multitude of computing platforms, 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 advanced form into a computer that can understand from the code a person wrote.

Overall, 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.

With Fortress, it's safe to say that Sun has started with a clean slate. That means new programmers have more to learn, but also that Sun has more options for development.

Nevertheless, Allen has a lot of 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 other modern programming languages," he said.

He added, "it's hard to imagine a world in which Fortran programs are no longer running at all."

Source: C-Net News




IT News Archives | Site Search | Advertise on IT Direction | Contact | Home

       © IT Direction. All rights reserved.