Live data from Hacker News

Julia 0.2 released

github.com

21–30 of 43 posts

Re: Julia 0.2 released

#21
post #7
post #3

This is a dumb question, but is Julia named after anyone in particular?

From an interview: InfoWold: Why the name, Julia? Karpinski: That's everybody's favorite question. There's no good reason, really. It just seemed like a pretty name. http://www.infoworld.com/d/application-development/new-julia...

Really?? I was sure it was for Gaston Julia.

Re: Julia 0.2 released

#22
Does anyone know what the state of plotting is in Julia? I couldn't really find any convincing examples for that. For many applications, plotting really is a big requirement.

That said, I look forward to a future where Julia will take over many use cases that are served by Matlab right now.

Re: Julia 0.2 released

#23

Does anyone know what the state of plotting is in Julia? I couldn't really find any convincing examples for that. For many applications, plotting really is a big requirement. That said, I look forward to a future where Julia will take over many use cases that are served by Matlab right now.

Although there is no definitive plotting option, we are exploring a number of avenues. See:

http://julialang.org/downloads/

With the IPython Notebook and Julia, you can use Gadfly to produce plots right in the notebook without any further installation.

Re: Julia 0.2 released

#24
post #17

How suitable is it to use for mainstream programming (building web app, etc)

While the focus of many of its contributors remain scientific computing, and its use in academia is growing, the language in itself is very amenable towards more mainstream programming. For example, there are packages (at varying level of maturity) for HTTP Servers, HTTP middleware, templating with Mustache, Redis, database access, Logging etc. So I'd say, the language itself is very suitable for mainstream programming, and the library ecosystem around it is growing and maturing quite well for such a young language.

There is also a great interface to Python, giving you access to the wide range of its libraries.

Re: Julia 0.2 released

#25
post #17

How suitable is it to use for mainstream programming (building web app, etc)

That line of development hasn't been pushed very hard yet, but the fundamentals are good. For a example, check out http://iaindunning.com/2013/sudoku-as-a-service.html where I make a nice little webservice.

Re: Julia 0.2 released

#26
post #13

For anyone interested in using Julia for numerical optimization/mathematical programming, see http://juliaopt.org/ . We have pure-Julia implementations of standard unconstrained methods [1] as well as a domain-specific modeling language [2] for (integer) linear programming with links to open-source and commercial solvers. Julia's performance and advanced language features such as metaprogramming really make it a grea…

Here are the slides for a recent talk we gave about JuliaOpt:

https://docs.google.com/presentation/d/1FlHt245YxPXFwOHmxLYW...

Re: Julia 0.2 released

#27
post #17

How suitable is it to use for mainstream programming (building web app, etc)

That line of development hasn't been pushed very hard yet, but the fundamentals are good. For a example, check out http://iaindunning.com/2013/sudoku-as-a-service.html where I make a nice little webservice.

Also if you look through the package list, you will see people doing all kinds of stuff with Julia.

http://docs.julialang.org/en/latest/packages/packagelist/

Re: Julia 0.2 released

#28

Earlier quoted context omitted.

So if I understand it correctly, it's for efficiency? What about some special treatment by the compiler, is something like that possible?

Memory layout mostly. For example, a 10x10 64-bit floating-point matrix should be stored as contiguous chunk of 100 inline 64-bit floats. This is quite different than an array of arrays, which is represented as an array of pointers to separate boxed 1-d array objects. The contiguous layout is not only far more efficient, but also is what all numerical libraries like LAPACK and FFTW expect. If numerical arrays were no…

> Of course, sometimes you do want an array of arrays, such as when each array needs to have a different length or element type – which you can of course do. Which is why I'm a bit confused about how having support for multidimensional arrays is a problem. If you find them confusing, why not just ignore the feature and use arrays of arrays all the time?

The standard lib and 3rd party libs use multi-d arrays, so I can't avoid them. But I guess it takes some time to get used to.

> I'm also not clear on what "special treatment by the compiler" means.

I meant something like saving an array of arrays into a continuous memory block and somehow enforcing that the sub-arrays must have equal length. But now I realize that this is probably impossible...

Re: Julia 0.2 released

#29
post #21
post #7

Earlier quoted context omitted.

From an interview: InfoWold: Why the name, Julia? Karpinski: That's everybody's favorite question. There's no good reason, really. It just seemed like a pretty name. http://www.infoworld.com/d/application-development/new-julia...

Really?? I was sure it was for Gaston Julia.

Or Julia Robinson: http://en.wikipedia.org/wiki/Julia_Robinson

Re: Julia 0.2 released

#30

After using it for smaller projects, one of the few things I don't like is multidimensional arrays. I would prefer if only arrays of arrays were possible and had some syntax sugar. Edit: And perhaps some special treatment by the compiler for optimization. I find multi-d arrays counter-intuitive and clumsy on some situations. Also, currently I'm forced to write ugly code like array[x,y][i].

You can of course use arrays of arrays if you like, but multidimensional arrays are indispensable for numerical work, especially linear algebra – matrices are 2D arrays after all. When doing numerical work in C, for example, you have to simulate multidimensional arrays by doing your own index calculations to translate back and forth between linear indexing and N-d indexing. Having language support for this is a must…

I'm confused about your reference to C. C has multidimensional arrays, and all the elements are laid out contiguously in memory. No index calculations are needed, it's all done by the array indexing operation.

If you have this code:

    int a[10][10];
then:

    &a[x][y] == ((char *)a + x * sizeof(a[0]) + y * sizeof(a[0][0]))
where sizeof(a[0]) is == sizeof(int) * 10.

quick edit: added a (char *) cast so the arithmetic doesn't multiply by sizeof(int) again

Post reply on HN