I've been debating whether to buy a new fully loaded MBP or Thinkpad (with an external monitor, keyboard, and mouse), or custom build a desktop from scratch. This would be purely for personal projects and used for the next 5+ years.
A workstation is a good investment if it comes in cheap. You can buy few year old Workstation grade hardware with Server grade Xeon processors between $300-$500. Which will give you a good computing performance. You will need to add SSD which runs around $200 per TB. These days graphics card prices are coming down to due bitcoin not being profitable so you may want to buy a decent gfx card to offload computing. Now it leaves you some budget to buy a decent spec’d laptop.
Desktop
What's a desktop?
For me, having screen real estate is the most important for development. Whether my 32” 4K monitor is hooked up to a laptop or a desktop, I dont’t care. After this, it comes down to cost. If portability is not that important then the iMac 27” is great value IMO. The screen quality is second to none and the specs are better than a similarly priced MBP.
Laptop with a large external monitor, wireless keyboard, and Magic Mouse
I use desktops when possible.
Big projects, desktop. Small projects, laptop.
I use a laptop for remoting onto a desktop to remote onto a server FM. Damn you SAW.
Laptop. I use a 15 in macbook pro for all my dev needs. Works wonderfully. But it all depends on which part of the stack u work on. Frontend is the easiest, middle and backend tiers may be more demanding (longer compile times, heavy test environments, etc)
Would a MBP handle backend development without issues? That's my focus.
I use a mid 2014 mbp retina pro 15 incher. 16gb ram and 512gb ssd. Works fine with some graphdb platforms like orientdb for instance. Basically anything that runs inside say virtualbox just fine. I used to do some fullstack work (angularjs, Go and orientdb) and it handled it fine.