Not sure what's best for programming. In design work large screens make a big difference. For desktop I would go with 27" imac. For mobile I would go with 15" macbookpro. If I only had one option and I moved around regularly I would go with macbookpro. Right now I have a macbookair, but I only use it for traveling.