I use a MacBook Air 11". Say what you will, but here was my thinking:

1. The whole point of a laptop is portability (but not to the excess of a device that doesn't sit on a table with an attached keyboard. You'll find tons of "power" users that justify their MacBook Pro with a docking station to a 27" monitor, an attached mouse, a bigger keyboard, and, and, and... why not just get a iMac or Windows-desktop at that point? They think it's the best of both worlds, but the reality (for me) is that my data is synced online (via iCloud, dropbox, and other tools) and that having 'one machine to rule them all' seems pointless if I'm trying to dock the thing and really make it two machines. Also, again, portability. No Pro comes close to the portability of an Air. I wanted as absolutely as light and small as possible (I hear the new MacBook (2 lbs) could also be good, but I don't know about it's power internally).

2. I did not want Windows. Why? Besides that it blows chunks on any sort of development standards? Because of two reasons: First, all development tutorials are almost always done in Macs with long convoluted exceptions for Windows. If I was doing .NET development, I would of course consider Windows, but unless I worked in an exclusive MS environment, with no outside coding interests, I'd still just install parallels or something and use my Mac. There are some naysayers who will point out minor differences between OS X and "true Linux". As far as I'm concerned, they might as well point out differences between Linux and Unix. Nobody runs a 'real' machine only on Linux except very obscure people with long beards who think the MP3 is the death of music. Sorry, but I can't relate. Which brings me to subpoint two... That I want my machine to "just work" for all OTHER aspects of computing that I use it for besides development. Meaning, I'm happy to hack around with Ruby on Rails, iOS development, WordPress plugins, and the like, but I want my music to "just work", my contacts to work (and auto-sync with my iPhone), and for the rest of my life to be as simple as possible so that I can save my brainpower for becoming the best programmer possible, not so I can spend a Saturday afternoon wondering how to sync my playlists on my laptop with my iPod so that I can listen to cool music while coding. Or having to hack some schema to see my family's pictures while I'm on a business trip. No, the simple matter of the fact is that Apple makes everything else super-easy. Some developers seem to think that its a weakness to carry anything but a command-line tool to create their offline blog posts - and hey, that's cool and all - but I have a life and my education and career is one thing, and the rest of my life I prefer the simple. Sorry, but basically, I've had it after 20 years of Windows.

3. After having a few 11" Chromebooks for a while, I realized that 11" is actually a BETTER thing because I can focus on just what's on screen. Big screens might be good for designers, or when working on storyboards in iOS (but really, how long are you in that mode, versus looking at code?), but for the most part, it's just more distractions. I love Mac notification controls - very precise and all in one place (unlike Windows). There is a 13" Air for the compromisers, but again, I have found the portability is the best factor. Most people don't even realize I have a laptop on my person when I whip it out.

4. I would say that if you can afford it, to get the better processors, more memory and storage. If you really want to multi-purpose it, get an external HDD and a Super-Drive for backups and Time Machine (but leave them at home when traveling).

5. They keyboard on the Mac is still hard to beat. The screens are okay (and you can go Retina now for the new MB), but honesty, you don't need Retina for typing code or reading. That's just crazy talk.

Bottom line: Keep it simple, stay with something strong (metal), highly portable, useful (in all other aspects) and from a company that supports quality development. You'll be using it a lot, so make it easy to carry, type, and get stuff done on it.