Last I checked, I think the only real option for calling Julia from Java is via 
JNA to the Julia C API. Not impossible, but not as convenient as JavaCall.jl.

As for Julia vs Clojure, I had a go at implementing a simple OCR 
nearest-neighbors algorithm in both Julia and Clojure. The Clojure code came 
out a bit shorter, and was moderately more expressive, but required almost 100x 
the runtime. Granted, I haven’t yet taken the time to add type-hints to the 
Clojure version, which could explain some of the difference. I suspect the 
biggest issue is the lack of a good dataframes library for Clojure, though you 
could pull in, for example, Spark’s dataframes via Clojure’s very convenient 
Java interop.

That actually brings up another point that some others have mentioned in this 
thread. Clojure benefits from the entire Java ecosystem. Of course, the more 
Java you bring into your Clojure, the less you benefit from the Lisp-y-ness of 
Clojure. You should check, though, as there is already a healthy ecosystem of 
wrappers that bring back some of that Lisp goodness (e.g. 
https://github.com/gorillalabs/sparkling for Spark). So it’s trade-offs all 
around.

One last point (something I’ve been meaning to look at but haven’t had the 
time): reading CSV files off disk was about 10x faster in Clojure than Julia. 
Something else to consider.


On January 27, 2016 at 20:11:22, Ismael VC ([email protected]) wrote:

I dont know if you can call Julia from Java, but you can call Java from Julia, 
see:

* https://github.com/aviks/JavaCall.jlhttps://github.com/aviks/JavaCall.jl

Ismael Venegas Castelló
Data Analyst
Cel. 044 55 6434 0229
[email protected]
Cerro San Francisco 357, C.P. 04200
Campestre Churubusco, Coyoacán
Ciudad de México
                
  
Tel. 6718 1818
richit.com.mx
2016-01-27 10:14 GMT-06:00 Mike Innes <[email protected]>:
With Clojure you're likely to get much better deployment / networking support, 
as well as the general robustness and tooling of the JVM. It's also really 
expressive for data manipulation (though not necessarily fast). Julia loses out 
on that but will blow Clojure out of the water for anything more 
computationally advanced; numerics, fiddly data structures etc.

To over simplify the decision a little, I'd probably use Clojure for something 
running indefinitely (e.g. web server) and Julia for something finite (e.g. a 
simulation). But I think you just have to look at what you expect the key pain 
points to be, and compare that to the strengths of each language.

On Wed, 27 Jan 2016 at 04:07 George <[email protected]> wrote:
I'm working on a scientific simulation that is going to require a distributed 
environment.  There has been some discussion about whether to use Julia or 
Clojure for this project.  A few micro benchmarks seem to have different 
results for each language.  I'm not yet sold as to which language may be more 
expressive in this situation, but Lisp might be a preferred option 
mathematically for modeling purposes.

Does anyone have any practical experience in dealing with both of these 
languages and what your experiences were?  

Are there any meaningful benchmarks that compare the two, especially in a 
distributed environment?


Thanks!

-George

Reply via email to