Is OpenOffice.org (OOo), the popular free office application, "a profoundly sick project," as developer Michael Meeks alleges? Or are his comments a poorly concealed effort to promote Go-OO, Novell's version of OOo, as the anti-Novell lobby suggests?
The answers to these questions are important, because the flame war that continually threatens to erupt over them -- most recently, last week -- could have a direct affect on OOo's future, and OOo is a key part of most efforts to promote a free and open source desktop. The trouble is, nobody in the controversy seems to have hold of the complete truth. As often happens when a question is reduced to either-or polarities, nuanced judgment becomes the first casualty, with none of those who are arguing willing to acknowledge that they could be both right and wrong at the same time.
A history of controversy
Go-OO has existed as an informal collaboration since 2002. However, the controversy over the project and its goal only began 14 months ago when it was officially announced. This first announcement was accompanied by a critique of Sun Microsystem's management of OpenOffice.org that has continued periodically ever since.
In particular, Go-OO contributors such as Meeks and Kohei Yoshida balk at the requirement that the copyright of all code contributed to OOo be assigned to Sun. Other criticisms center on Sun's tight control of the project, which allegedly prevents the development of a healthy FOSS community. Go-OO is supposed to be a project where contributors do not have to abandon the copyright on their code, and they can develop features that Sun -- for reasons good for the corporation but not necessarily the community -- does not care to accept into OOo.
Some of those who object to Go-OO, such as Sun employee Simon Phipps, rebut the project's critique of Sun. However, most objections come from those who have ostracized Novell from the free and open source software (FOSS) community ever since its first deal with Microsoft in November 2006. The objectors focus on Go-OO features ranging from support for VBA for scripts and file import and export for Microsoft Works and OOXML format to the use of the Mono programming language for add-ons. They express concerns that Go-OO is yet another effort by Novell to corrupt FOSS with Microsoft technologies that might be vulnerable to patent claims. For instance, in response to one recent article on Go-OO, a commenter mused, "I wonder if this is really an improvement or an attempt to get mono code integrated into OOo."
In the last month or two, this debate has flared up again. Part of the reason for the renewed debate is probably media coverage that revealed that many distributions, including Debian, openSUSE, and Ubuntu, package Go-OO in preference to OOo itself.
Another reason seems to be Meek's renewal of his critique on his blog. After making a statistical analysis of contributions to the main OOo project, Meeks concludes that not only have Sun's contributions to OOo shrunk in the last four years, but the number of active developers has declined from 70 to 30. He suggests that what is needed is democratic change in the governance of OOo, as well as a distancing of the project from Sun, perhaps through a foundation. Meanwhile, he suggests in a postscript, perhaps developers should consider Go-OO.
By contrast, the anti-Novell lobby sees Go-OO as a fork of OOo, rather than a supplement. The lobby's members condemn Go-OO for not sharing its improvements with the main project, and for criticizing it.
Some lobby members even go so far as to suggest that Go-OO exists for the purpose of advancing Novell's pro-Microsoft agenda. According to this argument, features like support for Mono extensions are part of a long-term campaign to undermine free software by making GNU/Linux distributions that use Go-OO vulnerable to future accusations of patent violations. Supposedly, this tactic is intended to keep OOo from becoming a major challenge to Microsoft Office.
Go-OO truths and exaggerations
The trouble with both these positions is that both contain scraps of truth, but also suffer from serious omissions.
On the one hand, while Meeks' critique of OOo may sound severe to outsiders, anyone who has spent much time in the community would probably agree that the project has serious problems. OOo developers have little contact with the community, and more than one enthusiastic volunteer has drifted away from the project in disillusionment after attempting to contribute. Perhaps the greatest community success has been OOoAuthors -- and it had to organize independently before it was recognized as a useful contribution to the main project. And, on the development level, not only Go-OO, but also OxygenOffice and NeoOffice have also found it easier to accomplish their goals outside the main project.
Nor has Sun or OOo showed much interest in reducing the barriers to participation, the way that Fedora has under Paul Frields. If you spend any time in OOo at all, you are likely to conclude that all major decisions are made by a small circle of Sun developers, and that they like things that way.
On the other hand, Meeks seems less than forthright in his motivations. As Sam Deans points out, Meek's postscript, far from being an after thought, seems the main point of his criticism.
In addition, Meeks' analysis is suspect. Its methods are more than a little cavalier. For instance, explaining why he should choose to analyze contributions of a hundred lines of code, all Meeks will say is "Why one hundred? Why not?" The explanation is hardly adequate for anyone who wants the context for his conclusions.
But, even if you accept his data, it can be interpreted in more than one way. For example, as Matt Asay points out, the decline in OOo contributors could be interpreted as a sign that the community of developers has cohered into a team, with peripheral contributors falling away.
Perhaps just as importantly, Meeks does not consider where some of the former OOo developers have gone. Could they be working with OxygenOffice or NeoOffice? With Go-OO? In other words, Meeks might very well be among those who have contributed to the decline that he claims to document, even though Meeks himself continues to be involved with mainstream OOo.
You can't help wondering whether, consciously or unconsciously, Meeks worked back from his conclusions -- and whether his conclusions are biased by his loyalty to Novell and Go-OOo.
Anti-Novell truths and exaggerations
Much the same can be said of the main opposition to Go-OO. Meeks' bias seems far too unsubtle to deny, and his efforts to dress up his conclusions as statistical analysis, with a careful commenting on the possible limitations of his data and the offering of various alternative data, remain unconvincing.
Nor do you have to see Mono as part of a guerrilla war against FOSS to question support for it in Go-OOo. When nobody is asking for the ability to write add-ons to OOo in Mono and so many people disparage its use, why make it a priority? There are more pressing improvements, and courting needless controversy seems misguided. For whatever reasons, Novell is the only contributor interested in including Mono, and you have to wonder why its employees could not argue for its inclusion within the main OOo project. As one of the largest contributors to OOo even now, surely its goals would carry some weight.
However, by emphasizing only the Microsoft technologies in Go-OO, the anti-Novell lobby misrepresents the project. While Go-OO does include these features, it also includes support for SVG graphics, 3-D transitions in graphics, a desktop quick-starter, Gstream integration, a Calc solver, and improved rendering of Chinese characters -- all of which suggest that Go-OO is far less narrowly focused than alleged. Admittedly, some of the claims made for Go-OO seem questionable, notably the supposedly faster start time, but, by and large, the evidence points to a focus in Go-OO on features rather than on a pro-Microsoft agenda.
For that matter, not all the Microsoft technologies are necessarily perilous. For those who remember last year's ISO standard wars, the use of OOXML is not very appealing (I, for one, avoid it whenever possible), but its inclusion is important, because it allows FOSS users to exchange files with the proprietary majority. And considering that OOXML is now an ISO standard -- no matter what dirty tricks might have made it one -- the idea that it, at least, could now be used in patent violation cases seems logically inconsistent. The anti-Novell lobby is right to suggest that Meeks is being disingenuous about Go-OO, but the agenda of its members makes them push their arguments into distortions as serious as Meeks'.
The danger in this dichotomy is that choosing either side forces you to accept valid observations along with the invalid, and to ignore the validity on the other side. Casual observers might want to simply walk away muttering, "A plague on both your houses" -- and who could blame them if they did?
Yet if you care about the future of free software on the desktop, you need to resist the adrenalin rush of a flame war and accept that this is one of those cases in which both sides in the discussion are right, but for the wrong reason.
I don't pretend to know how to make OpenOffice.org a vibrant community. A merger of the various splinter groups? Perhaps the creation of an independent foundation? But I suspect that before any solution has any chance of success, large numbers of people need to see the situation clearly -- and that the first step towards that perception is rejecting the half-truths on both sides.