I jumped onto Macs several years back because they were a nice platform for Java development but over the years I learned alot fo shortcomings that MAC has if you are a Java dev, open source advocate and just as a laptop in general:
1) 8 GB memory limit. This is what they tell you. This is what they support. This is their max in all their software... supposedly. You can look REALLY hard and find places that you can get upgrades to 16GB but if you are doing any VM'ing, graphics and/or heavy processing, 8GB's maxes out quick. And just to tell you how quickly, my wife actually got a new Macbook pro 2 weeks ago with 8GB of memory and it used 5GB with only a web browser open
2) not configurable. You can't change the battery and you can BARELY change the memory. They are working on fixing it so you cant even do that without bringing it in; they are switching to custom screws that no one sells screw drivers for and if you use existing screw drivers, you will strip the screws and make it so you can't fix or change out parts if they are broken.
3) HEAT!!! New mac book pro? 170 degrees in your lap when playing a youtube movie.
4) You dont own your media. Mac wants to index all your media, keep track of it, hunt it down and then make sure it doesn't work with anything if it doesn't recognize it. This isn't 100% true but they are dancing with media companies in that general direction and don't give a crap about consumers.
5) developers/open sources can go get screwed. Apple will gladly kick you off their app store and steal your ideas. Hell, they'll gladly kick you off the app store for arbitrary reasons. They have decided to tell Java developers to go get screwed. Macports breaks happily on updates and upgrades.
So if you are in IT or are a software developer, get a machine that allows you to do software development and just create a Hackintosh as a VM. But if you are a consumer that wants to consume, go grab a Macbook so you can look cool with all your hipster friends before you go out for drinks; I'll be home programming.