Skip to content

Grant Application 2012: Scientific Computing in Ruby

dcarrera edited this page Aug 18, 2012 · 6 revisions

Applicant: The Ruby Science Foundation

Contact: John Woods (Director)

Email: john.o.woods@gmail.com

Biography:

TODO

Project title: Developing Ruby into a Scientific Computing Language

Project details:

Scientific Computing is an area currently dominated by proprietary scripting languages such as MATLAB. There are also a number of domain-specific scripting languages that dominate individual fields (such as IDL in astronomy). Universally, these are expensive solutions, and they tend to be poorly suited for general programming work. There is a trend in the scientific computing community to move toward open source solutions based on a general purpose existing language. The focus is primarily on Python and SciPy thanks to SciPy's relative maturity. Yet, the market remains dominated by proprietary solutions.

The Ruby Science Foundation has recently started the SciRuby project. It aims to turn Ruby into a strong language for numerical work. This work is long overdue for Ruby, but the Foundation has been making great strides in recent months. We have developed a core array language with the NMatrix module, and we have begun to develop an entire family of modules covering visualization, statistics, integration and minimization. These efforts have led to renewed momentum in the community.

At the moment the Foundation is working on a rewrite of NMatrix, and we need help. NMatrix is the core numerical engine behind SciRuby. Its first version was based on the NArray module by Masahiro Tanaka. However, as development proceeded, it became clear that this module could not support some important features such as array slices. Thus, the Foundation embarked on a project to rewrite NMatrix. The rewrite of NMatrix inevitably puts a strain on the fledging SciRuby project. It is difficult to develop a family of scientific modules while the core engine is unstable and changing.

The purpose of this grant application is to hire a part-time developer to help stabilize the NMatrix code base. The goal is to produce an NMatrix module with full support for slices, solid performance and solid stability. The developer may be a professional programmer or a computer science student. The successful applicant will have to demonstrate strong competence in scientific computation and Ruby and will work alongside the existing development team to produce a stable release of NMatrix. With this work, SciRuby can cross the critical juncture where it is today. The new, stable NMatrix module will once again allow the wider SciRuby community to develop science modules (statistics, visualization, integration, etc) using NMatrix as its foundation.

Project deliverables:

  • NMatrix v2.0 which is stable and passes at least 95% of the test suite.

  • Full support for array slices.

  • Clear and complete documentation of all new code.

Proposed grant amount: $3,000 - $5,000 USD

Clone this wiki locally