« Blog searches | Main | Helicopter in a tunnel, my ass. »

August 22, 2005

Aquamacs is not just an ego-trip.

OK, this is going to be a technical and maybe political read for people who haven't had a good taste of the free software development world. It's about what's been going on with regards to Emacs (on the Mac).

Andrew Choi, the man who brought GNU Emacs to the Mac, believes that "free software developers are in it for Ego, not Freedom". He's right and wrong, both for the wrong reasons.

Andrew takes great exception at the fact that recently, Emacs enthusiasts have begun offering their own Emacs distributions.
They tweak and add code in order to save people time configuring and running Emacs on their system. Sometimes the changes are small, sometimes they're not. Aquamacs, my and my collaborator's baby, is one of these distributions. In Andrew's view,

Distributions are given fancy names like Enhanced Carbon Emacs, Aquamacs, YACED, etc., but they are really just packaged Carbon Emacs. I suppose packagers think they’re entitled to name a software after making a few small changes. We aren’t talking about big Linux distributions here people.

Aquamacs Emacs contains over 5100 lines of elisp code and about 1200 lines of patches to the C core of Emacs, 99 percent written by me.
The Japanese Carbon Emacs Package due to Seiji Zenitani and others contains a lot of carefully written code, too, including a fancy Net-Install feature.

In addition, Aquamacs comes with a number of third-party packages pre-configured. Finding, installing, configuring these packagages to provide a useful UI consistent with Mac/Windows environments is of substantial added value to our users.

I'm well aware that the changes are small compared to 30 years of Emacs development, and Andrew Choi's gigantic effort porting GNU Emacs to MacOS and later to OS X. But in terms of what the user gets to see, Aquamacs already represents a departure from certain Emacs usage paradigms. It needs a different name.

Think of the one-buffer-one-frame philosophy (GNU Emacs traditionally displays files in the same big window ("frame"), rendering the OS's beautiful windowing system useless. It has it's own windows-inside-the-frame, pre-dating real GUIs.) Think of OS-standard-confirming shortcuts. Finally, it's a different philosophy: we see Emacs as an application and not as an entire work environment, which seems to be the predominant view among old-style Emacs enthusiasts who even like to browse the WWW in Emacs.

The use of imprecise words like “enhanced”, “based on CVS Emacs”, “Aqua”, etc. in descriptions of distributions implies more improvements than have actually been made.

Maybe we're from different planets. But the Enhanced Carbon Emacs is enhanced. Just to give an example: before the advent of those distributions, GNU Emacs developers - Andrew including - didn't find it necessary to provide off-the-shelf fonts with anti-aliasing enabled. Instead, a font menu was (and still is) present in the Emacs provided by the Free Software Foundation that offers some 12 fonts, none of which can be used to display one's texts. It doesn't work, and when it does, it's not ergonomic.

Of course, one has different priorities. But Andrew's opinion clearly shows that many Free Software developer are indeed egotistical. They don't care much for the user. They own habits and preferences overrule whatever standards are established for the UI of applications.

That's why we created Aquamacs Emacs.

People package and redistribute Carbon Emacs typically sell and promote other products at their websites.

First of all, there's nothing wrong with selling and promoting products. People have to live from something. Secondly, neither Aquamacs, nor ECE, nor Yaced sell anything else. Not even Aquamacs' original home at WordTech sells things on the same website. Instead, co-inventor Kevin Walzer sells poetry books as a publisher, and most likely not to Emacs geeks.

Of course, I'd like to at least make some money to pay for the website. But it seems like that's not going to happen. I don't give a flying f... about a potential employer in the Linux world, who might one day pay me to hack elisp. I do research and a maybe a bit of journalism for a living, not Emacs hacking. Consulting jobs would be great, but I haven't had an offer even after thousands of Aquamacs downloads. To be quite clear: it's charity work that I'm doing. And if I can gain a bit of respect, then that's a very meager return-on-investment.

I got involved for two reasons. I wanted a decent input method including syntax coloring for Prolog programs, and BBEdit didn't offer that. I didn't want to use plain Emacs because it represents annoyances to someone who is very much used to a certain user environment. Secondly, I wanted to learn Lisp. Thirdly, I wanted to know what other people would think of a mac-ified Emacs. The first two objectives were reached. The third one was a question that thousands of people have answered by downloading Aquamacs. A substantial number of people use it daily (I track these things!). Enough motivation.

The disappointing fact lies in something else that Andrew once wrote. There is no Bazaar in Free Software Development.
The code was written by myself, and I took some prefabricated packages. The manual was written by my collaborator. And Emacs was Emacs. That's it. The others are users with great technical interest -- none of them has actually contributed more than a few lines of sample code. I am unable to keep implementing features - I have a day job.

There are people who mislead and those who plain lie! My favorite example is a website that lists Carbon Emacs as one of the programs its owner have “ported or written”. Huh? If he did that, what did I do?

Well, that's where Andrew is correct. People lie. Welcome to the real world. I do get annoyed by folks that offer a plain compiled Emacs without extras as a binary and claim that they provide something special.

New mailing lists were eagerly established to discuss the Carbon port instead of people being sent to join the main discussion at emacs-devel. Of course, a few more people can now become “experts” on these new lists.

Well, truth of the matter is, we discuss Aquamacs user-related matters on a long-established Emacs-on-OS X mailing list - not on a new one. With regards to bug reports, users started reporting issues to the Emacs-Bugs mailing list as soon as I had fixed the bugreporting function (it began to actually work on a Mac after years of swallowing the bug reports without notice!). But what happened is that Emacs inventor Richard Stallman got (understandably) annoyed with bugreports that related to Aquamacs-only issues. So he asked me to direct users to our own mailing list, which we did.

We are and we will be in competition with the main Emacs project. It's a competition for more users, and for better user interfaces (because that's what an editor is about). But diversity and competition are good things, especially in a system where people can feed on other people's code.

A significant number of people who make no or negligible contributions to Emacs/XEmacs code hang out on mailing lists and newsgroups and act like real experts and bully novices and other posters. People who know even less then chime in to make matters worse!

User support is something important, and it adds value to the community. And it's even more important that the experts invest their time into developing the project rather than answering beginner's questions.
I'm no Emacs expert (in my view), but to Aquamacs users, I am. It's all relative.

Aquamacs has already had a small impact on GNU Emacs development. We contribute back to the main project - in Choi's view, Emacs distribution maintainers seem much less concerned with adding their changes to the main CVS.
I contribute code where I think it's useful and where I think the maintainers will accept it. I have reported countless bugs (takes time, too!). I will continue contributing code to the main project. But I am not willing to enage in week-long debates about silly little things that seem just plain obvious to someone coming from graphical user interface based systems. If people want the code, they can have it. It's there, and I'm happy to help. But I'm not happy to take a stand in long pseudo-political discussions, or bash people on mailing lists whom I respect way too much for their long-standing work. Andrew Choi and Richard Stallman are two of them.

Posted by dr at August 22, 2005 11:29 PM


Trackback Pings

Please use the following TrackBack URL:
http://www.davids-world.com/~dr/cgi-bin/mt/mt-tb.cgi/79