Fast InvSqrt()? Only if you GPL!
I just read an article investigating the origins of a fast inverse square root implmentation found in the released Quake 3 source code. This story is not exactly new, but it just got posted on Slashdot, and it's a facinating read. However, one particular comment irked me:
To all those wondering why John bothers to push out the source to id's game engines after the fact, the snippet of code at the very top of this article is a poster child for why. Not only do you get well-programmed and well-optimised 3D engines to modify and learn from, you get gems like the fast invsqrt function [...]
The source was released unde the GNU General Public License (GPL). This technically means that if you use this code, your code must also be released as GPL. So yeah, I can learn from this code, and I can even modify and use it an in another "free" application, but I cannot use it in a commercial-only application. To quote Bill Bumgarner:
Let me be utterly simplistic and blunt: The GPL is not a free license very much because it limits your freedom to do what you want with whatever it is that is under the GPL. Period.
Granted, this snippet of code has been traced back to pre-id origins over 15 years ago, and is probably considered in the public domain by now. And I'm sure id chose the GPL preciesly so that a competitor cannot snap up the code and use it as their own. As Sun just did with Java. I hate to be the license police, but it's important to understand the difference between all the open source licenses.