Slashdot Mirror


Julia Language Seeks To Be the C For Numerical Computing

concealment writes in with an interview with a creator of the (fairly) new language Julia designed for number crunching. Quoting Infoworld: "InfoWorld: When you say technical computing, to what type of applications are you specifically referring? Karpinski: It's a broad category, but it's pretty much anything that involves a lot of number-crunching. In my own background, I've done a lot of linear algebra but a fair amount of statistics as well. The tool of choice for linear algebra tends to be Matlab. The tool of choice for statistics tends to be R, and I've used both of those a great deal. But they're not really interchangeable. If you want to do statistics in Matlab, it's frustrating. If you want to do linear algebra in R, it's frustrating. InfoWorld: So you developed Julia with the intent to make it easier to build technical applications? Karpinski: Yes. The idea is that it should be extremely high productivity. To that end, it's a dynamic language, so it's relatively easy to program, and it's got a very simple programming model. But it has extremely high performance, which cuts out [the need for] a third language [C], which is often [used] to get performance in any of these other languages. I should also mention NumPy, which is a contender for these areas. For Matlab, R, and NumPy, for all of these options, you need to at some point drop down into C to get performance. One of our goals explicitly is to have sufficiently good performance in Julia that you'd never have to drop down into C." The language implementation is licensed under the GPL. Lambda the Ultimate has a bit of commentary on the language, and an R programmer gives his two cents on the language.

