I enjoy/suffer GNU Emacs daily since May 2007.
I think it fits very well in the GNU project. It gives me the freedom to (1) use it, (2) study it, (3) improve it and (4) distribute it as I want, without limits. Not only you have the freedom to do this, but it also encourages you to do it:
- The big repertoire of functions probably satisfies most of your usage needs.
- All functions embed their documentation, you can browse it inline, most are written in Lisp and are also made of self-documented components.
- Just „configuring“ Emacs is equivalent to programming Emacs. And people love configuring their Emacs.
- There are lots of places to share Emacs Lisp code, and it is a very common practice.
I am interested in software quality and usability, and while I think that Emacs is in general stable, I also see that it suffers many shortcomings.
- Most useful things are off by default, and users don’t notice it
- Little documentation for many complex functions
- Rudimentary development tools: no normal and easy-to-use bug/patch tracker (after 30 years!); repositories still with CVS; the main tool is just a mailing list with too many off-topics and personal attacks; no automated testing
- Delayed inclusion of common features; too long release cycles
- Only available in 1 language
- Little effort on usability and on what the users need. Many usual and reasonable tasks don’t come optimally preconfigured; ex: working shell, IDE, HTML editor, …
- Many people don’t recognize the need of improvement and think for instance that it’s normal to spend many days just to configure your e-mail
I’d like to try to fix this type of problems. For instance, moving people to take part in GoogleSummerOfCode 2009 in GNU Emacs, which is a good opportunity to tackle the big projects… because you have a mentor, some objectives to achieve, an evaluation at the end, and progress tracking. This is hard to obtain individually, specially in a project without roadmaps like Emacs.
Until now, I improved some documentation: FloatingPoint, symbol glossary at CategoryGlossary, GnusGmail, GnusEncryptedAuthInfo, GnusSpeed, EmacsLispReference, FakeClosures, EmacsMemoryDebugging, GnusDemon, GnusNotify, … and did content reorganization and maintenance (ex: at JavaDevelopmentEnvironment, JdeeVsEclipse). I’m writting also my first patches while I learn EmacsLisp.
I use GNU Emacs, OrgMode, Gnus, Icicles, emacs-w3m, [[Muse?]], [[Rcirc?]], TabBarMode, JabberEl.
clemente in EmacsChannel. My web site is at http://www.danielclemente.com/