But this is strictly imaginary because I doubt that 20 million lines of code are all under the unilateral control of Microsoft.
That model fit my needs and interests for many years. Less so now because my needs and interests have changed to where the tradeoffs Linux and Open Source impose are outweighed by their advantages. But other people have other needs and there are already enough first world problem zealots in the world.
Everything you can do with closed source software you can also do with open, and there are things you can't do with closed source.
This is just not true. Show me a completely open source smart phone... thing is you can't, the baseband and radio will always for sure be closed source. There are markets where having knowledge that your competition doesn't is vital to success, that is why some things will always be closed source.
StackOverflow is an example of why the choice is beneficial. The source code being proprietary is irrelevant because the content is Creative Commons.
You can use it, or you can not.
The beauty of open source model is it gives the desperately motivated the means to fix their problems in a way that benefits everyone.
[Ed: as for 20mloc -- the opened parts of .net is already at 5mloc...
Also, love seeing stuff like this from tfa:
git clone https://...corefxlab
cd ...corefxlab\...HelloWorld
nuget restore
msbuild
.\bin\Debug\HelloWorld.exe
]Opening .Net up, I feel is for a couple reasons. First, keeping developer mindshare. Second, Keeping Azure as a first-class platform for deploying .Net code. Third, reducing costs within Azure division that are tied to Windows' licensing. The fact that it's probably the right thing to do, is probably farther down the list.
It's not like Linux because there isn't a team of experienced volunteers already working on the code base and the Windows code base contains a lot functionality for business reasons that Torvalds has been in a position to not just say "no" but to add "and go fuck yourself."