Sun Releases Fortress to the Masses... But Which "Mass"?
In a recent thread on TheServerSide (here) the server-side developer community pondered Sun's recent release of Fortress to the open source community.
As always, when a new language or framework hits the shelves, there are some misconceptions about the REAL target user and scope of application. Not one to be shy to hand out opinions, I'm going to jump right in :-)
Here are the facts as I know them about Fortress:
- It's not Java. Far from it. It's a brand new scripting language
- The language follows standard mathematical notation and can express quite complex scientific calcs
- The "compiler" creates byte-code that runs on the JVM
- The byte-code is made parallel (how "automagic" I don't know) and runs across cores and clusters
So it's clear to me that 99% of Java developers in the Global 2000 organizations will not use it. The 1% I refer to are the scientists conducting massively parallel computations that require the expression of highly complex formulas.
What's your take? Talk back here... I can take it...





Thanks for giving Fortress a little more visibility! Just to take it a bit further...
1. It's not Java. Nor (agreeing with you) is it intended to replace Java. It was intended to be the next-generation language to replace FORTRAN in scientific computation.
2. It not only uses standard math notations out of the box, it allows a degree of flexibility that resembles math notation more than conventional programming languages.
3. The current prototype runs in the JVM environment. Don't confuse that fact with any expectations about how it will be compiled and executed once the language is in production.
4. Operations on collections assume parallel execution (rather than consecutive iterations of a loop). In fact, the programmer has to make a point of *asking* for loopy behavior if that's what's desired.
There are many languages running on the JVM. (In fact, one can make a case that there's real value in targeting for "JVM inside" instead of "Intel inside" for researchers or professionals who create new languages. Portability is only one issue.) The fact that someone prototypes (or releases) a language on the JVM shouldn't automatically be interpreted as attempting to displace Java.
Methodologies and languages for parallel processing have been around for a long time, and adoption has been slow. Guy Steele, the designer of Fortress, is One Smart Guy (pun intended), having contributed to many languages over the years.
Fortress, as its name implies, borrows a lot from Fortran. The are versions of Fortran that lend themselves to parallel execution and do a commendable job, but often to get the last little oomph you have to dive down into the weeds. I couldn't say if Fortress will change that much.
There are some other interesting languages for PP coming out. For one, check out "cilk" by Bradley Kuszmaul and others out of MIT. It's a C-dialect with simple parallel directives that appears to do a really good job at parallelization. Given that there are a lot of C programmers out there, it's got possibilities.
Now about penetration of Fortress: well, there's an awful lot of languages out there with evangelists for all of them. My feeling is the more the merrier (especially if they are open/non-proprietary). Let the developer choose the language best suited for the task (or tasks) at hand.
- Jonny G
first of all, fortress is about high performance computing, although it works as a script, it is actually designed for compiled code. Still, even in scripting mode, because of its strong language features it may give a good run to other scripting languages. Also, probably fotress, one it is mature enough ill have a different run time environment.
Second, i disagree that fortress will not be used by people other than Scientists. it is actually a general purpose language and platform. mathematics side is the strength of it. read the FAQ ;)