Striking the Right Gnote

Wednesday May 27th 2009 by Bruce Byfield

Share:

Because the open source Gnote is coded in Mono, some see it as controversial. It this much ado about nothing?

You might imagine that an application for desktop notes would be too commonplace to generate controversy. Yet when Hubert Figuiere created Gnote, a port of the GNOME application Tomboy to C++, controversy erupted immediately.

Tomboy, you see, is written in Mono, an implementation of Microsoft's .NET that many fear is patent-encumbered, and might be used against the free software community one day. That hasn't happened in the six years of its existence, but the concern remains widespread, partly legitimate and partly conspiracy theory and demagoguery. Against this background, Gnote was hailed as the liberation of a Mono-encumbered application, as you can see in the responses to the release announcements.

Unfortunately, this reception has two things wrong with it: Figuiere insists that "this has nothing to do with Mono," and the concerns that Tomboy developers have about Gnote are minor and have little to do with programming languages.

An unlikely hero and his reasons

Part of the reason for Gnote's reception is that, in some circles, Figuiere has a reputation for being hostile to Mono. For example, Tomboy developer Sandy Armstrong, who wrote a response to the release of Gnote on his blog, tells me that Figuiere "has gone on the record many times as having a problem with Mono."

However, the truth seems more complicated, and not just because of Figuiere's flat denial. According to Figuiere's LinkedIn profile, he worked two years at Novell, the major sponsor of Mono, as a desktop developer specializing in GNOME and Mozilla, but mostly as a jack-of-all-trades. Two years would be a long time for anyone to work for an employer with whom you had philosophical differences. And, given the areas in which he worked, it is almost inconceivable that Figuiere never had some dealings with Mono for Novell. He certainly did so previously when he worked at Xandros, where he packaged Mono for the company's distribution.

Not that Figuiere is a Mono advocate. But his opposition over the years has been more practical than philosophical. For instance, in several discussion threads about Including Mono in GNOME on the desktop-devel-list in July 2006, Figuiere objected to shipping Mono-based apps on the grounds that the language required a lot of disk space, but was supporting only minor applications -- and he made the same objection to Python, a far less contentious programming language.

This objection, incidentally, is one that he continues to hold today. Gnote, he tells me, "has all to do with the burden of carrying runtime systems designed to make the programmer's life easier (but not the users'). Had Tomboy been written in Python, it would have gotten the same treatment."

Of course, Figuiere might have soured on Mono after being laid off at Novell in February. But, if he did, it would be strange if he continued to use what he describes as an "openSUSE 11.1 custom build with SUSE Studio with some custom packages" -- free software versions of Novell's own products.

Nor does any sudden dislike of Novell feature in Figuiere's explanation of why he created Gnote. His general explanation is that, "In my attempts to fight my own boredom, as an unemployed hacker, I took on myself to do something: porting Tomboy to C++." This is an idea that has apparently interested him since another GNOME developer made the same efforts in July 2006, but he never previously had time to explore.

A more immediate motivation was that Figuiere was running an older netbook, and wanted a note application, but felt that "the runtime dependency on Mono was a problem for a space-constrained device."

In other words, Figuiere was not writing code to liberate free software from the Mono-poly of Tomboy (if you can excuse the pun). He was writing code for which he had a personal need. His focus, as you can see from his description of the technical challenges in his first announcement, was entirely practical.

Issues within the community

Gnote has roused other concerns within the GNOME community in general and the Tomboy community in particular. An apparent fork is always a matter for concern in free software. As Armstrong points out, it risks "wasted developer effort" -- a constant worry since most projects are understaffed to begin with.

Moreover, according to Armstrong, Tomboy already has a number of ports, including one to Java on Android, Google's operating system for handhelds, and another to C on Maemo, the operating system for Nokia handhelds.

"These projects fill a real need in the Tomboy community," Armstrong says. "The developers all collaborate, too, and we're working on an online service to aid in synchronization between them." By contrast, Armstrong observes, "When compatibility bugs happen in Gnote, I hear it from users, not from the Gnote developers."

However, this alleged lack of cooperation may be due largely to Gnote's relatively brief history. There has hardly been time for any cooperation, because the code is still being written. And, speaking of the fledgling Gnote community, Armstrong notes that, "I have already worked with them to fix one interoperability issue."

This comment suggests future cooperation between Tomboy and Gnote is not out of the question. Some of those interested in Gnote, Armstrong suggests, are "C++ programmers, because of course it's always fun to play with a new project in your favorite language." Others "hope Gnote will save disk space or resolve their Tomboy performance issues," although he doubts that it will. However, he characterizes others as "folks who object to Mono for political reasons and will automatically object to anything written in it."

Armstrong goes on to say:

"Most of the other [Tomboy] developers seem pretty uninterested in Gnote. There are folks in the community who are vocal about their opinions, but, as for people writing code, it's pretty much a non-issue. I only commented on it because people kept asking me what the deal was, and I wanted to clear up any misconceptions. Of course, we can see how well that worked out. :-P"

In other words, the release of Gnote shows the free software community operating much the same as it always does. People are pursuing their own interests, and concerns and arguments arise, but the result is hardly newsworthy. What controversy there is has been kept alive largely by prior expectations and positions rather than events themselves.

Enter rumor

For those with objections to Mono, Gnote is a serendipitous find. In fact, I have started using Gnote myself when I am on GNOME because of my own misgivings. Whatever the disputes within the developer community, among users, if nothing else, Gnote offers greater choice, and nothing is wrong with that.

At the same time, a distorted view of events only creates more distortions. If nothing else, it can inflame some of the normal give and take of the community into actual feuds.

More importantly, you need to see clearly in order to manage expectations. Figuiere plans to port all Tomboy extensions, because he wants to be able to use them with Gnote, but that effort is not the start of a concerted effort to port all Mono-based applications such as F-Spot, Banshee. What interests him is having a notes application that runs on an older machine.

The trouble is, the free software community generates as much rumor as code -- and that has clearly happened in this case. For all the discussion generated by Gnote, Figuiere comments that only two people have bothered to check with him about what the project is about. If more had, then maybe the volume on this controversy could have been dialed back to a more realistic level.