GPL in Practice

From an excellent case study on the practical impact of GPL licensing:

[An] Objective-C implementation is in two parts: the compiler and the runtime library. NeXT was only required to release its compiler code, not its runtime library. […] Rather than admit that it had a worthless bit of code, the GNU Project wrote its own Objective-C runtime—and this is where things really started getting interesting. The GNU runtime wasn’t quite a drop-in replacement for the NeXT runtime. […] Because the [non-GNU] branch only had to support a single runtime library, there was no clear abstraction between the runtime-specific and runtime-agnostic bits, and so the GNU branch quickly fell behind.

So forcing a company to release code it didn’t think anyone would find useful and had no intention of supporting ended up wasting the time and energy of a lot of open-source developers who devoted themselves to reconciling incompatible branches instead of actually improving the compiler. But it gets better:

Apple wanted to integrate the compiler more closely with its IDE. […] Unfortunately for Apple, the GPL required either making XCode open source or rewriting GCC. Apple opted for the latter choice.

In fact, Apple just decided to switch from GCC to a different open-source compiler: LLVM. There may be other technical reasons for the switch, but the fact that GCC is licensed under the GPL while LLVM is released under a less restrictive BSD-style license must have been a major factor.

My take is that the GNU political movement is undermining the most important and successful project under their control.

I’ll take this opportunity to beg all developers to stop using the GNU readline library as soon as possible and move to an alternative such as editline. GNU’s refusal to allow LGPL licensing for something that is so obviously a peripheral library feature just demonstrates that the organisation is far more interested in forcing their ideology on others than in the practicalities of creating good software.