“Microsoft do not dislike open source, they merely dislike the GPL”
There is some general misunderstanding about the GPL.
The general idea is that when you give or sell someone a GPL program then they should have the same rights as you do regarding the code. This would prevent vendor lockin. If you don’t like how a program works either you can change the program or pay someone to change it for you. The licence gives details on exactly what you must do.
Commercial licences come with conditions. Pay us and you can distribute exe’s built with this libarary or Pay us now and once for each installation. The GPL instaid has a pay-it-forward approach.
If you build a program for youself or your company and it include GPL code you do not have to give anyone the source unless you distribute the program outside of your organisation. This is a key step in understanding how most programmers could freely use GPL code.
The vast majority of programmers write code solely for the organisation that they work for.
Hobbyist programmers oftern write utilities for their own use. This means that they could freely use GPL code without ever breaking the licence or having to publish their code. They could freely choose to offer changes back to the project – which prevents them from having to reintegrate the change when the product is upgraded.
I am in the rarer set of programmers those whose programs go outside the organisation. We prefer to use MPL which only requires that changes to the MPL code be offered back to the project.