Interview with John W. Eaton of GNU Octave
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.
See our FAQ for me details on how to get involved.
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.
See the GNU Octave entry in the Free Software Directory for more information.