Slashdot Mirror


Sun Releases Fortran Replacement as OSS

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."

53 of 233 comments (clear)

  1. Doesn't make a difference. by gardyloo · · Score: 2, Funny

    In a hundred years, programmers will be using a language that's completely unrecognizable to modern users -- and it will be called "Fortran".

    1. Re:Doesn't make a difference. by Harmonious+Botch · · Score: 4, Interesting

      Yep, programming languages advance by evolution, not intelligent design.

    2. Re:Doesn't make a difference. by celardore · · Score: 3, Funny

      Yep, programming languages advance by evolution, not intelligent design.

      Thanks for shattering my illusions. I thought programming languages were as they were, are, and always will be. I'm going to sue you.
    3. Re:Doesn't make a difference. by Mister+Whirly · · Score: 2, Funny

      "And on the 7th day God created Cobol, when he should have been resting..."

      --
      "But this one goes to 11!"
  2. Wellllllll... by SatanicPuppy · · Score: 2, Interesting

    Much as I like Java, I'm not exactly sure how much a fortran-esqe language is going to "benefit from the lesson's learned with Java". It's apples to oranges, because of fortran's narrow focus, and equally narrow deployment base. Java's primary schtick is in the exact opposite direction, with wide focus, and deployment on a large number of systems.

    I suppose increased multi-processor support would be nice. It'll all depend on performance.

    --
    ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
    1. Re:Wellllllll... by metamatic · · Score: 2, Funny

      Perhaps by benefiting from the lessons learned with Java, they mean they're going to plan ahead and have just the one implementation of each major data structure, rather than (for example) 4 different array implementations.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    2. Re:Wellllllll... by geoff+lane · · Score: 2, Interesting

      Fortress doesn't look anything like Fortran.

      The source form looks more like Algol60 printed on a flexowriter (all aged programmers will recognise this blast from the past.) There is some resemblence to BCPL. But the language is much more complex than anything most people will be familiar with.

    3. Re:Wellllllll... by kaffiene · · Score: 2, Insightful

      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

  3. Read the FAQ by symbolset · · Score: 4, Informative
    The FAQ gives this pdf example

    This one looks like a winner.

    --
    Help stamp out iliturcy.
    1. Re:Read the FAQ by Daniel+Dvorkin · · Score: 2, Interesting

      So they're going to include, what, a LaTeX implementation so programmers can make their symbols look right?

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    2. Re:Read the FAQ by msuzio · · Score: 2, Informative

      Actually, yes, that's exactly how they are doing the mathematical notations inside the source code. I thought that actually quite clever!

    3. Re:Read the FAQ by glwtta · · Score: 2, Insightful

      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.

      --
      sic transit gloria mundi
  4. Re:What's it look like? by gardyloo · · Score: 3, Funny

    program Hello_world

    ### The following is the canonical 'Hello World' program implemented in fortress ###

    load fortran77
          print *,"Hello World"

    fortress.obfuscate

    end program Hello_world

  5. Re:What's it look like? by nuzak · · Score: 4, Interesting

    http://research.sun.com/projects/plrg/PLDITutorial Slides9Jun2006.pdf

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

    --
    Done with slashdot, done with nerds, getting a life.
  6. This is fake... by Anonymous Coward · · Score: 5, Insightful

    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...

  7. APL by RAMMS+EIN · · Score: 2, Insightful

    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.

    --
    Please correct me if I got my facts wrong.
    1. Re:APL by Coryoth · · Score: 2, Informative
      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.

      I think that depends on what you mean by mathematical notation and symbols. In the case of Fortress that means Unicode input and the ability to actually render code, thus x^2 gets rendered with a proper superscript 2, array indexes a[i] get rendered to appropriate subscripts, and you have access to other nice symbols - for instance the floating point type is denoted by a blackboard bold R (as in the usual symbol mathematicians use to denote the reals) which you can enter as RR in ascii. The result is that you can enter mathematics via the keyboard and have it rendered in code with captial sigma for sums, standard arrows and cartesian product symbols to denote function signatures, actual square root symbols etc. Think of it as enriching the symbols available to be closer to the full set symbols mathematicians expect: it doesn't result in the horribly obfuscated look of APL, but is more akin to what one would see printed in a math textbook. Read through section 2.4 of the spec (PDF) to get the idea.
    2. Re:APL by Coryoth · · Score: 3, Interesting
      I'm not sure that's a good idea, either, since reals and floats are different things. Reals have infinite precision, whereas precision is finite for floats.

      In Fortress the basic types ZZ and RR provide arbitrary preceision integers and floats. If you want a specfied precision then you need, say, ZZ32 or RR64 etc. So in fact it is the correct notation.

      Yes, that's what I imagined it would be like. I also imagine actually _typing_ something that looks a lot more like regular program code, so that you still have to learn an alternative to math notation.

      Yes, but it is well documented and, if you are at all familiar with mathematics, straightforward to learn (indeed, you almost don't need to learn - instinctually typing in whatever you would say works for most symbols. It is no harder to learn than TeX - easier if you already know TeX in fact.

      Also, the result will look like what one would see printed in a math textbook, as you said which is (1) not what the programmer typed, and (2) horribly obfuscated to me (which is a personal thing, but applies to many people).

      Sure, it applies to many people. None of them are in the target market for Fortess though. Fortress is aimed at mathematicians and scientists - the sort of people who are still using Fortran - and for them the math notation makes the whole thing much, much easier to read. It all depends on what you're used to. If you're a programmer who reads C and Java all day then that probably looks good to you. If you spend much of your time reading math papers, however, then mathematical syntax looks far more natural the the elaborate and obfuscated look of C. Congratulations, you're not the target market for the language - that doesn't mean it isn't a great idea that will be of great value to many other people.
  8. Cue Fortrain Jokes by locokamil · · Score: 5, Funny

    "God is REAL unless declared INTEGER"

    "Q: What will the scientific programming language of 2050 look like? A: No one knows, but it will be called FORTRAN."

    "CS without FORTRAN and COBOL is like birthday cake without ketchup and mustard."

    "Consistently separating words by spaces became a general custom about the tenth century A.D., and lasted until about 1957, when FORTRAN abandoned the practice."

    "The primary purpose of the DATA statement is to give names to constants; instead of referring to pi as 3.141592653589793 at every appearance, the variable PI can be given that value with a DATA statement and used instead of the longer form of the constant. This also simplifies modifying the program, should the value of pi change."

    I'd actually venture that FORTRAN has more jokes about it than C. I for one welcome our FORTRESS-joke-making overlords.

  9. Another winner from Guy Steele by msuzio · · Score: 4, Interesting

    For those who won't bother to read the article, Fortress was designed by Guy Steele, which gives it a good pedigree in my book. 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.

    At the very least, Sun has given people something to think about.

    1. Re:Another winner from Guy Steele by Coryoth · · Score: 2, Insightful
      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) (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.
  10. Fortran has some coolness by EmbeddedJanitor · · Score: 3, Interesting
    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.

    --
    Engineering is the art of compromise.
    1. Re:Fortran has some coolness by mhore · · Score: 4, Insightful

      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.

      --

      Mmmm......sacrelicious.

    2. Re:Fortran has some coolness by Stephen+Williams · · Score: 3, Insightful

      Try do anything useful in 57 lines with today's languages.

      Given that DeCSS can be written in six lines of illegible Perl, I shudder to think of what a Perl coder could accomplish with 57 lines...

      -Stephen

    3. Re:Fortran has some coolness by mhore · · Score: 2, Insightful

      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.

      --

      Mmmm......sacrelicious.

    4. Re:Fortran has some coolness by morgan_greywolf · · Score: 2, Insightful

      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.

    5. Re:Fortran has some coolness by gardyloo · · Score: 2, Funny
      Especially if you use something like C++ you know perfectly well how the resulting code will behave.

          I am not a programmer. I learned everything I know about programming from jokes going around the internet, like the "How to shoot yourself in the foot with different programming languages" one. The entry in that for C++ reads something like
       

      C++
              You accidently create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can't tell which are bitwise copies and which are just pointing at others and saying "That's me, over there." Something doesn't quite agree with your post, though I'll be damned if I can tell what it is.
    6. Re:Fortran has some coolness by ananamouse · · Score: 2, Funny

      >> OOP belongs in business... not in Molecular Dynamics. >Yes, because in physics, nothing is like anything else. (rolls eyes) First, let us assume a uniform, spherical keyboard...

    7. Re:Fortran has some coolness by TheRaven64 · · Score: 2, Insightful
      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.
      --
      I am TheRaven on Soylent News
    8. Re:Fortran has some coolness by conradp · · Score: 2, Insightful

      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 be absolutely certain about something, one must know everything or nothing about it." -- Olin Miller
    9. Re:Fortran has some coolness by Thuktun · · Score: 2, Funny

      Don't forget the oft-quoted line allegedly from Steve Haflich in comp.lang.c++, "When your hammer is C++, everything begins to look like a thumb."

  11. Multi-core? by Nasarius · · Score: 2, Insightful

    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?

    --
    LOAD "SIG",8,1
    1. Re:Multi-core? by IvyKing · · Score: 3, Insightful

      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.

    2. Re:Multi-core? by Cassini2 · · Score: 4, Informative

      Multi-processor programming is becoming a real force / nightmare. Dual-core is only the beginning. At the rate AMD and Intel are moving, we will have Niagara like chips in our home PCs. Already, AMD and Intel have quad-core processors, and are talking about dual quad core (8 core) computers. The average program just can't scale well to 8 cores. Most programs, programming languages, and algorithms don't scale well with increasing the number of cores.

      Fortress is proposing a language to automate that scaling. They are discussing language features to deal with multi-CPU systems, where multiple memory banks are present. AMD's multi-CPU system's (Opteron) with HyperTransport each have a separate memory banks for each processor. It makes sense to allocate the half of the array used by CPU #1 in CPU #1's memory bank, and the other half used by CPU #2 in CPU #2's memory bank. Then the threads should be split so first pair of cores on CPU #1 work in the first half of the array, and the second pair of cores on CPU #2 work on the activities related to CPU #2. Currently, all these multi-processor mapping activities happens manually, and it really sucks. It would be wonderful if programming languages supported this activity automatically.

      I don't know if Fortress is the answer to the multi-core / multi-CPU problem. I hope something is. The computing world needs a solution.

    3. Re:Multi-core? by AchilleTalon · · Score: 2, Insightful
      "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.

      --
      Achille Talon
      Hop!
  12. I don't see anyone trying to give credit where due by zappepcs · · Score: 4, Insightful

    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.

  13. Intellectual Fortress Commentary by namtro · · Score: 5, Informative

    Robert O'Callahan (a core Mozilla developer) had some fairly insightful comments on Fortress a couple of days ago I personally found interesting...

  14. Re:What's it look like? by Anonymous+Brave+Guy · · Score: 2, Insightful

    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.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  15. Re:What's it look like? by Goaway · · Score: 3, Funny

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

    You may not have noticed, but cutting-edge monitors nowadays are capable of displaying graphics, and not just text.

  16. From the specification, it is Ugly by XPulga · · Score: 5, Interesting

    I've seen this a couple of days before and bothered to skim through the specifications carefully hidden in the depths of Sun's site. I am not pleased with what I saw. Summarizing:

    It seems that the only Fortran-esque side of Fortress is that it is aimed at scientific computing and number-crunching. 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.

    Fortress has focus on three basic things:

    1) programming by contract (pre-conditions and post-conditions of a method)
    2) Numerical and dimensional correctness
    3) Keeping the programming language as close to mathematical notation as possible.

    1) means that people will write more to achieve the same thing with some guarantee of correctness. Much like Java's enforcement of exception handling, an be easily misused.

    2) 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.

    3) 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).

    Programming Fortress on anything other than Sun's own IDE will most likely be unfeasible. Think of every math operator you've seen. If you have experience with TeX/LaTeX, think of those 4 pages from symbols.dvi with all symbols you could use. Those are the Fortress operators. Sun has finally come with something mor unreadable and with more operators than Perl. And the operators aren't even ASCII, they're untypeable. The bitwise AND and OR operators are a weird thing I had never seen before (after 5 years of engineering, and 5 years as graduate student in CompSci).

    That said, Fortress may even succeed as a niche programming language. But I still have two concerns left:

    How will non-scientific code look on it ? Surely Fortress programs will want to open windows, and dialog boxes, access files and the network. The math-oriented syntax has all it takes to make UI programming uglier than C+Xlib.

    Sun claims that Fortress is aimed at High Performance Computing. Sun released an alpha interpreter of Fortress, which is written in Java. What kind of sick language designer writes an interpreter in Java to demonstrate something related to High Performance computing ?

    1. Re:From the specification, it is Ugly by Coryoth · · Score: 5, Insightful

      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

    2. Re:From the specification, it is Ugly by XPulga · · Score: 2, Interesting

      The major issue with Eiffel was the lack of APIs (or bindings) for useful stuff when the language appeared. The bindings came too late. My point in comparing Fortress to Eiffel was pointing out that Fortress may be closer to Eiffel than to Fortran, and the press release from Sun mentions Fortran alone.

      Fortress may be wonderful for the scientific part, but I do hope Sun finds a way to keep the GUI/OS-interaction code in some other language (Java is reasonable), making it possible to build applications from Fortress and non-Fortress parts. Treating mouse and other UI events with that math notation won't be fun, even for the most devout Mathematician.

      I didn't see in the specs (I skimmed through it quickly, could be my fault) how Fortress is meant to parallelize computations more efficiently. From all I saw, I assume each method runs atomically in a single thread and parallelization of methods is be based on the contracts.

      I am a Perl programmer, and I don't think Perl is that unreadable. In fact, I agree with most of its design. I am happy that now we can point the finger at something else when someone complains about "weird syntax" and "too many operators".

    3. Re:From the specification, it is Ugly by Coryoth · · Score: 3, Informative
      My point in comparing Fortress to Eiffel was pointing out that Fortress may be closer to Eiffel than to Fortran, and the press release from Sun mentions Fortran alone.

      And I think that's reasonable, given that the role that Fortress is intended to play is far more important (especially given that it is a niche role) than what Fortresses ancestor languages are. It owes as much to Scala (at least it looks that way - I have no idea whether Scala was actually an influence) as it does to Eiffel. What counts is what it is intended to be used for - which is scientific computing and HPC where parallelisation counts: that is to say the niche currently filled by Fortran.

      I do hope Sun finds a way to keep the GUI/OS-interaction code in some other language (Java is reasonable), making it possible to build applications from Fortress and non-Fortress parts. Treating mouse and other UI events with that math notation won't be fun, even for the most devout Mathematician.

      I honestly have no idea what you mean here. I expect GUI/OS-interaction code would most likely look an awful lot like Scala, which is hardly a problem. The math formatting onlycomes in when actually doing mathematics. The rest of the time it's essentially just an OO language like any other, and won't look any different to any other language. Treating UI events will be straightforward.

      I didn't see in the specs (I skimmed through it quickly, could be my fault) how Fortress is meant to parallelize computations more efficiently. From all I saw, I assume each method runs atomically in a single thread and parallelization of methods is be based on the contracts.

      There are a number of things that Fortress does to make parallelisation work. For instance for loops are parallel by default, as are vector operations. Try looking at the "atomic" keyword to see more on how control of serial and parallel operation is handled. If you want easy parallelisation via each method working in a separate thread and contracts determining wait conditions then look at Eiffel and SCOOP: it introduces a single new keyword (separate) and allows you to do just that.

      I am a Perl programmer, and I don't think Perl is that unreadable. In fact, I agree with most of its design. I am happy that now we can point the finger at something else when someone complains about "weird syntax" and "too many operators".

      I think what you need to consider is how many operator symbols are defined by default in Fortress: it actually isn't that many. Fortress simply supports unicode and the ability to define new operators using classical math symbols - it doesn't have them all defined in the base language. Almost everything is farmed out to libraries. You may think it looks ugly and complicated compared to Perl but I (who have done a fair bit of Perl programming, and have spent time looking at Fortress as it developed) think you're being premature. See it in action or actually try using it yourself and I think you'll quickly find it is, in fact, a lot more readable than Perl.
  17. Good News, but work is still needed by deadline · · Score: 3, Informative

    This announcement is great news because the parallel programming problem is quite difficult and is becoming more important as multi-core systems emerge. One important distinction that is often not made, is the difference between concurrency and parallel execution. (although the article does touch on it)

    Basically, determining whether a program or algorithm is concurrent (parts can computed independently) is possible but can be difficult in some cases. Many people think that is the essence of parallel computing. It is not.

    Once you have the concurrent parts, the questions becomes "whether they should be executed in parallel". The answer depends upon the ratio of computation to communication (parallel overhead). All parallel computers (and clusters) have different ratios and therefore, something that runs well in parallel on one machine, may run poorly on another.

    Having a language where concurrency can be expressed and controlled, allows researchers to investigate the second issue (parallel scheduling).

    If you want to read more about this kind of thing (and some other parallel programing ideas) take a look at some of the Cluster Programming articles on ClusterMonkey.

    --
    HPC for Primates. Read Cluster Monkey
  18. as opposed to pgfortran? by Anonymous+Admin · · Score: 2, Insightful

    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.

  19. Re:What's it look like? by glwtta · · Score: 2, Funny

    Fortress uses a lot of unicode mathematical operators

    This is also something I'm really looking forward to in Perl 6; I'm guessing the conversation went like this:

    Guy: "Here's an idea - let's require the coders to use a lot of characters that aren't on the keyboard!"
    Other Guy: "Brilliant!"

    I'm sure productivity will skyrocket with this invention.

    They also seem to have jumped on the (to me) unfathomable "using braces to clearly delineate code blocks is evil!" bandwagon. I guess it's what all the cool kids are doing these days.

    Other than that, it looks really neat!

    --
    sic transit gloria mundi
  20. Re:What's it look like? by aztektum · · Score: 2, Insightful

    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.

    --
    :: aztek ::
    No sig for you!!
  21. i totally agree... by andyr0ck · · Score: 2, Informative

    ...all i've seen Sun do over the last few years is open more things up. Solaris used to cost us money for disks; now it's free (and there's an open source version), same for Java, now it's GPL'd. Anyone like open source chips?

    don't get me wrong, i don't think the sun (not much pun intended) shines out of their collective behind. there's still some stuff that grates; service plans just to get the 'recommended' patch clusters. they are moving in the right direction, as parent said.

  22. Fortran aint that fast... by spagetti_code · · Score: 3, Interesting
    I know that Fortran has a good reputation for speed...

    But when I was postgrad at university, I helped a Math mate recode some department apps used in his thesis from Fortran into 'C'.

    The end result is the damn stuff ran faster. I looked into it more deeply to try to understand the difference - was it that I (comp-sci major) was coding the apps more cleanly than the original math majors?

    Details are lost - it was a while ago - but I do recall that the 'C' libs were doing most floating point operations faster than fortran. Not just the low level co-processor stuff, but also the more complex operations.

    Surprised the heck out of both of us. I suspected at the time that it was just the variant of fortran we were running on Vax's, but didn't bother checking further.

    1. Re:Fortran aint that fast... by mjc_w · · Score: 4, Insightful

      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.

      --
      This is the Constitution.This is the Constitution under the Bush administration. Any questions?
  23. Go read about it... by mritunjai · · Score: 4, Informative

    Folks,

    Seriously, first go and read about it before making any comments or cracking FORTRAN jokes.

    This language is unfortunately advertised as "FORTRAN replacement" though probably the only thing it shares with FORTRAN is that it is targetted at scientific computing. But that's about it!

    Secondly, there is a different between language specification and implementation! The "interpreter" is just proof of concept and a fast way of giving means to people to play with it so that you can ot just try to express your computation in it, but also see it running in flesh! Though, it is primarily of interest to language designers to find out implementation quirks and iron them out as the language design evolves. A compiler is usually the final outcome, but is not the goal. The goal of language design is to address the problems in the domain it is targetted to, effectively.

    I have been following the developments in Fortress community for a while and it is a very peculiar one in its own regard. Guy Steele has bettered himself again and has set some of the firsts-

    1. Integration with typography system. The programs are not just typed, but typed well. You can typeset your equations. The primary symbol set is unicode (with ASCII symbols for lagacy compatibility).

    2. Full support for closures, mixins etc with multi-paradigm programming support.

    3. The language specification implies parallelism by default! loops are parallel, unless specified serial.

    4. Units are included in the language type system. So the compiler can not just check whether you're using the right storage type (int, real etc), but also whether the calculation you're coding actually makes sense!

    and many more. It is a great read for anyone remotely interested in computing, languages and software enginnering and development.

    Please follow the links to the specification down in this thread and go through it, if your busy schedule permits.

    Thanks

    --
    - mritunjai
  24. SVN checkout by lancelet · · Score: 2, Informative

    Has anyone been able to do a fresh checkout via SVN since the SlashDot posting? I keep getting the following error:
    svn: REPORT request failed on '/svn/fortress/!svn/vcc/default'
    svn: REPORT of '/svn/fortress/!svn/vcc/default': 400 Bad Request (http://fortress.sunsource.net)

    I even registered as an "observer" of the project in case that was blocking my SVN access.

    I thought it'd be nice to play with it for a while... you know, before bashing it. :-)

  25. Re:You will never replace Fortran by daverabbitz · · Score: 2, Funny

    Real men use punch-cards.

    --
    What could be better than a jet powered motorcycle? http://www.youtube.com/watch?v=u8l6GTHLSWE