I've used many platforms for development, over many years. My current setup is an MBP running an Ubuntu VM.
For pure Java dev, I'll usually use Intellij on OSX. As I have to deal with more non-Java components, I'll move to the Ubuntu VM (still using Intellij for Java). Getting open-source components to install, compile and run just seems simpler in Ubuntu than OSX. OSX is familiar enough (Linux-like) so that I can work in it comfortably most of the time. But when I can't, I have Ubuntu nearby.
I far prefer this to a non-VM Ubuntu installation because having the Mac there is nice. Multimedia works really well (it's probably nearly as good on Ubuntu now, but I've stopped trying). And setting up networking (wireless, VPN) is still easier on OSX. It usually isn't bad on Ubuntu, but when I run into roadblocks, I just configure my VM to go through OSX.
This setup also allows me to move my VM easily across hosts, have multiple VMs running (e.g. use an old one, build a new one).
Finally, this is a minor point yet a huge one for me. Gnu Emacs on the Mac just isn't right. There are enough tiny differences to make it frustrating. One of the major irritants is the font. I've been using 9x15 with Emacs on various platforms going back many, many years. For me, it is the perfect font. After many hours of searching, I can't find it for OSX, or anything that even comes close.
What are the alternatives to MBP for me?
- Windows + VM: I just don't want to deal with Windows at all. I've wasted enough time on it. Absolutely will not consider it.
- Ubuntu only (on arbitrary hardware): I'd be open to considering it. My impression is that the entertainment parts of it (audio, video) are far better than a few years ago. This would probably be fine.
One last consideration: The Mac hardware is just so nice, and it's sturdy. I recently replaced a 5-year old MBP. It would have survived longer, but I ran over it with my car a few years ago, and last year, for some reason, the damage started causing the display to flake out.