Hello, speaking from a viewpoint that doesn't seem to be represented yet on this thread. I'm a CS student, and right now, I have "three" computers (Two physical boxes). There's a 17" HP dual booting Linux and Win7, and a 13" MacBook Air. I've also got an external monitor that can be hooked up to either system.
What do I use for programming? The Air.
Why? After all, it's a lightweight.
Actually, it's partly because it's a lightweight. It is wherever I may be. Doesn't affect the 15" MBP purchase much there, but the MBP will still be the more portable machine, and that's worth it's weight in gold. (Er... You know what I mean)
Developing on it is great. For small things, all of the toolkits are right there on the machine - gcc, make, vim, the whole shebang. Xcode can be a bit confusing at first, but the simple stuff can be done pretty easily in it, and it's got expansive documentation. Xcode uses the standard toolkit, so anything that compiles in Xcode can be done from the terminal.
The Mac OS is also a step up from Windows - Things like versions, if you're using a text editor that support it, are a lifesaver. Versions is sort of a local file backup, so at any time you can look at old versions of the file, restore them, or copy and paste out of them. Window management is better on the Mac, too. Virtual desktops are a lifesaver, and the full screen mode of Xcode is extremely useful. If you've never used virtuals before, you're in for a treat.
I use the Linux side of the 17" to program sometimes, too, but mostly to check cross platform compatibility. Linux is a great OS in my opinion, and if the machine were smaller, I'd use it more. The Windows side hasn't been on in months.
TL;DR: I use a Mac and a PC in CS. The Mac gets more use, for lots of reasons (detailed above)