Post-revolutionary open source
I spent last week in Porto Alegre, Brazil at FISL (the Fórum Internacional Software Livre – which Americans will pronounce “fizzle” but which the Brazilians pronounce more like “fees-lay”). I was excited to go to FISL based on the past experiences of former Sun Microsystems folks like Eric Schrock and Deirdré Straughan – and I thought that it would provide an excellent opportunity to present what I’ve learned over the past decade or so about how companies screw up open source. My presentation, corporate open source anti-patterns, was well received – surprisingly so, in fact. In particular, I had expected controversy around my claim that anti-collaborative strong-copyleft licenses – which is to say, the GPLv2 – are an open source anti-pattern. As I noted in my presentation, I believe that the GPLv2 serves more to erect walls between open source projects than it does to liberate proprietary ones. To support this assertion, I pointed to the fact that, despite significant demand, Linux does not have ports of DTrace and ZFS generally available – even though they have been open source for the better part of a decade and have been ported to many other operating systems. But as I made the case for moving away from the GPLv2 (and towards collaboration-friendly licenses like MPLv2), I was surprised to see heads bobbing in agreement. And when it came time for questions, the dissent (such as it was) was not regarding my assertion about GPLv2, but rather about copyright assignment: I claimed (and claim) that one must be very careful about having copyright assignment in an open source project because it relies on the good behavior of a single actor. But one of the questioners pointed out that lack of copyright assignment has the very important drawback of making changing the license essentially impossible. The questioner’s background is relevant here: it was Jean-Baptiste Kempf, one of the core contributors to VLC. JB’s question came from his own experience: he had just led the VLC team through relicensing libVLC, an exercise made excruciating by their lack of copyright assignment. Why were they relicensing their core software? Ironically, because they had come to my same conclusion with respect to anti-collaborative licensing: they relicensed libVLC from GPLv2 to LGPLv2 to allow it to be more readily shared with other projects. And of course, VLC’s not alone – meteor.js is another high-profile project that came out as GPLv2 but has since relicensed to MIT.
So what’s going on here? I think the short answer is that open source is firmly in its post-revolutionary phase: it is so throughly mainstream that it is being entirely de-radicalized. While some extremists may resist this trend, it actually reflects the depth of victory for open source: the triumph is so complete that the young software engineers of today simply don’t see proprietary software as a threat. Like an aspiring populace after a long period of conflict, the software engineers behind today’s top open source projects are looking much more to a future of collaboration than to the past of internecine rivalries. While there are many indicators of this new era – from the license breakdown of Github’s top projects to the rise of Github itself – I think that the MPLv2 seems to particularly capture this zeitgeist: when it was designed, it was done so to be explicitly compatible with both GPL (GPLv2 and GPLv3) and Apache. So the open source revolution may be over, but that’s because the war has been won – may we not squander its spoils!