Farewell, sweet XEmacs

Posted by Scott Laird Sat, 10 Sep 2005 03:47:48 GMT

I can’t believe I’ve finally done it. I’ve quit using Emacs.

Over the past month, I’ve switched to using TextMate as my day-to-day programming editor. Since I live in my editor 4-12 hours per day, this is a huge change for me. I’ve been using one form of Emacs or another since late 1990 or early 1991; that’s a huge amount of inertia to overcome. It’s been a lot easier then I expected, and I’m starting to really enjoy a lot of TextMate’s features.

Here are a few of the advantages that I’ve seen with TextMate. Some of these are quirks of my setup, but others are fundamental things that TextMate gets right that Emacs couldn’t do without a 6-month flamewar and a couple forks:

  • TextMate’s Rails support is better then XEmacs’s. XEmacs’s Ruby mode has a few quirks that frequently broke indenting, and it completely failed to understand .rhtml files. I’m sure that I could have fixed this, but after 14 years of using Emacs, I still hadn’t bothered to learn more then a few bits of elisp. Frankly, I really only used 1-2% of what Emacs could do, partially because most of the rest of it was such a pain to learn about.

  • For some reason, cut-and-paste between X11 and native Mac apps broke during my Tiger upgrade, and I was never able to get it fixed. It wasn’t usually a big deal for me when I was working on code for Network Clarity because I rarely ended up pasting things into Emacs, but it was a huge pain when I was working on Typo.

  • TextMate is actually better at handling tons of open files then XEmacs is. This surprised me, but the interface for switching files from the keyboard is way better in TextMate. Just press Command-T and start typing pieces of the filename. TextMate starts searching for filenames that match the name you typed using the same algorithm that QuickSilver uses. So, if you want to find articles_controller_test, TextMate will let you type something short like artcontest while narrowing the field of files down with each extra character that you press. XEmacs expects you to type the filename starting at the beginning, using tab for completion. So finding the same file with most of Typo’s source open would be something like ar<tab>s_c<tab>_t<tab>, which is more of a pain. Plus, when you have multiple files with the same name, Command-T will let you use the arrow keys to scroll through them, seeing the full path for each. XEmacs seems to prefer that you remember which of the half-dozen content.rhtml files in Typo is content.rhtml<4>. Finally, when you’re in project mode, Command-T will actually search through all files in the project directory, not just open files. So Command-T artrb will show you articles.rb. That’s much nicer the C-x C-f ../../../app/models/ar<tab> that Emacs needed. I’m sure that there’s some way to make XEmacs friendlier on this front, but that really means very little–there are ways to make Emacs solve Towers of Hanoi problems, read your mail, act as a web browser, play inline movies, and quote Zippy the Pinhead quotes to Eliza, too. Just because it can do it doesn’t mean that I’m willing to spend two hours figuring it out for each and every feature that I’m interested in.

  • TextMate is better at pasting text. It automatically re-indents the pasted text, so you don’t have to go line-by-line fixing the indentation.

  • TextMate supports most of the basic Emacs editing keystokes – C-f, C-b, C-n, C-p, C-d, C-k, C-y, and C-s all work like I’d expect (although C-y was missing for a while), so I haven’t really had to reprogram my fingers.

  • Finally, it’s a native Mac app, so it works like all of the rest of the apps on my system. While it’s nice that you can run X11 apps in OS X, there are a number of quirky things that they do that makes them feel weird after three years on the Mac. They don’t hide right, they don’t act right when you change the focus, and they just generally look weird.

So I bought it. TextMate is €39, which is kind of a shock when you’re used to free editors, but it’s not a bad value at all. It’s dirt cheap compared to BBEdit, which I’ve tried a few times and never really understood why anyone would pay almost $200 for it. All in all, I’m really happy with TextMate, and I feel like I’m substantially more productive when working on Rails apps with it because I don’t have to keep working around Emacs foibles. So far, it Just Works.

Tags , , , ,  | 5 comments

Where has all the cool Mac software gone?

Posted by Scott Laird Tue, 22 Mar 2005 21:21:50 GMT

Last week, a co-worker stopped by my office to ask me what cool new Mac software I’d seen recently. I had to stop and think for a while–I mean, it seemed like I was seeing cool new Mac stuff show up once or twice per month for a while, but recently it’s slowed to a trickle. I can’t think of anything really exciting that I’ve seen since NetNewsWire 2.0 betas started showing up months ago.

I’m not sure if this is all in my head or not, or if there’s some underlying reason (waiting for Tiger? Economy recovered and programmers went back to desk jobs?). Hopefully things will pick up again soon.

For what it’s worth, here are the last few Mac apps that I’ve looked at. Only one of these is really new, the rest have been sitting around for a while but only recently found their way onto my desktop.

Seasonality

Seasonality is probably the coolest new program that I’ve seen in a week or two. It’s a desktop weather monitor that knows about forecasts, history, sunrise and sunset, and weather radar. I played with it for a few minutes yesterday, and it seems to be an improvement over rssWeather.com and NetNewsWire. However, it’s not a $25 improvement, and I don’t care about the weather enough to leave Seasonality running 24x7. So, while it’s cool, I don’t really feel any desire to actually use it.

TextMate

I keep hearing people rave about TextMate; a lot of people really love using it for their text editor. I spend half of my life in Emacs, but I’d love to switch to something more Mac-centric–I’ve used Emacs for 15 years, but I don’t really feel like I understand it any better now then I did a decade ago. It can do anything, but the barrier for learning each new feature is high enough that I only rarely bother to learn anything new about it. On the plus side, though, Emacs works pretty well out of the box for me, and it’s available everywhere.

So, every 6 months or so, I download a new copy of TextMate to see if it’s the right editor for me, and end up deleting it about 30 minutes into the trial. It looks really cool, and they seem to be adding some really nice Subversion integration into it, but I can’t stand the way it handles indenting. My brain seems to have fused with XEmacs’s indent handling–when editing languages like C, Ruby, XML, or HTML, XEmacs changes the meaning of the Tab key from ‘insert a tab’ to ‘indent this line correctly.’ Obviously, this requires a level of syntax-awareness that most editors don’t posess. TextMate knows enough about syntax to do color highlighting and folding, but that’s about it. While the function folding UI is cool, it’s just not enough for me to justify paying $50 or so for the program.

SubEthaEdit

SubEthaEdit is kind of the epitome of “cool OS X editor,” largely because it’s designed from the ground up to use Rendezvous to allow collaborative editing over the network. On the other hand, it doesn’t seem to have any native support for traditional version control tools, and its indentation support isn’t any better then TextMate. Since SubEthaEdit is free for non-commercial use, I’ll keep a copy around, but I just can’t see myself using it for writing code.

Growl / GrowlMail

Growl is a tool for displaying asynchronous notification messages on OS X. People have used it for a number of different uses, but the one the most interests me is GrowlMail, which sends Growl pop-ups every time new mail arrives. I’ve been using Mail.appetizer for a while now, but it seems to cause more problems then it fixes–since it runs inside of the main Mail process, it’s prone to blocking whenever Mail gets slow, which means that I have notification windows hanging around that I can’t get rid of easily. Also, since I installed it, I’ve noticed that Mail is much more prone to crashing. I don’t have a lot of patience for dead mail clients, so I yanked Mail.appetizer out and replaced it with GrowlMail; hopefully it’ll help a bit.

Posted in  | Tags , , , , ,  | no comments