I've been working away from home more and more often lately, and the 13" screen on my MacBook has been feeling more and more restrictive. So I decided to replace it with a something bigger. Obvoiusly my first thought was a MacBook Pro, but they're just so expenssive that it's hard to justify the cost. So instead, I bought a ThinkPad. I got a T61 with a 15" WSXGA+ screen, 802.11n, dual-layer dvd burner, 2.5 GHz Core2Duo... basically the exact same features (and even hardware probably) as a MacBook pro. The biggest difference? I spent less than $1000 dollars on it.
This is actually my second ThinkPad; I had an x61 that I bought in college and actually used as my main computer when I first moved to Boston because my PowerMac was in-transit and I didn't have anything else. I've also been impressed with the ThinkPad line, the higher end ones have very nice build quality, and they're popular enough with the Linux crowd to have good Linux support. So, for the second time in my life, I'm running Linux as my main OS (specifically Gentoo
Linux on kernel 2.6.25 with the tuxonice
The biggest issue with using Linux was finding the appropriate replacements for my commonly used apps. Most of them were Easy: Firefox stays the same, I use Google Apps to host my email so no problems there either. For instant messaging I was planning on using Pidgin
, but ended up going with Kopete
because after trying it out, I just like it better (that's right, I'm using KDE
, 3.5 for now). The biggest challenge, was trying to find something to replace TextMate
for coding in. I absolutely love
TextMate, and take advantage of a lot of its advanced features all the time. Fortunately, back when I was a CS student, I got nice and familiar with Emacs
, and was well aware that, even if the functionality I wanted wasn't built in, someone's probably created an add-on for it, and if not it would be pretty simple for me to do it myself. Turns out I was right.
I haven't completed all my Emacs modification yet, but so far just two little scripts have given me most of what I was looking for. First was yasnippet
, which provides a snippet feature that works in pretty much the exact same was as TextMate's. Someone even wrote a script
that will download TextMate bundles directly from the repository and covert the snippets they contain to work with yasnippet. You can't do much better than that. I'm also using emacs-textmate
which provides an Emacs minor mode that emulates some more of TextMate's behaviors; specifically, it adds in the ability to automatically insert paired characters, so if you type '(' it automatically inserts ')', and handles deleting them gracefully as well.
There were a few other features that I use extensively in TextMate as well that weren't provided by either of these add-ons. Fortunately, it was relatively simple for me to implement them myself (with a little help from a friendly Emacs guru on the Gentoo forums
) and patch emacs-textmate to provide it. Specifically, I duplicated TextMate's auto indent feature by adding an extra keybinding to emacs-textmate to bind the return key to the built-in Emacs function newline-and-indent. I also bound M- to a new function of my own creation defined thusly:
This duplicates the behavior of command-return in TextMate, which is pretty much the same as 'o' in vi[m]. I'm still working on how to duplicate command-shift-return, which inserts the appropriate line ending character based on language (';' for C and C-like languages, ':' for Python, &c.) and then opens and goes to the next line. But I don't think that will be too hard once I learn a little more elisp. After that I just need to figure out how to duplicate Textmate's tag closing function, which is a huge time-saver when coding HTML.
All in all, I'm quite happy with my new computer. Things may not be quite as pretty as in OS X, but they can be if I just put a little work in to making them so (I've already got e17 installed, which comes close and with some more tweaking may replace KDE as my default environment). As much as I love Mac OS X, there is definitely a strong argument to be made for Linux, at least for people who aren't afraid to get their hands dirty with the command line and a good old text editor. Even with just a couple days spent adjusting the system, I think it's already at a point where I could see using it full time, maybe even prefer it to OS X. Which is really saying something when you consider that I've been a Mac user for about 24 years.