On Tuesday, 31 March 2015 00:01:32 UTC+8, Phillip Lord wrote:
>
>
>
>
> Sayth Renshaw <flebbe...@gmail.com <javascript:>> writes: 
> > I last learned clojure in 1.2. Just curious why Clojure hasn't 
> > developed as a go to for data science? 
> > 
> > It never seems to get a mention R,Python and now Julia get the 
> > attention. By design it would appear that Clojure would be a good fit. 
> > Is it a lack of libraries, ease of install, no good default 
> > environment (R Rstudio, IPython ) where as you would need to use emacs 
> > with clojure, or is there just a better default use of Clojure? 
>
>
> I would say, lack of numpy or equivalent. And nice tools to link between 
> Clojure and the many C/Fortran numeric libraries. Python and R do this 
> natively. 
>

core.matrix is effectively the equivalent of NumPy

In some ways it is much more versatile, because it works with a general 
array abstraction rather than a specific concrete array format. There are 
core.matrix implementations (e.g. Clatrix) that link to native numerical 
libraries. There are also core.matrix implementations that run in pure, 
portable JVM code (e.g. vectorz-clj). You can also use plain old Clojure 
persistent vectors as a (slow but convenient) core.matrix implementation. 
Having all these options usable via the *same API* is a big win.

core.matrix is certainly not yet as mature or fully featured as NumPy. But 
if it doesn't do what you need - please help improve it! PRs, bug reports 
and enhancement ideas all gratefully accepted. 

https://github.com/mikera/core.matrix

There is also a Google Group here specifically dedicated to numerical 
topics in Clojure:

https://groups.google.com/forum/#!forum/numerical-clojure
 

>
> Maybe if Clojure pulls itself away from the JVM this will change. One 
> big problem with both python and R for data science is that a lot of 
> interactive data visualisation happens on the web these days, and 
> neither python nor R support that so well. An ecosystem with a C hosted 
> clojure at the back end and Clojure script at the front end might work 
> well. 
>

I agree Clojure is a great back-end for data-driven web applications. 

I would argue however that you don't need a "C-hosted" Clojure to get 
native back end performance since you can use tools like Clatrix to access 
BLAS etc. And aside from that, the JVM gives you a lot of big advantages on 
the server side (sophisticated memory management, excellent JIT 
compilation, concurrency, portability, library ecosystem etc.). I never 
quite understand the motivation of people who seem to want to reinvent all 
of this (probably badly) in native code. The JVM is an amazing piece of 
engineering, and I believe that a lot of the sucess of Clojure comes from 
taking advantage of this.

I've personally had good experiences with Clojure on the back end and 
JavaScript/ClojureScript on the front end, and never once worried about 
performance.
 

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to