Like many in this thread, I'm personally a proponent of Arch Linux, but I'm objective enough to admit that there is no such thing as a "best" Linux distro for general development work. The best choice for your needs will be dictated by a balance of priorities and it'll necessarily be a compromise. I'll try to give a short outline of the current state of affairs as I see it.
If you like or at least don't mind regularly tinkering with your system and have a preference for running the newest software, Arch is definitely your best bet. Depending on UX and ecosystem preferences, you could go with Antergos with a DE of your choice (personally, I prefer KDE, it's gotten much better over the last year or two), but there's a lot to be said for setting the whole thing up from scratch at least once. It really teaches you a lot, and will invariably be useful when something breaks. Battery management will be as good as you bother to make it, with some effort it's possible to come close to Win10 levels of battery life.
On the other hand, if you want something that just works out of the box and the last paragraph sounds annoying to you, don't get on the Arch bandwagon. Fedora (my preference) or Ubuntu are you best choices here, and I suggest trying both for a week.
And, of course, if all you care about is a thin base for VMs of your choice, all of this is completely off topic. If you want the newest kernels, Arch will be a bit more convenient, but ultimately distro choices don't matter much for this use case.