Julia Programming Language Receives $600k Donation 106
jones_supa writes: The Julia programming language has received a $600k donation from Moore Foundation. The foundation wants to get the language into a production version. This has a goal to create more efficient and powerful scientific computing tools to assist in data-driven research. The money will be granted over the next two years so the Julia Language team can move their core open computing language and libraries into the first production version. The Julia Language project aims to create a dynamic programming language that is general purpose but designed to excel at numerical computing and data science. It is especially good at running MATLAB and R style programs.
If we've tried, but can never understand Julia... (Score:4, Funny)
...are we doomed to forever playing with our own Python?
Re: (Score:1)
Look... you can either play with Julia or your Python.
Re: (Score:2)
Fat chance... (Score:2)
So . . . (Score:2)
So they're re-inventing Python?
Re: (Score:2)
Python is pretty slow.
Use Numpy [numpy.org] for data analysis. It runs on ATLAS, an open source BLAS implementation and is plenty fast.
Re: (Score:2)
How does that change the fact that Python is slow? Julia uses BLAS as a linear algebra backend too, but that has nothing to do with this.
Re: (Score:2)
How does that change the fact that Python is slow? Julia uses BLAS as a linear algebra backend too, but that has nothing to do with this.
Presumably the i.e. LA operations that the OP were doing were slow. If the OP is complaining that the code that presents his GUI takes an extra 100ms to load, then he is just trolling. This is a discussion of programming languages for scientific, statistical, and other numeric operations. In Python those operations can be done with not-slow code with the proper library.
Re: (Score:2)
> In Python those operations can be done with not-slow code with the proper library.
Not always.
Fact is, Python has a two-language problem.
Re:So . . . (Score:4, Informative)
Re: (Score:2)
If you are simply calling a library (written in C) there will not be a big speed difference between Julia and Python. The big difference is that you could write this library in Julia with similar performance to the C code. That's the biggest attraction to me: a high level language where you do not need to fall back to C for doing performance oriented or even really low level programming
Thank you, now I see what the fuss is about. I had previously had the impression that Julia is more like Python (scripting, great syntax) than R (numerical calculation performance, horrible syntax). I'll have to take a better look at it.
Re: (Score:2)
Re: (Score:2)
Part of the point of Julia is that you don't have to screw around with different libraries to get things working. Ever done matrix manipulations on Matlab? It is incomparable to anything Python and Numpy can provide. But Julia works the same.
Actually I haven't done matrix manipulations in Matlab but I believe that PyLab (based on Numpy and Scipy) addresses the concern that you make. I don't use Matlab so I cannot make a better comparison.
Re: (Score:2)
Re: (Score:2)
http://cyrille.rossant.net/wha... [rossant.net]
Re: (Score:2)
http://cyrille.rossant.net/wha... [rossant.net]
That was a great read, and I could add some points of my own. The author goes off track at the end (complaining about distributing cross-platform binaries to non-technical users has no place in an article about scientific computation development) which comes off as grasping for straws, but otherwise I do see that the author is sincere and wrote the article in order to help improve Python, which he obviously esteems.
That was one datapoint, and it doesn't really address the GP AC's concern to which I had rep
Re: (Score:1)
- numpy converting to lists??? read the docs to learn about type precedence.
- garbage collection is python's job. read the decent docs to know when things are copied vs in place
- easier to write in C?? please tell me you're joking
Re:So . . . (Score:5, Informative)
Not at all. Julia is just-in-time compiled to native code. You can basically get C-like performance in pure julia: http://julialang.org/benchmark... [julialang.org]
There's also a powerful type system and lisp-style macros, along with support for parallel programming and lightweight threads, allowing you to do stuff like: https://gist.github.com/anj1/2... [github.com]
(that's just a toy example, of course)
Re: (Score:3)
The best is actually faster than C, and the worst is 2.1x slower, not 5x slower (numerical values given in http://julialang.org/ [julialang.org] ). And that's just the fibonacci benchmark; the other ones are within 50% of C performance except for rand_mat_stat which is 60% slower than C (this is due to the garbage collector, apparently).
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Added to which they've removed Python's GIL. But the documentation doesn't make it clear how to get a character's General Category, despite the fact that many of the functions use it in deriving their answer (e.g., isalnum). This would be a real annoyance were I seriously considering using it.
Re: (Score:2)
import Base.UTF8proc.category_code
category_code('')
Re: (Score:2)
Hmmm... I'd looked under string and character documentation, but didn't find a reference to that function. Not surprising given where they chose to stash it, but it strikes me as an unreasonably obscure location. Surely character should have at least a cross reference. (Well, perhaps it did and I missed it. I wasn't seriously considering switching to Julia. And perhaps the locations would have been obvious to someone who was acquainted with the code. Even I could tell it was being used in some functio
Performance (Score:2)
Take a look at the benchmarks on the Julia frontpage and reevaluate your statement.
Re: (Score:2)
Re: (Score:2)
I found that MATLAB's emphasis on vectorization forces you into a form of coding that is not always useful or productive. Sure, it's better to use a*b when multiplying matrices, but stuff like this? :
cell2mat(arrayfun(@(K) accumarray(C, F(:,K), [], @mean), 1:size(F,2), 'Uniform', 0))
come on. It pays to have a language where you can write out a clear explicit loop if you want to and not worry about performance.
Re: (Score:2)
Re: (Score:2)
True, Matlab has included a just-in-time compiler, but the language has limitations and the compiler isn't as mature as Julia's (LLVM). Devectorized code often runs _faster_ in Julia, sometimes much faster. In Julia, vectorization is just a way of invoking BLAS functions when appropriate - as it should be.
Re: (Score:2)
Re: (Score:3)
Re: (Score:3)
Re: (Score:1, Flamebait)
Re:jesus thats all it takes? (Score:4, Funny)
I won't be silenced until Brainfuck gets the recognition it deserves!
Re:jesus thats all it takes? (Score:5, Interesting)
Julia is a useful niche language with a sizable community, not some bullshit vanity project. Unfortunately it has not chance of dislodging R, and I'll never understand the decision to make it dynamic, but it fills a role that nothing else does, at the moment.
Also, I have no idea what you think the word "hipster" means, or why you're so angry about it.
Re: (Score:2)
Re: (Score:2)
I doubt that Julia is going to surpass R in a decade as you say. I use R because statisticians like it and contribute every obscure technique into it. Statisticians (for most part) don't seem to care about performance or elegance of the language from an engineering standpoint. R toolbox, for whatever reason, makes sense to them. For most people, R is used more as a statistical shell, rather than a programming language. Do I care whether BASH scripting is elegant or fast? No... just that everything is quickl
Re: (Score:2)
Unfortunately it has not chance of dislodging R,
The places I've seen Julia make the most inroads, it's been displacing Fortran, not R. And anything that displaces Fortran makes me happy.
Re: (Score:2)
Re: (Score:3)
http://julialang.org/benchmark... [julialang.org]
If you think Java handles 'all tasks' then Julia isn't aimed at you. it's for scientific/numerical computing. Java is terrible at that, in terms of syntax, library support, and speed. Even python is far better than Java for that purpose.
Re: (Score:2)
Eek the Ignorance! (Score:2, Informative)
Re: (Score:1)
Whoosh!!!!! (Score:2)
Many people are talking about stuff they don't understand, but I thought my sarcasm was obvious enough.
Re: (Score:2)
Last I heard PyPy wasn't even attempting to get rid of the GIL.
Mind you, I do like Python, but not for multiprocessing. It's better than some choices, but it's hardly good.
(OTOH, when I really looked into Julia a few months ago [how many?] I decided that its way of doing multiprocessing wasn't useful for my purposes, but was instead optimized for array arithmetic.) This is great for most of their target audience, but doesn't fit my purposes which are more closely modeled by independent servers. I was loo
Re: (Score:2)
Julia, Elm, Elixir (Score:1)
Looks like ML (Score:2)
Re: (Score:2)
Julia is more related to the lisp family of programming languages than ML. Some have said that Julia is just another lisp (albeit with a nifty dynamic type system supporting type families and polymorphism).
Production version (Score:2)
Get the language into a production version
I was not aware it was not production ready, and I now understand the fact is was not is a good explanation why it was such a pain to build. The thing embeds numerous third party libraries, and even the full distribution of LLVM.
Julia needs arbitrary array indexing base (Score:5, Informative)
Any language that purports to be a good for technical computing needs to get away from a forced base for indexing arrays. No, this is not a 0 or 1 problem. Arrays should be numbered from whatever the programmer specifies. The Pascal-type languages including Ada have this feature and it prevents many many errors. Maybe the $600K can buy this, but somehow I doubt it as this fixed-index-base is usually in the mindsets of the language's designers.
Re: (Score:2)
Re: (Score:3)
I guess it really is true.. (Score:1)
I guess it really is true that you can write Fortran in any language.
almost there (Score:2)
As a physicist, I do a lot of numerical programming. I like julia, but it isn't quite useful to me yet. The problem is that it takes too long to run something the first time you run it in a session, and there's no way to save a compiled binary so I have to take the hit each time I run it. In particular, loading libraries takes too long. Maybe this boost will help it get there.
What about s Python replacement? (Score:1)
Looking forward to the next year! (Score:1)
I found out about Julia from the Machine Learning course from Coursera [coursera.org]. Not directly, for at that time it was Octave; the advice given there was "trust me, for machine learning, this syntax is better." Indeed for many machine learning algorithms, the basis of understanding it, is vector and matrix operations. The innovation of Matlab which both Octave, which is essentially a gnu, open-source implementation of Matlab, and Julia is making vector va
It's probably not aimed at you (Score:5, Informative)
Julia is aimed at people who do math-heavy problems (like computational physics), so that might be why you haven't heard of it. I think it's been on /. before.
I've never used Julia (the computing resources I have access to don't support Julia), but I've been following it, and the language looks pretty impressive: the ease of python/matlab with the speed of fortran/c. It's pretty impressive for a language you can use interactively.
Re: (Score:2)
Re: (Score:1)
That's wrong on so many levels. For example, suppose the optimization gains you a few hundred nanos compared to precompiled code. In a typical Java program you'll never amortize the JIT compilation phase itself, which must be performed each time that the program runs, and you're STILL at the mercy of the garbage collector, which is going to completely trash your cache and nullify all the JIT gains at random times. Moreover, it misses the point that anyone who truly cares about speed will of course spend the
Re: (Score:2)
the language looks pretty impressive: the ease of python/matlab with the speed of fortran/c.
My two favourite languages since about 2000 have been Python and Fortran, so you can imagine my joy of finding Julia. Of course it's not a perfect solution for everything, and I still prefer Python for most tasks that are not compute heavy. This is mostly due to the plethora of libraries available by default.
On the issue of ease, Julia's syntax actually borrows heavily from Fortran, and thus avoids most of the whitespace thing [iki.fi].
Re: (Score:2)
The end statements are just redundant fluff, the indention is enough to delineate blocks. Python is beautiful.
Unfortunately, this isn't so simple in the real world. When different people edit the source on different editors and operating systems, you may end up with blocks that look aligned but aren't. This is generally due to mixing spaces and tab characters. The end statement does take up space and visual attention, but it makes the syntax more robust against such glitches.
BTW, Python's use of the colon is mostly redundant fluff. It serves a function for one-liners "if this: do_that" but if this is what you wa
Re: (Score:2)
It doesn't sound like something that most of us will use based on the problem domain and the other languages mentioned, I'm sure that there are some people who will find it highly useful and create some products that enhance all our lives.
Re: (Score:2)
Re: (Score:2)
Re: (Score:3)
Re: (Score:2)
Re: (Score:2)