Donald Knuth affirms the value of the GPL

Forum: LinuxTotal Replies: 5
Author Content

May 27, 2010
10:25 PM EDT

From the last Q&A, with a pedantic bit about the term "reusable code":

Quoting:To me, "re-editable code" is much, much better than an untouchable black box or toolkit. I could go on and on about this. If you’re totally convinced that reusable code is wonderful, I probably won’t be able to sway you anyway, but you’ll never convince me that reusable code isn’t mostly a menace.

May 28, 2010
3:01 PM EDT
That's a bit out-of-context when you try to stretch that blurb to be also about the GPL.

What he's saying, and I agree with, is that there's a hazard inherent to using "re-usable" code (be it open- or closed-source) as found in shared libraries: when the code maintainer changes the way a component in a shared library works, it may very well break any code you wrote that uses that bit of re-usable code.

This has NOTHING to do with the GPL - because you end up with the same dilemma if you use a proprietary, closed-source toolkit, or the QT.

May 28, 2010
4:24 PM EDT
How is it out of context? He's talking about the first two freedoms of Free Software, freedom of use and freedom to edit (which is predicated upon freedom to read it).

The GPL and LGPL guarantee the freedom to fix errors and shortcomings of any kind, be they in design or implementation, as well as the freedom to augment the provided code. "Re-usable" carries no such guarantee, which is what Dr. Knuth is addressing directly.

So, he didn't explicitly name "the GNU Public License." Big deal. What license, besides the GPL and the LGPL, guarantees at least those two things to all recipients of code released under it? Add to that the freedom to redistributed unmodified (#2) or modified (#3) versions, and you pretty much have the full {L,}GPL-defined freedoms.

May 28, 2010
5:30 PM EDT
He's not talking about the "freedom to edit" - he's talking about the dangers of using "re-usable" code - code that you use but don't maintain. And this sort of code is used all the time in the form of shared libraries.

If you look at totality of the interview, you'll find that Dr. Knuth does not hold the opinion that Open Source is always best: Take a look at his answer to the first question - "... I think that a few programs, such as Adobe Photoshop, will always be superior to competitors like the Gimp—for some reason, I really don’t know why!"

The particular quote you're taking out of context was about METHODOLOGY - not licensing. His expressed opinion in the particular question you're focussing on is about the superiority of CONVENTIONAL programming practices, such as PEER REVIEW - and that has NOTHING to do with licensing, which is probably why NO license was mentioned in the interview.

In the world of programming methodologies, which is what Dr. Knuth was talking about, "re-usable code" has nothing to do with the license, and everything to do with which development methodology is used - like SSAD, RAD, agile or waterfall.

Here's an article on "re-usable" code in the Open Source world:

May 28, 2010
8:46 PM EDT
Quoting:The particular quote you're taking out of context was about METHODOLOGY - not licensing.
I suggest you apply his advice about methodology, when you edit Adobe's Photoshop source code.

Wait, what's that? You say you can't? Section 4 of the Adobe EULA forbids you access to it?

Then your points about methodology are academic noise, nothing more.

May 29, 2010
4:27 AM EDT
Quoting:he's talking about the dangers of using "re-usable" code - code that you use but don't maintain

But with FLOSS you CAN be one of the maintainers of anything. Case in point: we were using an "enterprise" third party library in our project at work. But it had bugs. I patched them, reported bugs and submitted upstream. I became a de facto maintainer of that library (I even submitted some feature proposals - with patches!).

If it was a closed source proposition we would be in deep, deep peril. Even if that's not literally what Don Knuths says, it still applies.

You cannot post until you login.