For a while, I’ve been thinking of changing my use of a couple of pieces of software: Galeon, the web browser that I use, and XEmacs, which I basically use for everything other than web browsing. (It has a web browser, too, but it’s less than optimal.)

These are, of course, two rather different situations. Galeon is a much younger program; it uses the Mozilla rendering engine, and appeared at a time when it was the only good lightweight alternative to Mozilla. Since then, other options have cropped up, one of which (Firefox) is dominant, and it’s not included in Fedora Core distributions. (Why, I’m not sure.) So it’s a bit of a hassle to keep on updating it; there are a couple of things that it does that I don’t know how to do with Firefox (customizable search boxes, Gnome integration), but those aren’t show-stoppers. At least at home: at work, I get a lot of mileage out of customizable search boxes. (I suspect that Firefox has a mechanism to provide similar functionality, I’ll just have to figure out how to do it.)

And Firefox does have one clear advantage over Galeon: it can read RSS feeds. As I mentioned before, I’m reading RSS with Gnus in XEmacs these days. Which is better than not having an RSS reader, but it feels a little silly, because when a new article appears in a feed, I just click on the link to bring it up in Galeon. So why not eliminate the middle-man? Also, I’ve run into one annoying bug, and Gnus doesn’t handle new versions of RSS (Atom), which is occasionally an annoyance now and will, I suspect, be much more of one in the future.

Which brings me to XEmacs. I use it for a few different things:

  • It (via Gnus) is my mail (and news) reader of choice. I don’t see this changing any time soon: I’m quite fond of Gnus, and I have yet to see any even vaguely compelling reason to switch mail readers. (At least until HTML e-mails start swamping plain text; I’ve been pleasantly surprised at how well text/plain is holding up, with the aid of multipart/alternative.)
  • I use it as a development environment. Here, actually, I may switch away part of my work: the next time I get back to programming in Java, I plan to give Eclipse a serious look. I don’t like Emacs’s Java mode at all, and I would really like to try using an IDE with automated refactoring support. It’s not a threat for C++ work, though: Eclipse doesn’t have any (serious) refactoring support for C++, and without that, there’s no reason at all to change.
  • Other text editing. Here, XEmacs does fine. I’m a little worried about its inadequate XML support; for now, though, I don’t have to edit XML files at all frequently, so it’s not an urgent problem.

Note that I’ve stayed blessedly free of need for, say, WYSIWIG editing (e.g. communal work on Microsoft Word documents). If I want a document to look good, I just use LaTeX.

So, unlike Galeon, I can’t imagine completely shifting away from XEmacs. (Incidentally, until I started working at Kealia, I had no idea that there were so many vi users around! And nobody uses a standalone IDE in our group.) It and GNU Emacs are starting to show their age, however. Unfortunately, I don’t think that either one has a really vibrant development community behind it any more; there’s still enough of a community there, and its existing functionality is extensive enough, to provide a very solid cushion, but I’m pretty sure that a permanent decline has begun. I’m afraid that there’s going to be some killer app requiring an editing format that I need to deal with, and that Emacs won’t support in time for it to be a viable alternative for me. If I were programming in Java, automated refactoring support might be that killer app: it sounds to me like it seriously changes your relationship with the code in ways that are very important for me. For the next few years, I’m probably safe, but the clock may be ticking.

Which brings us back to our last topic. As Jordan protested, TeX still has a strong user base behind it. And it’s interestingly different from Emacs: it basically hasn’t changed at all for more than 20 years, while Emacs has needed to change significantly in that time (supporting X Windows being the simplest example). Of course, I don’t program in plain TeX, and fortunately LaTeX has been improving; maybe TeX will live indefinitely as an underlying formatting engine with improved macro packages and tools on top of it. (For that matter, I actually wouldn’t mind if new Emacs releases were few and far between, as long as there were a vibrant elisp hacker community; one great virtue of XEmacs is that it’s much easier to install third-party packages for it.) After all, TeX was designed for computers of two and a half decades ago; on modern computers, it’s quite zippy, enough so to support a significant weight of layers accreting on top of it. Not quite zippy enough to, say, make it realistic to re-TeX your entire source file every time you type a character, but it’s not that far off from such a rate.

TeX does still have some challenges. I’m not sure that there are any standardized ways to, say, include hyperlinks in your documents, though I’m fairly sure there are nonstandard packages to do that, and it actually would fit in reasonably well with LaTeX. As the world moves away from editing plain text by hand, it might have to fight somewhat to survive; I can easily imagine, say, an XML DTD that would corresponding quite directly to LaTeX, but it would be a quite delicate juggling act to balance that with the ease with which you can write mathematical formulas by hand. I wouldn’t be surprised, though, if TeX lasted for another 20 years; it’s a pretty amazing piece of software. I’ve been using it for 15 years myself, and new users are born every day, or at least every few weeks, in math (and presumably CS?) graduate departments.

Post Revisions:

There are no revisions for this post.