Slashdot Mirror


Fortress: The Successor to Fortran?

An anonymous reader writes "A draft specification of the Fortress language was recently released. Developed by Sun Microsystems as part of a DARPA-funded supercomputing initiative, Fortress is intended to be a successor to Fortran. Guy Steele, a co-author of Java and member of the Fortress development team, hopes that Fortress will to 'do for Fortran what Java did for C.' Steele admits that Java isn't probably the best choice for numerical computing, and that 'it's a mistake to try to make a programming language that is all things to all people... because the needs are so diverse.' Fortress has a number of interesting features, including support for Unicode characters in code, enabling code to look more like formal mathematical expressions. More information about Fortress is given in interview with Steele, and in a talk by Steele. There's also some interesting commentary on Fortress, including some commentary by a member of the Fortress development team, in response to two stories at the programming languages weblog Lambda the Ultimate."

13 of 361 comments (clear)

  1. Math++ by Doc+Ruby · · Score: 5, Insightful

    I thought Mathematica was the successor to Fortran. Why don't they just improve the Mathematica calc engine for parallel/distributed supercomputing?

    --

    --
    make install -not war

  2. In my opinion by Umbral+Blot · · Score: 4, Insightful

    From skimming the language spec I saw a couple cool features. One is support for multiple return values, which I love. I also liked the fobid clause, which throws an unchecked exception on certain conditions. Forbid, along with several other run-time checks in the language spec. will give fortress developers an easier time debugging code. The downside to this language however is that it tries to imitate java. Constantly the language spec compares fortress to java. I don't think Java is a bad language, however we only need one language. It would have been better if Fortress had tried to be different than Java, and explore problem domains that Java is weak in solving.

  3. Fortran's Longevity by Noksagt · · Score: 4, Insightful

    Fortran's longevity has come because it compiles fast programs & there have already been a ton of subroutine libraries to draw from, that have been built up over time by many coders. It is also an open standard with MANY compilers for most platforms. Will Sun work on all of this? They didn't think it was important enough to do with Java.

    I think it will be hard for a single company to generate a successor & sincerely hope Sun will realize that for languages with no VM, early success will depend on openness. I also think a lot of what peopl want to do is already being done with python + modules compiled from C or Fortran.

  4. Matlab by giampy · · Score: 3, Insightful


    Well, it seems to me that 90% of scientific computation today is done with Matlab and similar languages/environments (well, mostly Matlab).

    Based upon my experiences, within universities, ONLY in CS departments Matlab is NOT (yet ?) the de facto standard (but it is still tought and used anyways, along with java and some C++).

    --
    We learn from history that we learn nothing from history - Tom Veneziano
    1. Re:Matlab by Illserve · · Score: 4, Insightful

      You don't understand matlab, it runs slowly only because your coders don't know the features of Matlab that they must stay away from.

      Think of it like this:

      C lets you do X, very fast.
      Matlab lets you do X very fast, and Y fairly slowly.

      Inclusion of any elements of Y into a predominantly X piece of code will bring the whole lot down to Y speed.

      There's no inherent advantage of C (as far as I can tell and I've got years of experience in both), it's just that people tend to roll X and Y together in a Matlab program.

      Admittedly, this is the fault of Matlab, in letting you do this without warnings, but there is documentation provided that tells you what the set of Y is and gives some hints for recoding bits of Y as X.

      So basically, people who program in C are denying themselves the joys of MATLAB's high-level functionality, and in return are still having to code everything in terms of X.

      I have given up on C completely, if I can't write it in MATLAB and have it run fast, it means I don't understand the algorithm well enough and should get back to the drawing board.

      Btw, your attempt to divide programming into categories of "serious" and not is laughable.

  5. Optimisation and community, perhaps? by Anonymous+Brave+Guy · · Score: 4, Insightful
    Why do pipe stress freaks and crystalography weenies prefer Fortran?

    I suspect it's mostly because FORTRAN has a lot of things built right into the language, rather than added in libraries and such. That means code can be reasonably tidy, but still leave a lot of scope for optimisation. This is particularly true when compared with the state of the art in optimising for difficult languages like C, where even today relatively simple optimisations can be difficult because of aliasing issues and the like.

    It's also worth noting that when most of a serious community use the same tool(s), a lot of new work will be done using those tools simply because of familiarity, community and support issues.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  6. Re:Please Explain by Anonymous Coward · · Score: 3, Insightful

    its specification allows for more aggressive compiler optimizations than C. fewer aliasing issues for example.

  7. Do they understand why Fortran is liked ? by aepervius · · Score: 4, Insightful

    I am seeing the first page of the draft and already I see talk about objects... Man.... Do they understand that *WE* do use fortran because of the mathematical bibliothek, the extremly well optimised high performance generated code even massive parallel calculation code ? If this things doesn't have the same performance as fortran *AND* is backward compatible with existing fortran programs it is dead in the water. Why do they think that most scientific out there I know of are still using fortran for ? Do they really think we need abstract stuff with object ? If we did we would use a c++ code+compiler, not fortran

    Indeed a search of the spec says "no attempt at backward compatibility/this is a new language with little relation to fortran".

    Nothing to see here. Somebody with new idea he thinks are nifty , and forgot from sight why fortran is still used now.

    --
    C. Sagan : A demon haunted world:
    http://www.amazon.com/gp/product/0345409469/
    visit randi.org
  8. 'do for Fortran what Java did for C.' by forgoil · · Score: 4, Insightful

    First of all, shouldn't it be "what Java did for C++", and second of all the answer to the question in the subject is:

    "Fuck it up."

  9. Re:Please Explain by mcc · · Score: 3, Insightful

    C++ has gained alot of ground ... through the use of templates and template metaprogramming

    The phrase "phyrrhic victory" comes to mind.

  10. Re:'do for Fortran what Java did for C.' by TheKarateMaster · · Score: 3, Insightful

    Joking aside -- Yeah, pretty much. I can't stand Java. C is my favorite language, closely followed by C++... because they both *run*. Java is mind-bogglingly slow, considering it is *based* on the speedy C. Ironically, this "do for fortran what java did for c" comment makes me want to learn Fortran, not Fortress.

  11. Re:Dear God by Tim+C · · Score: 3, Insightful

    So, you're a better C coder than he is a Fortran coder, so Fortran must be bad? Interesting conclusion.

  12. Optimisation and language syntax by iangoldby · · Score: 3, Insightful

    And when you get down to numerical computation, including parallel computers, the optimization is done at a very low level, where the language syntax is irrelevant.

    I can't let you get away with that. Fortran was designed to have a language syntax and structure that makes compiler optimisation easy. 'WHERE' loops can be parallelised, pointer aliasing is tightly controlled (unlike C/C++), etc. It does make a difference.