Microsoft also gave countless thousands of people the opportunity to get into the field. I know it's easy to shit on them now, because we can look back and say that just about everybody then was an idiot by today's standards, but if you compare what your options were, Microsoft was by and away the best option for a lot of people getting started. I have an interest in what computers were like around 2000 (I didn't live it at the time, so I don't have any warm, fuzzy feelings towards any of these systems in particular), and as far as I've seen, you had three options:
1.) Proprietary UNIX vendors. Cheap workstations? Fuck you. OS without a support contract? Fuck you. First party compiler? Fuck you. These started to improve after 2000 with ports of open source tools, but most people would realistically be in way over their head price-wise unless they were accessing these systems through a university or workplace.
2.) Open source UNIX and UNIX-like systems. Linux was still pretty rough around the edges, and BSD derivatives were still pretty widespread. All said and done, you had to know these existed, know how to be involved in the community, and deal with the reality that the money just wasn't there yet. These options were not without compromise -- it would be years before Linux began making inroads in the "serious" deployment market.
3.) Microsoft. They did shitty things, but it was possible to get affordable development tools on affordable (and actually quite performant, all things considered) hardware, instead of needing tens of thousands of dollars for option 1 or being in the right place and time for option 2. Windows, VB, etc. causes lots of moaning and groaning today, but it had to have been magical at the time.
Give them all a try on period accurate hardware, one after another. You will become acutely aware why people put up with Microsoft.