Fortress: another development language...

psurge

Regular
There have been a few recent threads about the next mainstream "programming language" for games. Since there was some interest in languages I thought I'd post this link I found to Fortress, a language from Sun which AFAIK was developed in part for some kind of enormous DARPA HPCS proposal. There are many aspects of this language I'm really not qualified to assess, but its extremely interesting. Some features, in no particular order:

http://research.sun.com/projects/plrg/fortress0866.pdf

- atomic blocks (with transactional semantics)
- implicitly parallel for loop and other constructs (tuples, comprehensions, ...)
- prefers Unicode source text, allowing for source code to use standard mathematical symbols
- supports DSLs via syntax expanders (Ch. 28)
- Distributions, allowing you to specify how data is split up and distributed across a machine (Ch. 23)
- built in interval types and interval operators
- components and APIs

I have no idea on what the implementation status of the tools etc... and I'm not sure if I'm sold on the proliferation of operators, but anyways: enjoy :)
 
I'm not even a third through the pdf, but that's some very interesting concepts. I like the units, subscripts and unicode operator stuff, but I wonder why they didn't go all the way beyond having a plain text source. Still, for someone who is used to mathematical notation, it reads quite nicely, though I could do without the do-end blocks. And there's no useless semicolon. Built-in support for parallelism is nice, and there is great support for list, map, set and intervals. Not sure whether tuple flattening is a good idea.

Other things like differences between loose and tight juxtaposition are plain ugly IMO. Oh, and the name... (yeah I know, Fortran, but still...) :-?

Well, reading on.
 
Xmas said:
And there's no useless semicolon.
Noooooooooooooo! Err, actually yes. There is no such thing as a useless semicolon in any programming language ;)

Explicitly specifying where an expression ends is great IMO. It allows you to split complex (or just very long) expressions over multiple lines. It makes for more readable code and I wouldn't want to be without personally.
 
zeckensack said:
Explicitly specifying where an expression ends is great IMO. It allows you to split complex (or just very long) expressions over multiple lines. It makes for more readable code and I wouldn't want to be without personally.
There's a better way of doing this where you simply can't forget to put an expression end marker.
 
Well, the name is justified if not beautified once you get to the component/api section of the language spec (which is in IMO quite nice).

As for why they didn't drop the text altogether, I had the same thought. I suspect it's only so that they aren't completely obligated to include an editor with the language tools. That said, their ASCII mode is not very appealing, and I haven't seen any text editors with decent Unicode mathematical symbol support out there so I'm not sure my argument holds much water.

Serge
 
Back
Top