Very good points!
I would just like to add another: Nowadays it is rare that your program is the only one running on your computer, especially on interactive systems. This means all those gigabytes of memory and gigaherz of CPU are not all for your code. If you code as if they were, the user will be very annoyed when switching to another task, finding the machine grinds to a halt for a while. Sadly, most of the stuff on a typical Windows (or Linux!) desktop behaves like this. Frankly, the performance experience of using a 2017 Windows desktop is very much like using a 1997 Windows desktop, except for some added chrome and glitz...