Almost every person I have ever met who hates Microsoft was either ignorant of the matters (meaning they just read what other people said and never had original thoughts) or had a specific beef in one area that they let inform their thoughts about the company as a whole.

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.

Web developers don't hate Microsoft because they destroyed Netscape, they hate Microsoft because their proprietary standards and er...unqiue take on w3 standards has and continues to waste a measurable percentages of people's lives and retard the progress of the web.

You might wish to consider that during roughly the same period IE4 came along to destroy Netscape, it was Netscape that was busy inventing proprietary tags - <layer>, <multicol>, <spacer> and the like.

Microsoft doesn't understand that if you piss off enough people over the years, it's hard to get respect back quickly.

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.

The reason I dislike Microsoft and actively avoid their platforms is largely because despite their vast resources and obvious talent, their management rarely compete head to head with technology and would rather resort to other practises that, as a tech person make me sad.

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.

For the web development subset of programmers, the Microsoft loathing may be inspired by Microsoft's disdain for web standards. Microsoft are, in a very real and palpable way, making client side web developers' lives a lot harder than they'd have to be.

I don't hate Microsoft or anything, just saying that this might serve as fuel for that kind of fire.

Years ago we were writing some code involving windows telephony api. There was something wrong with one of the calls, it was not applying one of the parameters as documented in the api. Because of that we ended up dissembling it and making a binary patch to change a constant in a dll. We lost several weeks in the process. How long does it take Microsoft to fix a problem in an obscure dll that you depend on? Who knows.. This event made me realize if you are binding yourself to an operating system or any application thats is closed source, has opaque processes and almost no competition to make them improve it fast, there is good chance that one day you will end paying very dearly. I have other reasons to dislike Microsoft's attitude and practices but I gave this example because I still vividly remember the suffering and helplessness we lived that time.
As for the Visual Studio comment, I used it and don't see anything special about it, If you are a Microsoft shop maybe it is good for you, otherwise, there are comparable - better IDEs out there to do the job.

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.

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.

> Almost every person I have ever met who hates Microsoft was either ignorant of the matters (meaning they just read what other people said and never had original thoughts) or had a specific beef in one area that they let inform their thoughts about the company as a whole.

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.

> 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.

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.

> You've just got to look at their corporate structure, where senior developers might be reporting to a dozen different managers.

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.

I don't know who Buchheit is, but Microsoft Research has employed three Turing Award winners (Tony Hoare, Butler Lampson and Chuck Thacker) for a decade or so. I doubt they'd have stayed if they felt mistreated.

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.

true, but that just shows how useless "would my mental caricature of celebrity figure x have been able to survive in my mental caricature of vast heterogeneous institution y?" is as an aid for anyone's understanding of the world.

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.

Exactly - Ive was planning to resign until Jobs made him VP. Apple were literally days away from losing him. Were it not for Jobs' insight, taste and autocratic approach, we probably would never have heard of Ive. Nokia lost their top designer last month, for fairly obvious reasons[1]. Google's "20% time" led to Gmail, Google News, Adsense and Orkut - you have to wonder how many products Microsoft engineers might have developed given half the chance.

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...

I Imagined that people would draw the inference themselves, but obviously not. The internal culture of any corporation dictates how it interacts with the world. The phrase "Independent Software Vendor" is an example of the weird nature of the Microsoft ecosystem - the only explanation I ever get for what "Independent" means is "not Microsoft". The Microsoft monoculture leaches out into everything to do with the Windows platform. The obvious example would be something like Team Foundation Server - it's as if Microsoft as an entity can't imagine software being developed outside of a complex corporate structure that requires "lifecycle management". The fact that Microsoft are so deeply engaged with their developer community only strengthens the effect of this monoculture. There are an astonishing number of professional programmers whose entire knowledge of practical software development comes from the MSDN - after all, it provides everything you need to know, so why go elsewhere? The number of developers who have never heard of github is quite astounding.

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?""

Programmers generally don't hate Microsoft. They have one of the biggest (if not, THE) developer communities in existence. Developers have great access to outstanding developer documentation, engineers (channel9.msdn.com), and Microsoft lets its engineers blog candidly (blogs,msdn.com).

The same complaints the article cited could be levied against gcc, autoconf, and so on. And you could levy the same trollbaiting against Linux, *BSD, and Mac OS X. Because for any given thing, there is somebody out in the world who feels the need to hate it.

I do a lot of .NET development and I love it, but I prefer developing on a UNIX environment because I started there and ended up on DOS/Windows later on.

Depends on lot on which community you're looking at. Being primarily in the IRC/slashdot/web dev/scripting language/sysadmin areas (as well as a student of a rather Linux-centric university), I was amazed at all of the Windows-centric stuff when I found StackOverflow. I honestly didn't realize that there were good programmers who preferred to work on the Microsoft stack.

Now, of course, I realize there are, but I'm still a bit confused when I talk to one... our worlds are just so different.

I don't think Microsoft executives are losing sleep over "Microsoft Hatred" as much as they are losing sleep over "Microsoft Irrelevance". How many college students know how to program on Win32? How many even know what Win32 is? In 10 years, these college students will be the senior developers at their respective companies.

