I happened to pass the local Apple Store last weekend, and noticed that the table with the MacBook Pro models was pretty quiet. They've presumably been out long enough now that they're not so exciting any more, but it was the first time I'd had chance to play. The middle model wasn't very impressive. Terminal.app took a spinning-beachball age to start. But then you never know what people have been up to before you get there. I found that it didn't have make(1) installed, but I didn't think of using javac(1) directly. I'd realized that I didn't like the "aluminum" look of the machines, didn't like the keyboard, and I knew I wasn't prepared to spend that much on a laptop anyway.

This week I popped in for a look at the new MacBooks instead. The 2 GHz white model was crashed; no kernel panic, but stuck solid. That left the 2 GHz black model and the 1.83 GHz white model. I played with the black one first. I had a bit of trouble with the keyboard. If you look at pictures you'll see that there's a little moat around each key. I think this looks great, but my fingers kept falling in those gaps. By the time I'd finished with the black model and switched to the bottom-end model, my fingers seemed to have adjusted. (I always have a bit of trouble switching to a new keyboard.)

Anyway, my first test on each was to download and run Terminator. I was impressed. Java on the Intel Macs seemed significantly better than Java on the PowerPC Macs. Terminator felt much closer to how it feels on a Linux box. And this despite the integrated graphics. (Maybe 1280x800 is a low enough resolution that integrated graphics is okay?)

The start-up time of a Java application on an Intel Mac is still poorer than I'd like, but it's better, and when it's actually running, performance is much more like what we've come to expect on other platforms. When I first used Apple's PowerPC JVM I assumed it was early days and that it would soon improve, but it never did.

I downloaded the latest salma-hayek source and tried time find ~/Desktop/salma-hayek/src -name "*.java" | xargs javac -d /tmp and was pleasantly surprised even before that: just the untarring was quicker than I'm used to expecting from an Apple laptop. The build times were strange. The black model consistently took 2.9s (real) and the white model 2.5s (real). Both machines had 1 GiB of RAM. It occurred to me on the way home that the black model probably had its processor deliberately crippled for extended battery life (fat lot of use that battery life is when you're literally chained to table and connected to a wall socket).

The more interesting take-home fact for me was that this is better than the 3.6s (real) that my dual G5 manages. And it's a fair comparison because although my dual G5 has two processors, the MacBook has a dual-core processor, and my benchmark of choice is single-threaded anyway. It would have been interesting to try make -j2 on some of our C++, but Xcode comes as a ".pkg", and you need an administrator password to install that. The Apple Store staff are friendly and helpful but since I wasn't planning on handing over my credit card I couldn't be bothered to hassle them. I think it's fairly clear that a MacBook would be a pretty good machine for Java development.

I didn't much like the shiny screens. It was quite difficult to see in the clinical brightness of the Apple Store, and it seemed that everyone who looked at one had to move the display to be able to see anything but glare. I'd be interested to see one outside in real life.

I did like the new right-click mechanism. Clicking the single trackpad button while you have two fingers on the trackpad itself causes a right-click. It's not as good as a two-button trackpad would be, but it's better than any previous Apple laptop.

The black model looked fine to me, but in person I found I preferred the way the white model looked.

If I had any need for a laptop, I'd probably have bought a MacBook.