SciRuby: Science and Matrix Libraries For Ruby 138
Aciel writes "Ruby has long been popular in the web/business community, while Python dominates the scientific community. One new project seeks to bring balance to the force: SciRuby. We've already introduced a linear algebra library called NMatrix (currently alpha status). There's at least one fellowship available for students interested in working on the project this summer."
Re:"while Python dominates the scientific communit (Score:3, Interesting)
Re:I always thought (Score:4, Interesting)
if(!checkedUp() ) checkUp();
if(!checkedDown() ) checkDown();
if(!checkedLeft() ) checkLeft();
if(!checkedRight() ) checkRight();
can be a lot more concise and readable than a forced indentation method. Flexibility is a good thing. It is ok if you don't like the style I just demonstrated, but you should be able to understand that other people do.
Re:I always thought (Score:3, Interesting)
Nothin' wrong with that, my friend. To translate to Python:
# ensure all sides are checked
if not checkedUp(): checkUp()
if not checkedDown(): checkDown()
if not checkedLeft(): checkLeft()
if not checkedRight(): checkRight()
Re:"while Python dominates the scientific communit (Score:5, Interesting)
In my experience, scientists will do just about anything to convince themselves that they're not actually programming, if only to avoid pesky annoyances like source code control. The less it looks like a programming language, the better.
Oh god. That would explain why none of their code looks like it's written in a programming language.*
* I work with biologists. By 'they,' I mean biologists. I know you physicists and quantum chemists have it lucky. Stop bragging. You're making me feel bad.
Re:Non-story (Score:3, Interesting)
The slowdown in commits to sciruby proper is due to the recent efforts on nmatrix (the subject of the story). The github commit history [github.com] is easily accessible and shows a flurry of activity. Many projects associated with sciruby are also not housed directly under the sciruby name (e.g., rubyvis [rubyforge.org])
The lack of comparable scientific libraries is the primary reason many folks choose python over ruby. It's true that sciruby is young and doesn't yet compete with scipy/numpy, but the point is that it continues to pick up steam. A lot of folks who would rather code in ruby think this matters.
Re:Tell me one thing this brings to the table (Score:4, Interesting)
The option of using python is implicitly rejected. Why would the contributors spend time on sciruby when they clearly know scipy exists? Speaking for myself, I've used python and scipy (both numpy and matplotlib) for several projects, but I much prefer coding in ruby to python. All the functionality of scipy isn't going to be duplicated with sciruby, but if the most common use cases are implemented, then I can use ruby for most projects.
why? It's easier to re-implement (i.e., borrow from scipy) than implement in the first place, so it doesn't take all that much time. And, as pointed out, this is currently a minor project compared to scipy, so if it is a waste of time then it's not a lot of it.
Python has a "there is only one true way" mentality, so there isn't a lot of room to try and innovate within scipy. Perhaps sciruby will innovate in significant ways and scipy will draw a little from it one day.
The fellowship and nmatrix commit history [github.com] would suggest otherwise.
Re:Tell me one thing this brings to the table (Score:3, Interesting)
No, seriously, that's the most significant thing it brings to the table. With a minimal amount of functionality implemented, far more scientific problems can be addressed in ruby and integrated into a larger, thriving ecosystem (>38,000 ruby gems and counting). Ruby already has strong web applications; complemented with better science libraries a lot of great science can be accomplished (opentox [opentox.org] is an interesting example of this kind of integration)
Sciruby brings ruby to the scientific programming table. Anything else sciruby accomplishes is icing on the cake.