Recs.
Updated
SpecsUpdate
Pros
Pro Both the hardware and software are designed in-house
Both the operating system and the hardware are designed by Apple and are made to be as compatible as possible from the get-go. Any drawback that the hardware might have compared to competitors, is made up by the great compatibility between the hardware and OS.
Furthermore, because Apple controls the hardware that goes inside their laptops, they can be sure that every OS release will be fully compatible even with their older hardware, ensuring software compatibility for many years after the laptop is released.
Pro The default macOS is very developer friendly since it's a Unix
OSX is based on XNU (Darwin) kernel, it's certified Unix and arguably a lot more developer friendly than Windows. Development for Unix is native on OS X.
There's a large selection of great development tools available for OSX. The operating system itself comes bundled with a powerful terminal emulator, called Terminal. Additionally, Apple provides tools, like Xcode, an IDE that contains a comprehensive collection of tools for developing OSX and iOS software, for free.
Pro Great performance
The MacBook pro offers great performance both for day-to-day stuff and more niche graphic-related activities. The latest model also has had an update in hardware specs where both the CPU and GPU have been upgraded to their respective latest generations.
The 16GB to 32GB help with performance as well and the SSD speeds are unmatched in the laptop market which also helps with general performance.
Cons
Con Virtually impossible to fix/upgrade yourself
iFixIt rated this at 1/10 for repairability (the lowest score possible). They use proprietary screws and SSD, as well as lots of glue or soldering to reduce the number of screws. This reduces the weight, however you need to pay the hefty premium for upgraded specs as you can't upgrade the SSD, RAM, or any other component on your own.
Con Limited ports
The old adage form follows function seems to have been reversed. The laptop is elegant and thin, but missing PORTS and RAM. Once you add dongles or hubs it becomes unwieldy. Sure USB C may be the way of the future, but not right now. And again, if you are using VMs in your development, RAM is king and Apple took the decision to keep the laptop thin and max RAM (soldered in) at 16 Gb. The SSD is proprietary and welded in, again, you buy the 256Gb model and decide you want 1TB you are either SSD on USB C or trading in for a hideously more expensive model.
Con Glossy screen
Apple has deleted the matte-screen option from its lineup, an unfortunate decision that reduces the usability of the computers and means you get less work done. You won't realize how much time you spend moving your head around to get reflections off whatever you're trying to see until you switch to a matte screen.
Those "deep blacks" and "rich colors" that you were supposed to get from a glossy screen are not present since they're buried behind a sheen of reflection under all lighting conditions.
Con No real Delete key
Apple's particular ignorance about this is just baffling, and they've had a lot of opportunity to fix it. But their laptops (and small Bluetooth keyboards) still have no Delete key. They only have a Backspace key that's mislabeled "delete." This is annoying for every use, but particularly for programmers; we tend to delete things from the middle of lines and refactor code.
The best keyboard-remapping utility (KeyRemap4MacBook, now called Karabiner) was disabled by an OS update a couple of versions ago and had to be rewritten entirely. It's still not fully functional, but can be used to convert another key (I use F12) into Delete.
But Apple could have addressed this problem (which other vendors never suffered from) by simply making the now-defunct Eject key into Delete. They inexplicably didn't.
Con No official Linux support
Apple doesn't support Linux. As for unofficial support by Linux community: as of 2017, Linux still has limited compatibility with 2016 Mac hardware (in particular, WiFi is working in a limited fashion, and audio and suspend/resume don't work at all). For details on "how to install Linux on a 2016+ Mac" click here.
Recommendations
Comments
Flagged Pros + Cons
Pro The OS is exceptionally easy to use
Macbooks are famous for working out of the box. The default operating system (macOS) is also exceptionally easy to use even for people who have never used it before. Most people will not need to customize or change anything since all the apps just work out of the box.
The people who like to customize things and tinker with their systems will also find it pretty easy to do so, considering the fact that macOS is a Unix and allows varying degrees of control to users.