Certainly, any good engineer will choose the best tool for the job. But I find it unlikely that those that know little of MS technology will promote those tools later in their careers.

I think a big reason why people don't like Microsoft, is the anti-competitive behavior they used to get to the size they are today. A lot of people dream of starting a business one day (especially around here), and when a company was built by crushing start-ups/small businesses in illegitimate ways, people aren't going to be too happy about that.

Plus, they have that little paperclip thing that pops up whenever you ask for help...

"I think a big reason why people don't like Microsoft, is the anti-competitive behavior they used to get to the size they are today."

That's completely nonsensical. Microsoft didn't act anti-competitively to become big, they did it AFTER becoming big. You can't abuse power you don't have, and when Microsoft won the OS contract with IBM, it was a tiny company, and Apple was by comparison huge.

Microsoft got big by taking advantage of the fact that the guy that wrote DOS didn't think it was worth anything, so he was happy with the $50k (or whatever) that Bill gave him for it, and IBM didn't think that the PC market would go anywhere, so they didn't think anything of giving MS money for every PC sold.

When Bill started licensing DOS to every company that wanted to make a PC, Microsoft became big.

THAT is how Microsoft acquired the power to abuse that they then proceeded to abuse.

"That's completely nonsensical. Microsoft didn't act anti-competitively to become big, they did it AFTER becoming big"

I didn't say that's how they got started, but rather one of the ways that allowed them to reach the size they are today. Even if you know nothing of the antitrust case, you'd have to admit some shady stuff was going on when you see a browser like IE6 last so long :p

Yes, this list is way out of date. But these are the issues chased me out of the Microsoft world into Unix, Linux and open source. The few times I've had to deal with Microsoft software more recently (e.g. ACLs), the experience has served only to renew my loathing.

When I was starting out there was no Microsoft or Linux. I got a machine that had a programming lanuage built in to it, and I could write programs.

Pretty much the first large program I wrote was a compiler to convert a subset of BASIC into Z80. It was written in its own subset, and could compile itself. I hacked into the cassette save routines, smashed the stack, bootstrapped into a machine code monitor (not even assembler) that I wrote, and I was writing games for people to play.

It's always seemed to me that Microsoft almost actively prevented me from using my own machine. I couldn't get into it without buying more. And more. I wrote my own OS that sat on top of DOS, then write a compiler for that, and suddenly I could write games again. And finance applications. And mathematical explorations.

I found some of the first Perrin pseudo-primes that way, bypassing Microsoft's systems because they prevented me from doind what I wanted with the resources I had access to.

I don't hate Microsoft, but every time I use a Windows box it fails in interesting ways, costing me time, effort, patience and occasionally yet more money.

I'll use Linux.

ADDED IN EDIT AFTER RE-READING: And I'll continue to contribute to various open-source projects.

I wish I'd never answered. It's a religious war - no one will win. Lots of people will end up bloodied. I should've known better.

Still, I did reply, so let me tell you of my personal experience, and then I'll leave.

My experience is that working in a Microsoft environment as I have in the past, everything seemed bloody awkward and more annoying. Working in a Linux environment I've had far fewer hassles, and the system just doesn't get in the way.

My experience, my circumstances. I don't hate Microsoft, I've just found I'm more productive in other systems.

And I'll say nothing more on the subject. I can't care enough to do so. In fact, I couldn't really care less.

Nah, I use both platforms, I have no axe to grind. Just correcting a factual error. If you are on Windows and want to (learn to) code, the tools are readily available (and barely more hassle to install than apt-get).

> Erm... you can download for free compilers from
> Microsoft or the Visual Studio Express editions.
> Or you could get all of those above things for
> Windows. You get IIS with Windows.

Maybe you can now, but when I was getting into programming you couldn't. Things have changed, but consider a more recent example. I use a Windows laptop when travelling because I can no longer be bothered with the hassle of dealing with customer support who have no clue that anything other than Windows exists. If I have touble connecting to someone's hacked up, third-rate wireless internet, I'd better be using Windows or I'm screwed.

But I use Open Office. Oh, look, Microsoft now has a docx format, and half the world assumes everyone else is running the very latest version of Windows, and Word, and now I'm being sent documents I can't read.

At the time this started I checked, and I looked, and nowhere could I find any way to read or convert these files without paying for a new version of Word.

Time and time again I have these problems, and when I do, they seem to be associated with Microsoft.

I don't hate them, I just avoid them. Most of my computing pain in the past 30 years has come from them.

And in truth I don't care, and don't think about them. I have better things to do.

Oh, hang on, I'd still need to use Windows, which is a rare event for me. Still, nice to know I can use a Windows machine to read Windows files.

Oh, hang on, I also need the Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint File Formats. I'll put that on the list too.

And actually, this still isn't the point. There are still the "embrace and extend" issues I need to deal with, and the "interesting" interpretations they put on the standards, and the inter-operability issues raised.

Microsoft is no longer the company they once were, but I've had so much grief and so much pain from dealing with their systems I just avoid them. I can't bring myself to care, or to waste the time.

