I think this might be the relevant case.
On Mon, 2007-02-19 at 12:40 -0800, Ron Crummett wrote:
The other day I mentioned it to one of my students and he asked
me about the legality of Octave - for example, MATLAB has a
"butter" function for a Butterworth Filter, and Octave has a
"butter" function for a Butterworth Filter. Is this copyright
infringement of some sort? While I am positive that Octave is
perfectly legal, I'd like a good explanation for my students.
I am not well-versed in legal issues but I am sure that this
issue has been dealt with before.
Wow this is interesting! And I'm curious of what others will
My gut feeling is: "It is ludicrous to say Malab can use `butter'
but some other program can't." However, it takes a bit more
sophisticated thinking to properly address this issue.
I think the first thing to tell the student is that GNU Octave is
copyright and licensed under the General Public License which is
an established legal document. Then tell them that for Matlab and
only Matlab to be able to use a function called `foo' is wrong on
many levels. It goes against the nature of programing languages.
Is Matlab infringing on C since it too use a command called
`while' and `for'? It seems unlikely that the MathWorks would
pursue suing a project that uses a command called `butter'
because it doesn't make sense. They couldn't win in court and
they'd only generate bad publicity for themselves.
Octave only because illegal, I suppose, if the developers and
contributors cut and paste non-trivial code from Matlab and add
it to Octave. But this isn't done. There are many ways to skin
a cat and many ways to write a program that filters two input
vectors. What Octave project does is it looks at the black box
of a Matlab function, its inputs and outputs, then writes a
program that offers similar behavior. Since many of the
algorithms are universal (the discrete Fourier transform, for
example), much of the behavior is precisely the same. Besides, I
think that many of the hard to crack problems use common code any
way: LINPACK, ATLAS, FFTW, random number generation. These hard
problems have been worked on for many, many years by researchers
around the world. (I'm a bit out on a limb her, but others will
correct me if I'm wrong.)
It is important to tell the students that programing languages
have a long history of sharing ideas. And that it is similar to
science and mathematics. Ask them if it is illegal to perform
integration by parts at company X when it was learned at
Help-octave mailing list