Skip to content

The SciRuby Manifesto

agarie edited this page Mar 24, 2013 · 11 revisions

The Manifesto

Ruby has no equivalent to the beautifully constructed numpy, scipy, and matplotlib libraries for Python. We believe that the time for a Ruby science and visualization package has come and gone. Sometimes when a solution of sugar and water becomes super-saturated, from it precipitates a pure, delicious, and diabetes-inducing crystal of sweetness, induced by no more than the tap of a finger. So it is, we believe, with the need for numeric and visualization libraries in Ruby.

We are not the first with this idea, but we want to bring it to life.

Who We Are

We are Rubyists, lovers of chunky bacon, and scientists. Driven mad by the glee of our Python-loving colleagues, we came together humming Les Mis.

You should join us! Sign up by filling out this form.

Currently, we are:

Why Ruby?

First and least, Ruby is a language with a sense of humor.

But more importantly, numerical computation and visualization can be done much better in Ruby, for a number of reasons:

  1. ''Everything returns a value.'' Ruby's better object model means better chaining of computation.
  2. ''Iterators'' are way better than ''for'' loops (each_slice, each_cons, etc.).
  3. ''Readability.'' Ruby is incredibly readable, which makes it uber-maintainable.
  4. ''Metaprogramming.'' Sometimes the simplest solution is to write a [http://github.com/wycats/thor code generator]. Sometimes, eigenclasses are the cleanest.
  5. ''Integration into Rails.'' The influence of Rails on Ruby is undeniable. Web-based visualization for scientific projects is the future.
  6. ''R is nice but clunky.'' The learning curve is enormous. It does some things very well, and others not very well at all (try doing a multi-line plot in R).

Alternatives and Sources of Inspiration

  • rsruby, rserve: gems which connect Ruby to R
  • flotomatic: Rails gem for the Flot Javascript library, for web data visualization.
  • Ruby GSL: Ruby interface for the GNU Scientific Library

Components

Please read about our subprojects in Home.

Clone this wiki locally