Which is why I won't bother replying further to this thread. I've answered the question, I've provided information, and explained my circumstances, and now I'm moving on to get stuff done. Without Microsoft.

Microsoft has done a lot of harm in the last 20 years. They succeeded through a strategy of continually expanding into new areas (operating systems, office software, web browsers, email, programming languages, etc) and producing products that often worked poorly and only with the rest of their platform. They succeeded at this for a time, creating a monstrous shambling behemoth of software that was powered entirely by its own momentum. But it wasn't very good, and everyone knew it.

I assume that others, like me, were very frustrated during that time. We knew this wasn't the right way. Software folks tend to see the world through software eyes, and we know that an incompatible proprietary mess only comes back to haunt you. But what could we do? They had the money and the influence. To misquote PG, we bought it with misgivings. We made our sites work with IE, we made our code compile under VC++, we gave our servers and clients special_microsoft_spec_exception flags. And we bitched on Slashdot and spelled Microsoft with a dollar sign and dreamed of a day when we wouldn't have to deal with it anymore.

Well, now we don't. Apple's eating Microsoft's lunch from the hardware up, while Google chows on it from the web down. They have way too much money to fail fast, or maybe to even fail at all. But they have to play ball now. Why do programmers hate Microsoft? Justice, I suppose. They certainly didn't treat us well when they were in charge. Programmers have long memories.

This claim is absurd. In the last few years Microsoft has done more to advance the state-of-the-art in programming languages for practicing developers than any other organization.

In terms of industrial languages, C# and the .NET framework are a huge advance for client-side programmers developing Windows GUI applications compared to C++. They sponsor the open source development of IronPython and IronRuby and make a genuine effort to maintain compatibility w/ the reference C implementations.

As for functional languages, they largely sponsor the development of Haskell by paying Simon Peyton-Jones who works for Microsoft Research (http://research.microsoft.com/en-us/people/simonpj/), and have released F# which is by far the best commercially supported functional language.

Of course the trade off is that their languages work best, or only, with Windows, but if you are stuck programming on Windows, Microsoft is going out of its way to give developers a lot of options in languages.

There are lots of programmers who like Microsoft, mostly those whose primary (and often only) target is Windows. Most of the comments are about cross-platform issues and kinda boil down to "…because it's not Unix". Which is the "The whole world's a VAX" of our times.

7) In small companies (and most families), programmers end up being IT staff. When was the last time any of you had to reformat or spend hours of your life cleaning a Mac or Linux machine because of malware? I'm not ignorant enough to think the gilded age of Mac and Linux being virtually malware free will last forever, but hey, enjoy it while it lasts.

Generally I think programmers hate Microsoft because programmers hate Microsoft. It's a self-perpetuating meme, and let's be honest, if your goal is to hate Microsoft (or any extremely large corporation) it's pretty easy to come up with reasons. Especially IE6, which is the Exxon Valdez of the programming world.

I think there's some truth in that. Besides factual reasons why one might dislike a particular company or piece of software, there's also the old tribal system. Back in the days, it was Amigas vs. Ataris vs PCs, or SGI vs HP vs IBM vs Apollo vs Sun…

Now, we all run the same hardware, so the operating system seems to be the only pièce de résistance left. Even the arguments between vi and Emacs lost their fervor, considering the size of both RAM and vim nowadays.

At least one item where your average geek ain't that different from a football fan…

I suspect that it's related to history, because there is a reason that the term "Microserf" exists. Microsoft used to operate like amazon does today -- burn the developers out and who gives a $# about turnout, because EVERYONE wants to work here...

... which was true, but it was for the money; Microsoft stock options were making people rich.

The proof?

The year that MS stock values dropped for the first time, MS started having trouble hiring people.

They treat their own developers a LOT better than they used to, in fact almost as well as Google does.

But it's hard to live that Microserf thing down... partly because that sweatshop method, replacing process with extra hours, leads to terrible, bug-ridden code.

What irks me more than people irrationally disliking Microsoft is people who spout about how bad Microsoft's code is, and how asinine their processes are, while making exactly the same mistakes that even Microsoft learned from and has been fixing.

If you want an eye-opening education, go read Mini-Microsoft (including the comments). Some groups are better than others but...

The performance review system causes corporate politics and backstabbing that beggar the imagination. MS has Darwinian competitions of very similar products that result in massive waste (see Kin that should have rolled in to Windows Phone). They do not manage dependencies well, leading to excruciating effort just to check in code. And they are basically headless.

1) Bloating Office products with each successive release and discontinuing the old menu structure. I finally did something about this and switched from Outlook to Thunderbird.

2) MS has alienated small and independent developers by making Visual Studio in a bewildering number of versions and charging too much for it. They're completely focused on enterprise computing, but the enterprise has been off-shoring development for the last 15 years, so bright young developers have no interest in MS technology.

I hate a lot of the tools/libraries/frameworks/software I am forced to use on a daily basis, because a lot of it is complete crap, or has some very annoying misfeature that I run into constantly and there is no way around.

I'd wager that this is part of the reason many people hate Microsoft. They are or were forced to use windows at work, programming apps for windows using Microsoft tools or languages, etc. And many of them probably found it a pain in the butt.