Slashdot Mirror


Julia 1.0 Released After a Six-Year Wait (insidehpc.com)

An anonymous reader quotes InsideHPC: Today Julia Computing announced the Julia 1.0 programming language release, "the most important Julia milestone since Julia was introduced in February 2012." As the first complete, reliable, stable and forward-compatible Julia release, version 1.0 is the fastest, simplest and most productive open-source programming language for scientific, numeric and mathematical computing. "With today's Julia 1.0 release, Julia now provides the language stability that commercial customers require together with the unique combination of lightning speed and high productivity that gives Julia its competitive advantage compared with Python, R, C++ and Java."
The Register reports: Created by Jeff Bezanson, Stefan Karpinski, Viral Shah, and Alan Edelman, the language was designed to excel at data science, machine learning, and scientific computing.... Six years ago, Julia's creators framed their goals thus:

"We want a language that's open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that's homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled...."

In a julialang.org post announcing the milestone, the minders of the language claim to have achieved some of their goals.

4 of 131 comments (clear)

  1. First impression by Tough+Love · · Score: 4, Interesting

    My first impression of Julia was favorable. I fired up the command line interpreter and typed in 2 + 2. Prints out 4, just like Python. Then typed in 2**4:

    julia> 2**4
    ERROR: syntax: use "^" instead of "**"

    Wow, I like that. I managed to define a function, f(n) = n * n, without reading the manual but didn't get much further without reading the docs docs. But great start, I already see this as a reasonable alternative to what I usually use Python for: a desktop calculator.

    Initial impression matters. Now, with a postive one, I will go deeper and see if Julia is really what I should be coding one-offs in, instead of Python or Go.

    --
    When all you have is a hammer, every problem starts to look like a thumb.
  2. Plotting is Broken by Anonymous Coward · · Score: 2, Interesting

    For a technical computing language, One of the major overnights was plotting. It is a mess. There were about 6 different plotting libraries, each with different interface. The most popular was to install python and use Matplotlib.

    There has been an attempt to wrap all of them up into plots.jl but you end up with something that never quite covers what you need.

    It also uses array indexa starting from 1......

  3. Re:No classes, No goto by Misagon · · Score: 3, Interesting

    The instances where goto is useful can often be boiled down to a few different cases.
    IMHO it would be better to have specific language support for those cases than a generic statement. Having a generic goto (or even only a break label-statement) would encourage it to be used for things that it wasn't intended for, and such code would not be as readable.

    * Breaking out of nested loops. Something like break label or multibreak number.
    * Clause after a loop has reached its end and not broken. Python reuses else for this.
    * Error handling: A type of exception handling. It could be simplified by using labels instead of throwing and catching objects of specific types.

    --
    "We mustn't be caught by surprise by our own advancing technology" -- Aldous Huxley
  4. Re:No classes, No goto by Aighearach · · Score: 2, Interesting

    Why does every language of the month need to come with at least one blatantly stupid, avoidable idiocy guaranteed to trigger a large proportion of its intended audience?

    Because having neckbearded snowflakes whining about their tender technical opinions doesn't actually help the language designers with any part of what they're doing. It doesn't solve technical problems, it doesn't encourage adoption, it doesn't even produce useful criticisms. If you make sure to include some aesthetics from different camps and mix them together in an innocuous way, you can make nearly everybody go "ewwww" a little bit, and then the ones who freak out will escort themselves out the door. It is the only known way of even getting rid of them.