Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Sun Microsystems Programming IT Technology

Sun Releases Fortran Replacement as OSS 233

sproketboy writes "Sun Microsystems has released an alpha version of a new programming language called Fortress to eventually replace Fortran for high performance scientific computing tasks. Fortress was designed specifically for multi-core processors and is published under the BSD license."
This discussion has been archived. No new comments can be posted.

Sun Releases Fortran Replacement as OSS

Comments Filter:
  • This is fake... (Score:5, Insightful)

    by Anonymous Coward on Monday January 15, 2007 @05:24PM (#17619060)
    All they do release under an OSS license is an *interpreter* of the language. This is completely worthless for high-end number crunching. Wake me up when they open source a good optimising *compiler*.

    Bah... Slashvertisement...
  • APL (Score:3, Insightful)

    by RAMMS+EIN ( 578166 ) on Monday January 15, 2007 @05:25PM (#17619082) Homepage Journal
    FTFA:

    ``Mathematical notation: We would like to reduce the time it takes for a domain expert to turn a mathematical specification into a working high-performance program. We are examining language changes which would enable computations to be written in a more mathematical format.''

    So does this mean they will bring back APL?

    Personally, I find functional notation and names much easier to understand than mathematical notation and symbols. Of course, I'm not a mathematician, so I guess I'm not the target audience for this project. However, I still think this is a really bad idea.
  • by mhore ( 582354 ) on Monday January 15, 2007 @05:36PM (#17619234)

    I used fortran quite a lot around 25 years ago. Sure it had some oddball limitations and wierdness, but it is damn fast and quite efficient for some coding purposes.

    I wrote a Fortran program that printed out a calendar with the year in a banner font at the top. It took 57 cards (no library calls etc, beyound PRINT). Try do anything useful in 57 lines with today's languages.

    It shouldn't surprise you... but I use fortran quite a lot today. A lot of the oddball limitations and weirdness are gone in Fortran 90/95... though I still use Fortran 77. It is still an amazingly useful and fast language to code numerical stuff in. Yes indeed. No need for any math.h in this programmer's world! I just hope this Fortress business is just as fast as fortran, because if it's not... you won't see many fortran guys switching over. The main reason (as far as I'm concerned) that we're still using it is that it is fast, and simple. OOP belongs in business... not in Molecular Dynamics.

    Mike.

  • Multi-core? (Score:3, Insightful)

    by Nasarius ( 593729 ) on Monday January 15, 2007 @05:38PM (#17619262)
    What does "designed specifically for multi-core processors" mean? Has something radically changed about SMP and multithreading since Intel and AMD decided to put two CPUs into one package? I suppose there are some cache differences, but that's about it. What is it with people who have apparently never heard of any computer hardware outside the home desktop, now excitedly babbling about "multicore" software?
  • by zappepcs ( 820751 ) on Monday January 15, 2007 @05:44PM (#17619318) Journal
    In recent times, we've seen all kinds of credit given to companies that have nothing more than vaporware (I don't dare mention anything from Apple here or I'll get modded as troll) and yet Sun, like them or not, is giving back. Perhaps they are not giving back things that you will immediately use or notice, but they are giving back, making it open source, working to stay relevant. That last phrase was on purpose.

    They are doing this in complete (nearly) opposition to the position that MS takes. I think Sun deserves a little credit. The did (sort of) open some of the hardware as well, and while that may not fall into hobbyists hands soon, it is a start. Opening (in any meaningful fashion) some high end hardware is a big thing.

    No, I don't have tons of Sun hardware or software at home, but I do use it at work, and its incredibly stable, if not super easy to administrate.

  • Re:Multi-core? (Score:4, Insightful)

    by IvyKing ( 732111 ) on Monday January 15, 2007 @05:47PM (#17619356)
    Not sure if you're being sarcastic or ignorant. One of Sun's latest jewels is the 8 core Niagara and it behooves them to come up with ways of keeping all 8 cores going on a processor.
  • Comment removed (Score:3, Insightful)

    by account_deleted ( 4530225 ) on Monday January 15, 2007 @05:50PM (#17619402)
    Comment removed based on user account deletion
  • by Coryoth ( 254751 ) on Monday January 15, 2007 @05:52PM (#17619438) Homepage Journal
    I heard his talk at OOPSLA 2006 on the language design decisions they made for Fortress, and although my Fortran (and math) experience is too shallow to fully appreciate it, I found it fascinating nonetheless.

    I lack the fortran experience (I've only done the bare minimum of fortran programming), but I do have the math, and from my perspective, having read through the fortress spec (PDF) [sun.com] (okay, I skimmed it - it's huge) it looks like an excellent language for any mathematics intensive work (and indeed physics too, with its support for dimension and unit annotations). There's a great deal to like about the language. I hope it is successful.
  • by Anonymous Brave Guy ( 457657 ) on Monday January 15, 2007 @05:55PM (#17619492)

    Fortress uses a lot of unicode mathematical operators, which slashdot will quite pitifully fail to display.

    And most keyboards will pitifully fail to type, in any straightforward and reliable way.

    And most monitors will fail to display unambiguously, in any straightforward and reliable way.

    Programming should be based on mathematics, not written in it -- and that's from someone who writes specialist mathematical libraries for a living. Seriously, if TeX is the least friendly programming environment I have ever encountered in serious use, and the average programming font has trouble distinguishing (, <, { and [ characters, making code look more like typeset mathematics is not the way forward.

  • by mhore ( 582354 ) on Monday January 15, 2007 @06:14PM (#17619844)

    OOP belongs in business... not in Molecular Dynamics.

    Yes, because in physics, nothing is like anything else. (rolls eyes)

    Nah, that's not what I'm saying. It's just that OOP can sometimes obscure what's going on and just add unneeded complexity to a program. I had a friend do some Monte Carlo stuff, and he used all kinds of OOP in his code, and it was done in a sane way. But trying to debug that code was hell. There's a place for everything, and I'm not convinced that simulations are the place for it.

    Mike.

  • by Anonymous Admin ( 304403 ) on Monday January 15, 2007 @06:19PM (#17619916)
    pgfortran produces highly optimized parallel code for running on multi processor machines and clusters. It has for years. CF90 produces highly optimized code for running on 1024 processor machines, and has for years. Neither one is an interpreter. If you want fast parallel math code, get a good compiler. There are plenty of them available, including many free ones.

  • by morgan_greywolf ( 835522 ) on Monday January 15, 2007 @06:44PM (#17620334) Homepage Journal
    An OOP program that follows good object-oriented design principles will actually be very easy to debug.

    Naturally in many types of scientific programming, object-oriened design isn't strictly necessary and can get in your way. Most of these programs are simple programs designed to do one task -- calculate this or simulate that. But as you get more and more complex, with lots of little discrete parts that need to interact in specific ways, object-oriented design is, IMHO, the only way to go.

    The problem with most OOP programmers is that they fail to understand object-oriented design. I think it can best be compared with the UNIX philosophy of (in this case) each object doing one thing and doing it well.

    All this being said, you're right when you say that OOP is geared as business programming and business logic. OOP is a perfect match for relational databases, for example. It's also a very good match for GUI development, since you have all of these compartmentalized pieces (widgets) that need to work together in a specific way (like when I click on the checkbox, this button needs to become activated, for example). If you don't have all of these compartmentalized pieces, then, yes, I agree that OOP just gets in the way.
  • by aztektum ( 170569 ) on Monday January 15, 2007 @06:44PM (#17620342)
    Coming from someone who hasn't written more than a couple shell and Python scripts, why does it feel like there is nothing but resistance from the "seasoned" IT crowd over new ways of trying to do things? I'm not saying either way is better or worse, but suggesting a new method, and from my already admittedly newbie viewpoint, more "human readable" methods (in this case assuming one is a pure math junkie), for coding would seem far more natural and easy to accomplish tasks in. Inevitably though, someone always tries to cut if off at the knees as "not as good as what we already have." Is that really the case? Is it resistance to change? I guess what I'm trying to say is, without even giving something "new" a chance it's derided as a flawed product.
  • Re:Read the FAQ (Score:3, Insightful)

    by glwtta ( 532858 ) on Monday January 15, 2007 @06:59PM (#17620572) Homepage
    Really, why not let your IDE render it into proper mathematical symbols for you? As a mathematician it looks damn appealing to me.

    Because as programmers, we'd rather not have what essentially is a whole new edit-compile-debug cycle just to type the damn code. IDEs are great, and they vastly improve productivity, but they start to hurt productivity if they are required to do something with your code.
  • by Coryoth ( 254751 ) on Monday January 15, 2007 @07:13PM (#17620768) Homepage Journal

    It seems that the only Fortran-esque side of Fortress is that it is aimed at scientific computing and number-crunching.

    Which is to say, its aimed at the niche that Fortran, despite how old and creaky it is, still rules. The world of programming has come a long way since Fortran, but nothing matches it for scientific computing and number crunching. To be honest that's about the only aspect of Fortran worth keeping...

    Other than that, the programming paradigm of Fortress is based on object orientation and programming-by-contract. If Java smelled like Smalltalk, Fortress smells like Eiffel.

    You say that like it's a bad thing! Eiffel is, surprisingly enough, a very nice language to work in. I'd be very happy with a language targetted toward numerics (And with real math style notation to boot!) that was as pleasant to work with as Eiffel. Design by contract is a good thing, and importantly it is optional. You can specify a contract or property for a function, but you don't have to. The ability to flesh out an API with contracts and properties is a damn good thing - something far too many languages lack.

    means that people will write more to achieve the same thing with some guarantee of correctness.

    Contracts and properties are optional. If you don't want correctness guarantees then don't use them. On the other hand if you would like a little more insurance... well then they're very useful indeed.

    means that Sun bothered to include kelvin, Pascal, meter, second, Newton and every Physical unit you can think of as language keywords, that all parameters should specify what unit they're in, and that the language will do some effort to prevent errors arising from adding oranges and bananas, or precision errors from summing milligrams to some hundreds of kilograms.

    Again, specification of units is optional. If you don't want to worry about units then don't use them. Then again if you're writing some physics code then having the sanity check of unit analysis to make sure everything is working properly is a damn useful thing to have available. Having dimensions and units as not more onerous than having types - it is simply another level of checking available; the benefit here is that the units are optional: if you don't want the extra checks, don't use them.

    means that Fortress will make Perl look readable. Good part of the language specification deals on how the editor should render the source code onscreen. The logical AND operator is the upward-pointing wedge symbol of math. The logical OR operator is the downward-poiting wedge symbol. The Integer type is that special-font Z, and a real is that special-font R. The specification deals on how to represent these in an ASCII file, using a meta-language similar to TeX (but incompatible with).

    Well that depends on who you are really: Fortress looks incredibly readable to me. Then again I am a mathematician and look at math, formatted in exactly that way, all the time. If you spend all day looking at Java and C code then sure, it's going to look unfamiliar to you. Then again, you probably aren't in the target market for a language aimed specifically at scientific computing. To me a lot of C looks awful and can be hard to read because of its requirement that you pound everything into basic ASCII. It really all depends on what you're used to. As to how easy it is to enter - sure it would be nice if it was straight TeX - but then it is so similar that there is really no problem learning it. If you actually do a lot of math then you can name all those symbols straight away, and what you have to type in to get the symbol is simply it's name. Again, not ideal for people who don't do a lot of math, but then that isn't the target audience. If you do much math then the symbols look right instead of being the ugly ASCII kluges of other languages, and

  • Re:Multi-core? (Score:3, Insightful)

    by AchilleTalon ( 540925 ) on Monday January 15, 2007 @07:26PM (#17621020) Homepage
    "Fortress is proposing a language to automate that scaling."

    I beg your pardon, if we need to use and learn a specific language to take advantage of the multicore technology, it is mainly because it is not automatic.

    So, I guess learning the language itself is only part of the problem. The other one will be to be able to identify by hand what can take advantage of the multi-cores and how.

    I don't see were there is a big advantage to use this language for the users, maybe Sun is seeing much advantages to it for writing a backend, but right now it's only smoke.

  • Not at all (Score:1, Insightful)

    by Anonymous Coward on Monday January 15, 2007 @08:07PM (#17621552)
    All they do release under an OSS license is an *interpreter* of the language. This is completely worthless for high-end number crunching. Wake me up when they open source a good optimising *compiler*.

    It's a "draft specification" -- calm down. And an interpreter is a great first step: it makes it easy to play with the language.

    If you've ever written a compiler, you know that an interpreter is just a compiler that calls eval() on the nodes of the AST, instead of emit() to generate opcodes. It's half a compiler, and arguably the more useful half.

    They could have waited until they had the opcode generation and optimization working, but what would be the purpose of that? It's useful today, even if it's not super fast. Premature optimization, you know -- better to get lots of feedback about the language before you spend a bunch of time tweaking your optimizers.
  • woo...hoo... (Score:1, Insightful)

    by Anonymous Coward on Monday January 15, 2007 @08:32PM (#17621814)
    Wasn't Fortress the loser in DARPA's High Productivity Computing Systems challenge?

    http://it.slashdot.org/article.pl?sid=06/11/22/203 7231 [slashdot.org]

    Perhaps deriving "integer" from "commutative ring" made people think Sun went a little overboard with the OO.
  • Re:Wellllllll... (Score:3, Insightful)

    by kaffiene ( 38781 ) on Monday January 15, 2007 @08:58PM (#17622176)
    WTF?

    You may as well say the STL is bad because it gives you multiple data structures!

    Only the basic array is part of the Java language, all the other structures are library based (exactly like C++ with STL!)

    Talk about FUD
  • by mjc_w ( 192427 ) on Monday January 15, 2007 @09:20PM (#17622394)
    Another possibility is that the program used a lot of indices (for 1 and 2 (or more) dimensional arrays) and the fortran version had subscript checking on. My experience is that subscript checking can add (undex VAX VMS) up to 20 to 30 percent to the run time. My experience is also that this catches at least 1/3 of my errors and is definitely worth it.

    Fortran (and Ada) are languages that understand arrays.

    In C, an array is a pointer, an offset, and a prayer.

  • by TheRaven64 ( 641858 ) on Tuesday January 16, 2007 @07:11AM (#17626732) Journal
    You missed off the banner font for the heading. Also, if you're going to use that many library objects, you may as well do the whole thing in a shell script using banner and cal; I can duplicate your program's functionality in the following shell script:

    #!/bin/sh
    cal $1
    Of course, doing so completely misses the original poster's point, as you have done.
  • by conradp ( 154683 ) on Tuesday January 16, 2007 @08:29AM (#17627144) Homepage
    OOP is not just for "business programming" and GUIs, it's actually perfect for large-scale simulations. Simulations have events and objects and forces and flows and all of these are very well modeled by objects. The sort of "units consistency" and dimension and bounds checking that Fortress wants to embed in the language can all be done in C++ with cleverly-designed template classes.

    If debugging is hard it can be for a couple of different reasons. You may have poor debugging tools. Or the object abstractions used in the program may not be very conceptually clear and well-designed. Or maybe as a Fortran 77 programmer you're just used to seeing 500 lines of code all straight in one function modifying global variables and find it hard to step into lots of function calls, whereas on the other hand OOP programmers would feel lost in a massive 500-line function that modifies global variables and are more comfortable stepping into well-named functions with clearly defined inputs and outputs for which you can write clear, low-level unit tests.

    What OOP is not generally good for, however, is speed and performance. The function calls are intended to mask the irrelevant details of how things are computed, but they end up also masking how long a computation takes and hide opportunities to eliminate redundant computations. The OOP community talks about optimizing compilers and function inlining, but in C++ anyway the problems of separate unit compilations and header file dependencies make these solutions nasty and suboptimal, and most other OOP languages have overheads that are even worse. It will be interesting to see how Fortress addresses these problems, with so many languages to learn from and no need for backwards compatibility they should be free to come up with something that enables the best of both worlds.

To do nothing is to be nothing.

Working...