The oldest bug

Off the Beat: Bruce Byfield's Blog

Last week, I did something that I had meant to do for over a decade: I filed a bug against LibreOffice's Bibliography Database. As I tweeted immediately afterwards, somebody had to do it.

Part of the delay was due to the fact that I haven't been an academic for some years now. In the last decade, I've written exactly one scholarly paper, so defects in the Bibliography Database were less than a pressing concern of mine.

Another part was that the bug -- or most of it -- was so simple that I was sure somebody else would get around to correcting it.

But apparently I under-estimated the degree to which the Bibliography Database was being avoided. Although I was aware that many LibreOffice users were using external tools instead, I only recently became convinced that they were doing so because very few understood how to use the database. Even tutorials and the online help avoided so much as mentioning the difficulties, which makes strongly suspect that very few actually had hands-on experience with the database.

Last week, I decided suddenly that nobody else was likely to fix the problems. Hating to see a problem persist, especially one so easily fixed, I finally gave in and filed the bug myself.

That's right -- reallyWhat does the Bibliography Database need to be functional? I suggested several large scale changes, including being organized by citation style, and allowing separate instances for each document. Thinking just now, I would add that the dialog for inserting citations into the text would benefit from displaying the entire database when necessary.

However, none of these improvements is needed to restore basic functionality. What is really need is so basic that's it ludicrous. It all comes down to some simple changes in a single field:

First, the Identifier column in the database and the Short Name in the input tool need to be given the same name, because they are the same field. Neither name adequately explains what the field contains, which is the form in which a citation is given in the text of the document -- for example, in the APA style, (Miller: 2005). If you go to Insert ->Index and Tables -> Bibliography Entry, this purpose is obvious immediately. Both should be renamed something like Citation.

Second, once you realize the purpose of the field, it becomes obvious that the samples in the database were added by people who had no idea how the database worked. Instead of giving the citation format, the examples give nonsense contents such as MIL00 that would never be used in any known system of citation. If these meaningless citations were replaced by examples that might be actually used, then users would have a fighting chance to understand how the database worked.

And that's it -- maybe twenty minutes' coding of the most routine kind to make the database functional. The biggest challenge would be avoiding boredom.

Yet these problems not only go back to OpenOffice.org, but to the proprietary StarOffice whose code release created OpenOffice.org in 2000. Depending on exactly when the Bibliography Database was added to the office suite, I could be talking about a bug that has persisted for two decades or more. By any measure, it's a candidate for the longest unreported and unfixed bug.

The senile bugThe fact that this bug was overlooked for so long probably reflects the history of the code. Sun Microsystems was always more interested in adding features to OpenOffice.org than in correcting longstanding problems, and LibreOffice and Apache OpenOffice, its successors, have no shortage of other -- often more urgent -- cleanup to do.

Perhaps, too, the Bibliography Database has always lacked an audience. The majority of users have no need of it, while professional academic are likely to find it too simple in comparison to third party tools. Under these circumstances, perhaps nobody has cared enough to notice the problems, much less fix them.

All these things may be true. Yet the Bibliography Database has continued to be shipped, release after release and year and after year, apparently without anyone noticing any problems or bothering to correct them if they did.

The experience is enough to make me doubt the old free software truism that, "with enough eyes, all bugs are shallow." After all, dozens of people have modified the code in question without noticing this particular bug. You might say that, given the size of the code, that there has never been enough eyes, but I suspect that the oversight is also due a lack of eyes with the necessary training or interest.

It is definitely enough to make me resolve to report bugs more often for all the software that I use. When I realize that, had I reported the problem when I first noticed in back in 2000, it would have been fixed thirteen years ago, I feel irresponsible.

I'm also left wondering what other easily fixed bugs may be lingering unnoticed in other obscure corners of the code that runs my hardware.