Thanks to pre-ordering Leopard (it was delivered on Friday), I now have Leopard installed. The installation went very smoothly, thanks in no small part to reading Joe Kissell's Take Control book, Take Control of Upgrading to Leopard before I attempted it. Joe is a friend, but I'd be recommending his book even if he wasn't. It's very detailed, thoroughly researched, and a great confidence-booster if you're unsure about which of the installation options are best for you. I had a mess of poorly installed Unix applications in
/opt which I was beginning to find difficult to keep straight, so I decided to go for a clean slate with the Erase and Install option. I'd made a bootable backup with SuperDuper!, so I was able to use Leopard's file transfer facility to move all my applications and user files back from the bootable backup. I'm happy to say that it worked beautifully. All I had to reinstall was the TeX distribution and MySQL (more on that later), and I had a clean and fast system.
A lot has been written about the headline features of Leopard, so I won't repeat what you can read elsewhere, but Leopard is generally wonderful. I've been waiting for Spaces for ages, and love it, and Quick Look is addictive once you start using it. For example, I discovered today that it's perfect for quickly scanning the README files included with installation packages. Time Machine is also beautifully implemented, and makes keeping incremental archives effortless. The whole operating system seems much more consistent and integrated, both functionally and visually. There are more links between applications, like the todos which you can create or view in Mail or iCal, and the data detectors which link together information in Mail messages with Address Book information or events in iCal. Even better, as Matt Gemmell observed, Mac OS X is now an even more superb development platform.
As I mentioned earlier, I used to have a mess of stuff installed in
/usr/local, mostly because the versions of Ruby, SQLite3 and so on that came installed with Tiger were rather old. But Leopard comes with fairly up to date versions of Ruby and SQLite3, and even has ruby-gems and lots of useful gems (including Rails, naturally) pre-installed (the full details are available here). That's why I was able to get away with just reinstalling MySQL and TeX -- everything else I needed was already installed. The RubyCocoa frameworks are also installed by default, and integrated with XCode. These allow you to create full-blown native Mac OS X applications (taking advantage of all the native APIs) written mostly in Ruby rather than Cocoa/Objective-C. I'd been curious about it for a while, so I decided to give it a try. I used an example from the Ruby Cookbook to build a stopwatch application in XCode and Interface Builder, and was amazed by how easy it was. That's pretty exciting, at least to me: if someone with no knowledge of Cocoa, a basic knowledge of Ruby and a few pointers from the documentation can build a proper Mac OS X application in a couple of hours, using only tools built into the operating system, that's quite impressive.