If solutions were independent of the environment, the fix would be easy: simply develop better software than Microsoft. Unfortunately Microsoft owns the stack so it's hard to compete with them on their turf. You can develop for Mac or Linux and sell to a tiny market. Or you can develop for Windows and hope Microsoft decides not to enter your market.