13 of 204 comments (clear)

  1. Sage by donaggie03 · · Score: 5, Informative

    I use Sage quite a bit. It's basically a wrapper for almost all the mathematics software available. http://www.sagemath.org/ While you still need to drop down to C for great performance, it solves a lot of the interoperability issues discussed. In other words, take the example from the summary: from Sage, you can call Matlab commands and then immediately use the results with R commands. Sage works through a web browser, and it's based on Python, which is a plus.

    --
    Three days from now?? Thats tomorrow!! ~Peter Griffin
  2. FORTRAN? by TWX · · Score: 5, Interesting

    From wikipedia: "FORTRAN is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing." Sounds to me like unless there's a particular weakness in FORTRAN that doesn't lend itself to workarounds or repair in newer versions of the language, there's already a numeric computation and scientific programming language that's well documented, mature, and widely distributed.

    --
    Do not look into laser with remaining eye.
    1. Re:FORTRAN? by Anonymous Coward · · Score: 5, Interesting

      Second that. Modern FORTRAN kicks some serious butt and has a huge user and support base. Language snobs dismiss it as antiquated but they're usually referring to versions of the language that haven't been used since the 1980's. There are good reasons that current HPC developers use mostly FORTRAN and C, like good support for parallalization, global memory functions for clustering, and efficient compilers.

      It's great that people make new tools and share them with others, but many times that effort could be put into making existing good tools even better.

    2. Re:FORTRAN? by ahoffer0 · · Score: 4, Interesting

      I attended SC11 (sc11.supercomputing.org) last year. FORTRAN is still the work horse of (large-scale) numerical computing. C/C++ are popular. So are MATLAB and R. They was even a NumPy tutorial and some sessions on emerging languages like Chapel. But FORTRAN was king.

      I thought this was an interesting thread about FORTRAN v. C -- http://www.physicsforums.com/showthread.php?t=169974

      Off-topic:When it came to programming, the general drift of the conference was not toward new languages, but toward adding meta-information, vis-a-vi compiler directives.

    3. Re:FORTRAN? by gl4ss · · Score: 4, Informative

      well.. apparently this "language" has modern fortran built in.

      just open the link. there's some stats there. I don't envision huge popularity for this though.. unless he integrates/develops it into a fullblown mathlab competitor(that javascript does mandelbrot almost as fast is kind if peculiar though..). not as peculiar as "pi sum" bench being faster on javascript and julia than c++.

      "The library, mostly written in Julia itself, also integrates mature, best-of-breed C and Fortran libraries for linear algebra, random number generation, FFTs, and string processing. "

      --
      world was created 5 seconds before this post as it is.
    4. Re:FORTRAN? by plopez · · Score: 4, Informative

      Ummmm..... Fortran has supported free form format since ummmm..... 1993. All modern Fortran compilers I know of support both the old and the new formats. Cast off your old prejudices and learn what a modern programming language Fortran '08 really is.

      BTW, I believe using the "FORTRAN" has been deprecated since the 70's. It is now "Fortran".

      --
      putting the 'B' in LGBTQ+
  3. It's the packages stupid! by Hatta · · Score: 4, Interesting

    What will make or break this language is the availability of addon packages for it. A lot of people who use R don't do much coding themselves. They read in data, preprocess it a little bit, and then apply one of the packages found in CRAN.

    CRAN is like CPAN, but for R instead of Perl. And we can expect similar behavior from them. Perl probably wouldn't be anyone's first choice for a project these days, but the size and scope of CPAN makes it really really easy to benefit from the work of others. This is a lot of inertia, and a big reason why Perl is still used when newer languages have significant advantages.

    There's so much software, particularly academic software, implemented in R that I just don't see it going away. e.g. the entire Bioconductor suite is implemented in R. Just about any bioinformatics paper you pick at random will refer to, if not contain R code.

    How much work are we going to have to reimplement if we want everyone to use the one true numerical programming language? And if we don't want that, isn't it just contributing to fragmentation?

    --
    Give me Classic Slashdot or give me death!
  4. Numerical Python by Dr.+Tom · · Score: 5, Informative

    Robust, mature, fast, easy to use, side-by-side with .m it wins hands down, really no comparison, use Python.
    Cython if you need to make it faster for the %5 of code that is too slow.

    import numpy
    import pylab

  5. Re:The "C" for some field? by Lunix+Nutcase · · Score: 4, Insightful

    If you aren't writing readable and maintainable code in C that's the programmer's fault. You aren't forced to use obscure abbreviations, bizarre inline hacks, etc. There is plenty of readable and well-maintained code that has been running non-stop longer than your modern langauges have existed.

  6. Re:Version 3f670da0 by ifrag · · Score: 4, Funny

    What is that a hash of the source code?

    Careful... wouldn't want to give the Mozilla devs any ideas.

    --
    Fear is the mind killer.
  7. Re:Fortress by dougmc · · Score: 4, Informative

    The weakness of FORTRAN is that it entirely misses out of 50+ years of research and innovation in programming languages.

    OK, maybe the original version of Fortran, the one made 50+ years ago, missed out on "50+ years of research and innovation in programming languages", but you are aware that Fortran has been updated since then, right?

    Fortran now includes a great number of the improvements to programming languages made since then. But don't take my word for it -- check out Wikipedia's page on it. I picked Fortran 90 as a starting point, but there's been many versions of Fortran made since the first, with new features (often coming from other languages) being added all the time.

    And not only is Fortran still being actively developed, but the library of well tested and optimized numerical computing code already written it it is massive.

    I'm not saying that there's not room for a new language, and certainly, Fortran doesn't have all the features of some new languages, but your claim that Fortran "entirely misses out of 50+ years of research and innovation in programming languages" is completely and utterly wrong.

    I should also mention that they stopped calling it FORTRAN in all caps back in 1990 or so when Fortran 90 came out. Now it's just Fortran. But even the venerable FORTRAN 77 benefited greatly from programing language developments available at the time.

  8. Re:The "C" for some field? by swan5566 · · Score: 5, Insightful

    The problem is that a lot of researchers and scientists who write these things aren't trained in good programming practices, and most of the good programmers don't have the background to do a lot of the advanced math stuff properly.

    --
    In debates about Christianity, there are two groups: those looking for answers, and those looking to just ask questions.
  9. Re:The "C" for some field? by jedwidz · · Score: 5, Funny

    Then again, most of it is written by biologists.

    You mean 'evolved by biologists'. They aren't strong believers in intelligent design.