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.
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:
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. 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.
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.
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?""
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.
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.
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.
/* What is Microsoft? */
Not nearly as many as those who know how to program in .Net.
Plus, they have that little paperclip thing that pops up whenever you ask for help...
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.
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
* 16-bit address space
* Insanely complicated and needlessly POSIX-incompatible
access control lists
* Path separator: \ vs /
* Very expensive dev tools
* MSC++ isn't C++
* Handling of Java
* Management via GUI instead of text files
* Absence of usable shell
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.
Windows comes with Minesweeper.
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.
Microsoft can't win here, if they shipped all that with the base OS there'd be haters hatin' on them for "bloat".
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.
>Windows comes with Minesweeper.
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.
Why should MS bundle those into Windows and waste disk space for 99.5% of people who will never use it? BTW Ubuntu does not come with GCC. http://ubuntuforums.org/showthread.php?t=120421
>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.
Uhh what? We are not talking about iOS here where you need to pay $99/year for the privilege of developing. Can you elaborate?
> 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.
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.
You should have looked and checked harder. Word Viewer was always free.
>View, print and copy Word documents, even if you don't have Word installed.
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.
I don't hate Microsoft but I avoid targeting their platforms.
EDIT: Oh, and there's the malware thing.
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.
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.
2) Internet Explorer 7
3) Price/quality of Visual Studio compared to other offerings - we can talk about memory footprint, MSDN subscriptions, odd versioning conflicts when trying to develop for SharePoint - oh wait.
5) http://i.zdnet.com/blogs/fake-steve-ballmer.jpg Honestly, this man disgusts me. His attitude and public reactions as the figurehead of Microsoft make me want to have nothing to do with Microsoft
6) Lack of POSIX compliant shell.
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.
8) http://windows.microsoft.com/en-US/windows7/products/compare Which one is right for you? Fuck you! It's a desktop or a server. The consumer should have one choice, appropriately priced that lets them do everything they can.
9) The ridiculous price of MS Office Suite.
10) Webforms, VIEWSTATE. Seriously, fuck you VIEWSTATE, whoever designed this dumb ass approach should have their computing license revoked.
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…
... which was true, but it was for the money; Microsoft stock options were making people rich.
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.
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.
And it's still not totally fixed.
- OOXML and the related perversion of the ISO process
- Wilful violation of standards (web, others)
- Hurting users for hollywood (Protected media path etc.)
- Broken security (by design) that has enabled all the botnets and spam you could ever think of, and then some.
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.
Many hackers do. (No, not that kind of hacker. Those guys love Microsoft: plenty of vulnerabilities to exploit!)
But programmers, in general? They love Microsoft. Microsoft keeps food on their tables by providing Visual Basic, C#, and other tools that they can use to shovel out PoS or ERP code or whatever.
Most of the fun and innovation is in the realm of the hacker elite, though, to whom a Microsoft monoculture is both stifling and suffering from a chronic case of doing-it-wrong.
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.