Ruby Matrix Tools – Could be Something Interesting
This afternoon I saw this re-tweet from the JRuby Dev Team:
Just released my jruby matrix library that I've been working on: github.com/ryanstout/stai…
— Ryan Stout (@ryanstout) December 29, 2012
so I looked at it, and it seems he's started something pretty nice.
While the real purpose of using clojure in the most recent project is to make it appear that we're cutting edge and retaining some talent that's not interested in doing work that's not clojure work, the published reason is that it's ideal for this type of computationally intensive work, and all other languages really don't even come close.
As an old modeler and having delta with a lot of data in my days, this is complete hogwash. But it's how they are selling it - with a wink, to management. I think it's still a horrible mistake, but I understand that there are the political reasons for it, and those are the real meat of the issue.
While I'd love to see that there's something really powerful for dealing with large data sets and matrices in clojure - and there might be, the first tip I got was a real loser as I found out that it wasn't really complete - not even a skeleton at this point. So again, I think it's the hope and promise of clojure that's got these guys all pick this tech, and not the cold, hard facts.
This, it seems, is the starting point for a really viable alternative. Sure, it's all object-oriented, which in the functional space is taboo, but when dealing with problems like these, it's very practical. The java code is probably reasonably fast, certainly when compared to standard Ruby, but I'm not sure it's going to hold a candle to C++ code based on really solid toolkits like BLAS and LAPACK. But again, he's just starting, and that's the important first step.
I'm going to keep an eye out on this as I think it's likely that we'll get the order to switch back to jruby from clojure just because it's so hard to find people and it's so bloody cryptic that it makes ruby code look absolutely verbose. But hey… I'm easy - if they want o do this in clojure, I'll go along. If they decide to switch, I'm OK there too.
If they do, this will be something I'll be looking at using. Very interesting.