I have a big picture question I would like to ask: what is an advantage of choosing Visual Studio 2017 C++ programming on Linux versus programming Eclipse c++ on partitioned Linux in a dual boot situation? Ive setup to do the former but it requires a VM maybe not ideal for apps needing performance.
* A VM is easier to manage than a native host.
* If you're already used to one development environment, it's usually more productive to accommodate it to a new platform than to get used to a new development environment.
* On CPU- and memory- bound applications, a VM will reach 95 to 100% of the performance of a native guest.
* On IO-bound applications the performance is more variable, depending on how you've laid out your data.
* GPU-bound applications are incompatible with hypervisors without PCI passthrough.
* Multimedia and latency-sensitive applications (e.g. games, media playback, VoIP, etc.) are generally incompatible with virtualization. Generally hypervisors simply do not do a good enough job at handling these sorts of applications. There are exceptions to this, though.
Personally, what I do when I have to target platforms other than my preferred one (Windows) is to write the code as portably as possible, leaving as few platform-specific bit as I can; then I reimplement those platform-specific bits with equivalents for my development platform. This way I can develop and debug on my regular machine and then do proper builds and final testing on the target. This has the added advantage of producing more robust code, because your code has to work properly on two (possibly very) different platforms.
The oddest combination I successfully tried this with was Windows+x86-64/Android+ARM.