DEV Community

Discussion on: Developing on Windows: Docker, Linux VM, WSL or Cygwin?

Collapse
 
teacult profile image
Gediz GÜRSU • Edited

I only do functional prototype softwares to present ideas and then let a team develop it professionally. I use node.js - (i)python3 w/ jupyter mainly scipy sympy and use lots of bash commands to deal with hw, os and networking.

I am also a 40 years old honeybadger FPS and MMORPG gamer (god its tiring) and use windows for gaming purposes. Integration of two for both developing and gaming was one of my interest in last years.

Used these roads :
Staying on Linux
1) Lutris (wine bottle manager - with Directx to Vulkan API translation support) many games works even faster ..
2) Windows with cygwin on VmWare Player

3) Windows on qemu kvm with and without gpu passthrough --> virtual gpu and gpu passtrough so that you can open it on a windows with spice or connect it via reminna (RDP) or any vnc (teamviewer etc)
3.b) There is also LookingGlass in github for using accelerated passedthrough hw in windowed mode
4) Docker on both ... Works very good since first quarter of 2019

5) I connected some mainboards via pci-e and configured device lending so share cpu and gpu dynamically with some kernel virtual machines and trying communicate two system at very low level these days to use some microservices....They call it elastic cloud or something. I just want to make a giant machine with Linux windows and osx dynamically using hw as needed ...

Staying on Windows :
1) Linux VMware player , not bad ...
2) Cygwin ... very limited but practical
3) Remote connection to a linux box ...

Alternatives :
-- Developing on web so that you are platform independent
-- Developing for a vm with a very light kernel with customized such as archlinux ... (Security becomes better - worse , better because it works in your terms worse because its a vm and can spoof hardware ID's)

Best Solution in my opinion:
1) Keep your machine dual boot with 2 seperate hard drivers and keep a mac vm or a real mac laptop which can also triple boot all 3 os ... and take regular backups with dd | pigz and cp with cloud drives and use gits...

However I am a mechanical engineer (trying to invent new things) . I have macOS - iOS (wrote iphone apps) - Obj-C , C , python, javascript in my sleeve however my deal is matlab, anysy, cad cam via either software or open libraries... Keep in mind that I am not full-fledged developer... And my codes are just functional prototypes ...