Friday 9 June 2006

Fortress is a new programming language from Sun Research. It claims to be trying to take over the Fortran mantle of being a programming language for mathematicians and scientists. It has plenty of interesting stuff, including complex rules for how to richly present Fortress source code, so that the programs can be displayed as complex mathematical texts.

But perhaps the most unusual thing in the specification was this:

Forbidden and Discouraged Characters

Except within a comment (see Section 3.3), the use of CHARACTER TABULATION (U+0009) is forbidden in a Fortress program (even within a string literal, where an escaped sequence is provided instead).

That’s right, folks! No tab characters in the source code, they are forbidden. Will this end the tabs-vs-spaces debate, or simply enrage one side?


Florian 8:02 AM on 9 Jun 2006

Actually Fortress is no "new" programming language by Sun. That's a bogus claim (unfortunately by sun itself).

At least two years back I already heard of it, and that was by a co-worker wo said he'd heard of it a while back still.

Fredrik 8:21 AM on 9 Jun 2006

Well, it's a Guy Steele project, and he's been working for Sun since the mid-nineties. First time I heard of it was early last year, and I cannot find any earlier public references to it (but I haven't looked very hard).

Ned Batchelder 8:53 AM on 9 Jun 2006

We can quibble over the meaning of the word "new" here. Compared to Fortran, Fortress is certainly new!

andrew 3:21 PM on 9 Jun 2006

It enrages me! And my revenge will make the revenge visited on Zarqawi by the evil Bushitlerhaliburtonchimpymcstupid look tame by camparison!

Bob 4:23 PM on 9 Jun 2006

Fortress allows tab characters inside comments but nowhere else. Seems weird to mark tab as Forbidden without justification. Maybe they can continue the classic Fortran tradition of fixed columns — code starts in column 7, line continuations are in column 6, code can't extend beyond column 72. Good times.

The usage of mathematical notation in the language is interesting. This didn't work very well years ago when APL tried it. How exactly am I supposed to type α β ≡ Σ...?

Alan Green 6:15 PM on 9 Jun 2006

Bob: Perl6 is going to allow arbitrary unicode identifiers and operators. I'd be looking to those folk for some ideas.

AdSR 1:53 PM on 10 Jun 2006

The tab and CR characters should never have come into existence in the first place. Then we would never have had the issues we actually do with these two.

Bob 6:46 PM on 10 Jun 2006

Alan: Java and C# already allows Unicode in identifiers. You don't have to use them but the support is there. My point was that the Fortress defines operators using Unicode characters as part of the base language. So right off the bat, you'll need some way to enter them. I imagine they'll find some way to do this but it does pose some potential problems for Fortress IDEs and code processing tools.

Michael Chermside 7:56 AM on 14 Jun 2006

In my opinion, forbidding tab is the correct thing to do. I know of no programmer's editor worth using that can't bind the tab key to perform an indent, I no of nowhere that source code must reside where the few extra bytes will be begruged, and I have looked at incorrectly and inconsistantly indented code far too often.

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
URLs auto-link and some tags are allowed: <a><b><i><p><br><pre>.