If you haven't followed the anti-trust case, you won't understand. For years, Microsoft treated others in the personal-computer space as enemies to be vanquished, instead of colleagues to be collaborated with. They used every trick under the sun to destroy other competing developers' works. And then came the big browser wars, and once again they did the same.
On a broad level: Microsoft refuses to "play well with others". While you are playing apologist for them, their minions are busy undermining open-source software, and trying to scare the European regulators into avoiding OSS.
On a side note: someone I know just designed this t-shirt; I think he's taking orders: http://www.flickr.com/photos/adamp3/4777497224/
There are plenty of examples of this. See what they did to companies that wanted to ship dual-boot BeOS systems. See the approach they took to OOXML. See the approach they're currently taking to suing OEMs shipping Android handsets that refuse to pay their license fees. See the copius amounts of misinformation they put out about Linux.
A company with Microsoft's resources, I want to see competing for my business with the tech they're obviously capable of producing.
I don't hate Microsoft or anything, just saying that this might serve as fuel for that kind of fire.
You are obviously not referring to Visual Studio 2005 here. It is a half-baked unstable mess, that I still have to use every day. It's the Vista of IDEs.
Microsoft also has a tendency to release frameworks before they are stable, or well thought through. They do usually get things right after a few versions, but the unfortunate people who build and maintain software built on the original idea are left stranded.
My biggest beef with them is that they chose to make money not through technical excellence but usually through more subversive means.
I don't hate microsoft as a whole. I hate COM+ office interop, and I hate that I'm forced to use this because of an internal dependency on Excel by the company that writes my checks. I hate that I have to have an entirely different approach to read the contents of an Excel spreadsheet then to write to one with office interop.
All of that gets shorthanded to "I hate microsoft" when talking to co workers though.
Microsoft treat developers like cattle. You've just got to look at their corporate structure, where senior developers might be reporting to a dozen different managers. Companies that respect developers give them freedom and autonomy, they trust in their decisions, they allow them to choose their own tools and their own way of doing things. Oh sure, there are plenty of people working on exciting little development projects that never see the light of day beyond a tech demo, but geting so much as a single feature into a major product has become an ordeal.
For me, the obvious anecdote is the taboo that surrounded the iPhone at Redmond, with numerous reports saying that Microsoft staff felt the need to hide their iPhone from senior execs[1]. To me, that's the sign of a company in deep trouble.
The obvious inference to draw is that Microsoft as a company would rather remain in denial than really confront the inadequacies of their products. Any company that I'd want to work at would have responded to the iPhone by obsessively studying it rather than ignoring it. The really pernicious issue is the obvious distrust and lack of communication between the footsoldiers and their leaders. When staff feel like they aren't allowed to voice an obvious truth - that they prefer the iPhone to any WinMob device - that strikes me as a frightening place to be. It's the stuff of Orwell, the kind of madness you'd expect from a failed state.
I don't care how good Microsoft's IDEs are. I hate Microsoft, I loathe Microsoft, I despise Microsoft because they run contrary to everything I feel software should be. Microsoft seems to crush any sense of wonder and joy out of their employees, something which seems self-evident from their products. They favour micromanagement and process over autonomy and craft. They see software as just some crap that they can package up and sell, rather than something beautiful in itself, something intrinsically interesting and wonderful and beautiful.
You might say "Why should a corporation care about these things?". If you do, you miss the point entirely. Microsoft are stagnant. They're a zombie company, absolutely incapable of regeneration and growth. They are currently trading at below their post-bubble value and have failed to achieve any meaningful growth in several years. Their market cap has been exceeded by Apple; Google are well on their way to overtaking them too. You can't even make the argument that the Microsoft way is about business, because they're failing dismally at that.
Beauty and joy and excitement isn't just good for developers and users, it's good for the bottom line. Microsoft represents the rotten old way of doing things, a way that just doesn't work anymore. Good developers, developers that make stuff that really matters, they don't really care if there is free coke in the fridge, they don't care whether they sit on a Herman Miller or a shipping crate, what matters to them is creating things that matter. As far as I can tell, nobody at Microsoft has done that in a long time; Not many developers on the Microsoft platform have either. It doesn't matter how nice your offices are - if your workplace culture, if the ecosystem of your software feels stifling and ugly and just generally stupid, all the smart developers are going to leave.
Think about this - would Microsoft ever have hired a designer like Ive? Would they have ever have given him free reign? How would a developer like Buchheit be treated at Microsoft? That's why we hate Microsoft.
[1] http://www.tuaw.com/2010/03/16/microsoft-workers-hiding-thei...
I dunno where you get your data. It is completely untrue.
The org structure is a single linear path in a tree -- not an inverted tree.
The only way to even get close to a dozen managers would be to count from the most junior entry level dev and count their manager and their manager's manager through the VPs all the way up to Steve. Even at that, the deepest org structures aren't quite a dozen people deep.
Also, How to Lie with Statistics -- The article on iPhone usage at MSFT and its source from WSJ doesn't quite hold water. This looks like a Post Hoc. 10% of employees (which I'm not sure is believable in the first place) have iPhones and some people hide them in front of their execs or Steve. Therefore, all employees are keeping iPhone usage hidden in front of executives -- the implication being that Microsoft is trampling on its employees because they love non-MSFT gadgets and that something bad will happen to an employee because they are "caught" using a competitor's product.
There are plenty of things genuinely wrong with Microsoft internally but both of these points are sensationalism.
[edited for grammar]
In general I wouldn't put much stock in media anecdotes, as the media (or maybe just humanity in general, sadly) seems to love reinforcing preconceived narratives.
I could've pointed to Erik Meijer as an innovative rock star developer who appears to have done well in the MSFT environment, being largely responsible for the major additions to a shipping version of their flagship application framework. How much does that tell me about the internal MSFT culture as a whole? Not much, any more than this WSJ anecdote does.
[1] http://eu.techcrunch.com/2010/09/13/anssi-vanjoki-nokias-sma...
How much cool new stuff as Microsoft Research dreamed up that got snuffed out when the management got wind of it but didn't think that it was worth productizing?
IBM had the same problem -- an amazing think tank, laden with talent (probably all of IBM's worthwhile talent), churning out amazing R&D projects... very few of which ever went beyond prototypes. Like IBM's PDA, for example...
The best analogy I can give is an anecdote from James Meek -
"One day in 1992, just after the USSR collapsed, I met a mid-ranking officer from the old Soviet interior ministry on a train heading to southern Ukraine. He'd lived in the Soviet system since he was born half a century earlier and knew no other way of doing things. We got talking. He was astounded when I told him that in Britain we had no ID cards or system of residence permits to keep track of who lived where. I saw a look of panicked incomprehension forming on his face and waited for a question such as, "How do you keep tabs on people, then?" What he actually asked was, "How do you know how much bread to make?""
Lots of web developers, especially those who were not professional developers in the 90s see and hear this horror story of a big mean monopolist who set out to destroy Netscape. It is funny how history chooses the more salacious of headlines, easy to forget that IE4 was a breakthrough browser that ate Navigator's lunch heads up. Certainly the OS integration made a big difference but this picture of an evil lurking monster hoisting terrible code and practices upon us is and never was true.
The other thing I think which happens is group opinions get formed. Microsoft is strongest in the enterprise, which is more apt to say - big businesses. Big business and the entreprenuerial hacker/dev dont get along, bigbiz in large part wants and fosters a need for programmers. Their hierarchical and red tape laden structure destroys creative spirit so what you get is lots of people who accept this, learn within that framework and dont really develop beyond the skills needed for their job. They latch onto Access and VB and do it badly because no one with great skills taught them any better and their bosses just need X to work and performance or elegance dont matter at all. This mindset gets associated with Microsoft people and the non-MSFT crowd begins to think anyone who does Microsoft work is some mindless noob with no skills.
It is sad really, because Microsoft is years ahead of any other company in the way they treat developers. If you havent used Visual Studio you wont understand that.