Interview with John W. Eaton of GNU Octave

This is the first in a series of interviews the FSF's Licensing and Compliance team is doing with maintainers of free software projects who choose GNU licenses for their work.

Today we interview John W. Eaton of the GNU
Octave project, which is
licensed under the GNU GPLv3.

What is GNU Octave?

GNU Octave is a high-level interpreted language, primarily intended
for numerical computations. It provides capabilities for the
numerical solution of linear and nonlinear problems, and for
performing other numerical experiments. It also provides extensive
graphics capabilities for data visualization and manipulation. Octave
is normally used through its interactive command line interface, but
it can also be used to write non-interactive programs. The Octave
language is quite similar to Matlab so that most programs are easily
portable.

One of the goals of the Octave project is to liberate the code written
for the proprietary program, Matlab, and allow it to run in Octave
with as little modification as possible.

There is also a companion project called Octave Forge that is a
collection of collaboratively developed packages for Octave that are
analogous to Matlab's toolboxes.

How are people using it?

There are many users of Octave and their reasons are many and varied!
You can read about some of them on our
wiki.

Why did you decide to release it under the GNU GPLv3?

Well, it was originally published under the GNU GPLv2 or any later
version, and when GPLv3 came out, I decided to upgrade.

But, there were two reasons I published GNU Octave under the GPL.
First, I thought it was the right license. I wanted to make Octave
free software and I didn't want someone to be able to make a
proprietary derivative of it. Second, I wanted to use GNU readline,
which is also licensed under the GPL, and I did not want to write my
own command-line editing library from scratch. But the first reason
was really the more important one for me. If I hadn't liked the aims
of the GPL, I would have worked around the readline issue somehow.

As a volunteer, what's the best way to get involved in developing GNU Octave?

We encourage people to start out by just being around and being social
with other developers. An easy way to start is to join the
maintainers' mailing lists. Find things about Octave you don't like,
and start thinking about how to fix them. Some people spend years
helping in the mailing list before they ever delve into code. Others
sometimes jump right into coding. But, in general, a good way to learn
Octave is to understand the problems other people are having with it,
so being helpful in the mailing lists not only helps Octave as a
whole, but it also prepares you to be a better Octave contributor.

What are ways that people without strong math programming abilities could start helping, today?

The documentation is always in need of improvement. People can also
help with the web pages, answering questions on the mailing lists or
IRC channel.
Donating to the project
is also always an option!

What aspects of the project do you think could use the most help?

We currently have several large projects under development including a
graphical user interface, a just-in-time compiler, and an
implementation of Matlab's "classdef"-style object system. All of
these projects have a lot of room for additional contributors.