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.jl * https://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
