Personally I think it comes down to one thing, and it's something that people don't talk about.
You pick the setup that enables you to easily jump in and get shit done. We can argue all day about cost-to-specs of Macs and how it's gotten progressively worse over the years, but it's still the best device to let you jump right in to your workflow and actually get developing today. Everything boots up incredibly fast and it's got the most intuitive and minimal interface to give your mind room to be pragmatic and efficient.
What about Windows? You lose some of that intuitive UI and it's a little more convoluted and clunky, but for any discipline of coding that requires compiling and rendering, you want that power. But in that case, Windows doesn't have a competitor; you need one for this kind of heavy-duty programming. Either that, or Linux.
Given that this is a website for programmers and developers, we should put gaming as far down the list of priorities as possible. If you want an all-in-one that can dev, game, watch movies and help you raise your newborn, then you're going to have to accept that whatever rig you buy/build, will definitely be overkill for what you need to code stuff.
I believe a good Windows laptop with a decent screen/ram/processor is the best of all worlds. It doesn't do anything the best, but it does well at everything enough. For that reason, I bought the Dell XPS 15 2018 for around £1800 on Black Friday and it's been a great all-rounder.
I would like to make some points in your comment.
Do you really think that "jump right in to your workflow" is that important? I may be being a little naive, but unless my laptop break in the middle of the week by the morning and the difference in price is less than a day of my work, I prefer to customise everything and lose some time to win productivity on the long term.
Same thing about the "intuitive interface". I don't care about some learning curve that will benefit me latter.
If I make an app for the normal users like my mom, these are some points I will definitely take into consideration. But as a developer, I am always searching and learning new things to make me do more for less.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.