Why Use Ruby for Scientific Computing? The SciRuby Manifesto Explained
Updated
SciRuby's answer is straightforward: Ruby is a great choice for scientific computing and data visualization, and it is "always a pleasure to write software in Ruby." The manifesto concedes that other languages have more libraries, but argues Ruby still has its own place in science. The only way to test that claim, it says, is by writing code. This page is for developers deciding whether Ruby fits a scientific or data-heavy project, and for anyone trying to understand what SciRuby actually provides.
The core argument of the manifesto
The SciRuby Manifesto makes three points:
- Ruby is well suited to scientific computing and visualization — not just general-purpose scripting.
- Other ecosystems have more libraries — SciRuby does not dispute this, and says it "cannot do without them."
- Ruby has its own place in science — the value is partly in the experience of writing the software itself.
The manifesto illustrates its optimism with an analogy: when a sugar-and-water solution becomes super-saturated, a pure crystal of sweetness precipitates with no more than the tap of a finger. SciRuby applies the same image to numeric and visualization work in Ruby — the ecosystem may be close to a breakthrough, triggered by small contributions.
That analogy is a statement of belief, not a roadmap. Treat it as the project's framing rather than a technical guarantee.
What SciRuby actually ships
The manifesto's optimism is backed by concrete components. According to the project's own status page:
| Component | What it is |
|---|---|
| NMatrix | The SciRuby linear algebra library, with both dense and sparse matrix storage |
| MDArray | A related multi-dimensional array effort, listed as an ongoing development goal |
| Tensor support | Added recently, per the project status |
| Visualization libraries | Experimental plotting libraries including Rubyvis, Plotrb, and Nyaplot |
| Other tools | Machine learning and linear mixed modelling tools |
The stated short-term goals are improved visualization software and continued development of the linear algebra software (NMatrix and MDArray). The project also expresses interest in improving existing APIs, such as for Gnuplot.
So the practical answer to "why Ruby for scientific computing" is: because a linear algebra core with dense and sparse storage exists, alongside a set of plotting and modelling libraries — even if several of the plotting tools are still experimental.
Before you commit: the project's own warning
SciRuby is explicit about maturity. Its installation guidance says the gems "have been tested, but are not battle-hardened." It gives deliberately extreme examples — a self-driving car or controlling an ARKYD 100 satellite — and warns that in mission-critical code you should expect to encounter bugs and be prepared for them.
That warning is the most useful decision input on the site. It means:
- SciRuby is reasonable for exploration, research code, and prototyping where you can absorb a bug or two.
- It is a riskier default for production systems where a numerical error or crash is unacceptable without a fallback plan.
If your project falls in the second category, budget time for testing and expect to work around issues rather than assume stability.
How to get started
- Read the docs first. Installation instructions for the various SciRuby components live in the project's docs, and NMatrix has its own documentation page. Start there rather than guessing at gem names.
- Install the component you need — for linear algebra, that is NMatrix; for plotting, look at the experimental libraries listed above.
- Verify against a small problem. Because the gems are not battle-hardened, run a known-answer test on your own data before building on top of them.
- Expect to write code to judge the claim. The manifesto's own conclusion is that the only way to find out whether Ruby suits your scientific work is to try it.
Where to get help and contribute
- Google Group — the site offers a subscription form for the SciRuby Google Group.
- IRC —
#scirubyon Freenode.net. The channel is most active during Google Summer of Code months, but the project says a few people are generally around. - Issues and contribution — the best entry point for new contributors is the NMatrix issue tracker on GitHub; the SciRuby issue tracker is the alternative if matrices are not your interest. The full developer roster is on the project wiki.
- License — SciRuby and NMatrix are available under the BSD three-clause license, which matters if you plan to embed them in your own project.
Who should consider SciRuby
Choose it if you already write Ruby, want a dense-and-sparse matrix library plus plotting options in the same language, and can tolerate experimental tooling. Look elsewhere first if you need a battle-hardened numerical stack for mission-critical code, or if you depend on a mature, broad visualization API — the project itself lists improved visualization as a goal still in progress.