Giving Up on Microsoft

Omar, you should check out Banshee as that is written using Mono and it seems to be pretty popular.

HJ, I guessing you haven’t been working in the industry very long if you think Microsoft invent every new technology. Consider that Open GL was around long before DirectX.

I feel sorry for those for believe strongly in either side. You need to accept that competition is healthy for the industry and Microsoft have helped to popularise home computing.

@HJ - you obviously have no clue if you think that Open Source is not cutting edge. I doubt that you’ve any experience of anything Open Source. Have you actually hosted apps on Linux? Tried Firefox? Grid computing? Xen virtualization?

I’m not sure what you mean when referring to 30 year technology - are you talking about BSD/Unix/Linux? If so, these technologies are driving most of the Internet the time time I checked, not to mention mission critical enterprise systems. OSX is based on BSD and it’s a great modern OS (Vista does a reasonable job of copying it). Linux is even shinier with Compiz/Beryl.

Your reference to Perl - OK if you’ve never had the need to use a scripting language like Perl then you will not see the value in it. You wouldn’t use it to write eBay but again there’s nothing in the MS world that does what Perl does unless you use something like IronPython or IronRuby (both of which are Open Source and are ports of cracking languages). If some of these Open Source scripting languages are so lame then why is Microsoft baking in scripting support into the next version of .Net?

In summary, don’t talk about what you don’t understand. Closed Source and Open Source BOTH innovate and get inspiration from the other side. Use whatever gets the job done. My personal preference is for good Open Standards support so Microsoft wouldn’t be my first choice but I would definitely use their products/technology if I thought it was a good fit to the project that I was working on - MS has some fantastic software. It’s a shame that there are so many muppets in IT.

I definitely share some of flynnguy’s heart here. But flynnguy, you are convincing only the open source choir and converting no one. If you really want to do some good, keep your mouth shut for a few days while you read “How to Win Friends and Influence People.” Your writing will become a lot more effective, in the sense that you will convert a lot of people to use open source tools.

With that off my chest…

I program for fun. I left Microsoft around 1997 when I discovered that under the Linux command line was all the development tools I thought I’d have to pay thousands of dollars for, and a nice stable OS too. Revision control I thought costed $1000 per seat, editors and build tools and compilers for every language I could imagine I thought costed $200+ per seat per tool and/or language, and a never ending fountain of new software to play with, to me worth infinity dollars. I felt like I’d been ripped off my whole programming career and began the process of expunging MS from my life.

This article makes me think, “Why did I do this? Why does it always have to be a violent revolution?”

Reflecting on what I just wrote, wow, I’m insightful!

Now I’m going to ruin it:

Look at Apple right now. They made a mutually beneficial effort to make themselves compatible with the rest of the open source community. As a result I’ve seen a lot of Linux desktops turn Apple. But the Linux guys don’t hate the Apple converts. Well not even half as much; it’s like an order of magnitude less hate. I could buy a mac now, and I could still easily do a lot of stuff the way I’m familiar with. I can manipulate an Apple build environment from my Linux machine easily with Emacs Tramp.

Apple and open source software play pretty nicely. Until, that is, you start trying to make universal binaries from uninitiated free software. Hate! Hate! But that’s optional for most people.

But if I got disillusioned with Free Software today, where would I go? MS? I’d have to cut bait and regain 10 years of my career. If I fled to Apple, it would be a really gentle transition.

Apple chose to make things this way, maybe by accident, but this is the way things are.

MS, on the other hand, has enough resources that they could make an effort to bridge the gap, but they don’t. Or when they do it’s under the auspices of labeling my OS as something that must be escaped, and the bridges feel like temporary offerings. The community hate is the official company line.

Seems like all the compatibility work, (.net, samba etc.) is happening on our end, without the benefit of docs, while the other side of the divide has the benefit of source availability but won’t even ship ssh out of their box.

So I’m sorry to say, I fall in your trap, but I’ve got good evidence to point to the fact that I’m not the problem here.

I don’t really understand the mono project. That is, what do they think the endgame will be? Let me try to lay it out:

Assumption: Microsoft is really serious about .NET, it’s not just a red herring. MS wants all developers to move to .NET and they themselves will eventually move all their products to .NET.

Assumption: The ultimate goal of Mono is 100% .NET compatibility. Any program written for .NET will work on Mono without the developer having to even think about it.

Now, if both of these assumptions are true and the events assumed in them come to pass, then doesn’t that endanger the Windows near-monopoly? That is, .NET developers and users will have a real choice about what operating system they use.

Given Microsoft’s past behavior, which of the following is more likely to be their reaction to a threat to the Windows near-monopoly:

A) Shrug and say, “oh well, Windows was a good ride while it lasted. I guess we’ll just have to compete on a level playing field now.”

B) Do everything within their power to cripple or destroy Mono.

I don’t see how any sane person who has looked at Microsoft’s history can pick anything other than B). Maybe if the senior management changed, but Gates and Ballmer? Nope, they’re “destroy your enemy at all cost” sort of people. They’ve proven this again and again.

Now, I’m not saying that MS would succeed in crippling or destroying Mono. Just that they would try. And even a failed attempt would suck up huge amounts of time for Mono developers (and would probably scare commercial developers away from Mono).

So it seems to me that Mono is only “allowed” to exist by MS by the degree to which it is not-completely .NET compatible and therefore is not a real threat to Windows. (Just like how MS is quite happy with a single digit marketshare Mac OS, but would change their tune if Apple ever got over, say, 20%.)

“I haven’t heard of an IDE better than Visual Studio. Do Perl and Python developers even HAVE an IDE, or do they just use vim or Emacs?”

If an IDE needs to run in Windows (Vista, XP, 2000…) It’ll crash.
So I think any IDE that runs on any OS, is better than VS… At least if you really know what you are coding and dont know only to drop controls around…

Regards.

As a former MCSD VB developer, I understand Mike’s frustration. I migrated to Java 7 years ago. The move was brought on by three things. The promise of write once - run anywhere, Microsoft’s territorial nature and the cost of the Microsoft development environment. Let me address the last issue first. The cost for Microsoft’s development environments has continued to spiral upwards. Back in 2000, the professional studio costs $2500 for a professional license. The cost of keeping my skills current with Microsoft was more than I could justify then. Microsoft has continued this with all of their product lines: the OS and the Office suite offer, what I consider as, costly upgrades for little increase in true functionality. Do not get me wrong, I do not begrudge Microsoft the ability to make money or charge for it services, but I do think that they took a page from the IBM school of pricing. (See, I was around when dinos and IBM rule the earth.) Jeff is right, if IBM still ruled we would all be forced into bleeding IBM blue.

Beyond cost, Microsoft’s territorial nature about its OS, I still fight on a daily basis. I have to deal with an IIS server in my now mixed environment only because content rendition services for word documents require windows only dll’s. I believe that the choice of a server for a job should be based on performance, hardness, or availability and not because a company has failed to embrace open standards to protect their market share. Unlike Jeff, I believe that there would be less of the “us vs. them” mentality, if Microsoft itself did not foster it and feed off of it.

I would be nice to be able to use the sharpest tool in the woodshed and not just the available tool from a single vendor. (I don’t need or want to buy a $5000 chain saw to prune tomato plants.) If Microsoft has the best tool, then I use Microsoft. If another vendor’s tool is easier to work with, performs better or is more secure, then that is the tool I use. I want to be able to build software that is machine and OS agnostic. I want to build solutions. That is want the clients that I work for need.

I think you are just trying to get my vote for favorite programmer quote :wink:

It’s a job. It’s a fun job for people who enjoy little surprises. My suggestion: dedicate yourself to making things happen, wherever you can with whoever you want to. You may not get rich or famous. But you’ll contribute and have fun.

Startups using Microsoft: Page Flake, Writely was written in .Net too

I use microsoft tools at work. But at home…I’m all java/eclipse/apache. Eclipse’s refactoring tools are light-years ahead of Visual Studio.

I’m a software developer that’s been in both camps, using Visual ____ IDE’s + Compilers for years on many projects, then switching off to open source projects, then back again.

Both sides have value, but microsoft’s lunch is currently being eaten for good reason. Java has really taken massive inroads into the enterprise space. C# has taken some of that back, but Java somehow became the new cobol, which amazes me in more ways than I can count. This means java programmers will be around connecting their beans and tomcat serverlets back into new stuff for years to come.

For small projects, Microsoft has not created scripting languages that are small and portable. This is where ruby, python, and perl have eaten its lunch. All three are much easier to use than their .net equivalents because they’re working within minutes and work the same on innumerable platforms of the last 5-10 years of all operating systems. If they’d like to try to reclaim this. Repackage IronPython in something as standalone and simple as python2.5 and pythonforwin. The CLR+.Net runtime are a cool idea, but don’t make a developer install the moon and the stars just to use the microsoft alternative to their usually easy to install and use program.

Microsoft has some (very important) things going for it:

If you don’t care too deeply how things work, you can get quite a bit of stuff pre-made for you, that work okay out of the box. This only requires a little cash, or can even be free with the new express studio.

Setting up builds that work for each developer is simple for small to medium small projects that don’t require tons of external tools and libraries

“Open Source” (I mean, doesn’t this translate to != MS in this discussion) has the following things going for it:

Rarely is one company is dictating implacable, opaque api’s
Often simple enough to be completely understood
Eschews code generators instead using libraries
Often a product of multiple dedicated people with academic training, or a single passionate developer, not an often anti-academic group of developers who view themselves as immune from reading research.
Often conforms and contributes to standards
Often very well documented, or small enough to require less documentation
Errors in API’s/libraries are fixed quite quickly.
You can often run on any platform under the sun
You can easily understand the licensing terms for embedded projects
You can install the development environment on as many computers as you’d like (important for those of us who like to work at home some times)
The development environment we use can be customized per developer (I’ve been on a project where one guy was using the VC ide, another emacs, another VI and another still codewright).
Setting up builds for large projects is much easier
All the development tools are usually redistributable.
All the libraries are redistributable.

In summation, Microsoft gives you a couple things quickly, but often forces deeper, harder and more complete commitment to even finish simple projects. Open source API’s and tools are often shallow, giving up their functionality in simpler ways that allow them more flexibility of application and integration with a wider variety of code.

For some people, the instant pile of features .Net gives you are enough to make it the thing to use. But this also requires the willingness to accept the risk of the lock-in, closed decision making process about API’s, lack of responsive and affordable support, and opaque development roadmaps. These things make many programmers tremble in the night.

And frankly, Microsoft has dome some amazingly untrustworthy things in the past. If people are leary of them, it is not without good reason.

--Michael

Definitely hit another nerve Jeff… Way to go! Love all your posts!

“Humor me for a moment and imagine replacing Microsoft with one of its competitors: Sun, IBM, Oracle, or Apple.”

This statement totally misses the point. It assumes there has to be some big monopolistic company controlling our platform. That is not only false, but it is the exact thing people are complaining about.

Instead, I ask you to imagine a world where IBM’s BIOS was never reverse-engineered, and thus IBM kept total control over the hardware platform from 1980 till now. Comparatively, how stunted would the PC platform be today, without all that development and support from hundreds of third party shops for the last 25 years? Sure, IBM would probably have come up with some innovations all by themselves. Are they smarter than a marketplace full of hungry competitors? Hell no!

Now take that mental delta, and apply it to PC software. That is what Microsoft’s software monopoly has done to us.

I’ll admit that I’ve tried it a time or two, but I’ve never inhaled!!!

I am a MS-based programmer and like the majority am staying that way to pay the bills.

But my main problem with MS, in general, is how they use their products to dictate how things will be done. They’ve pre-decided that the best way to program everything is their way. I strongly disagree.

My second issue would be with product bloat. They stuff way too much in to their products that an everyday person has to weed through to do anything truly productive.

My last issue would be that I think their products, specifically VS, are too-tightly connected to the OS. I have never had to wrestle with permission issues so much in my life. I still don’t understand why I have to give myself permission to run something that I’ve coded on my own machine.

I am probably one of the few people that think the jump from VB6 to VB.NET was a step backward.

“Follow the money” as they say. Trace the tree of “us vs. them” and at its root you will find Mr. Steve Ballmer. It is he who encourages the dichotomy, solely for his own ego.

I too find the religious zealotry tiresome, after abandoning Windows development years ago, and I take great comfort in this Larry Wall quote:

“True greatness is measured by how much freedom you give to others, not by how much you can coerce others to do what you want.”

“… I haven’t heard of an IDE better than Visual Studio. Do Perl and Python developers even HAVE an IDE, or do they just use vim or Emacs?”

Yes you have. (See the last quoted word).

Emacs most definitely is an Integrated Development Environment. The only thing I know of that Visual Studio does that emacs doesn’t is WYSIWYG GUI development. That’s probably a really big “only” for some folks. However, I do mostly system’s programming, so I’m not one of those people. The power of the text editor is by far the most important thing about an IDE to me, and that makes emacs vastly superior to Visual Studio.

As the owner of a small development shop, I get the best of both worlds - I do work both in Rails and .Net, depending on the needs or preferences of each client. But with projects like SubSonic out there, the two paradigms aren’t that far apart anymore! I like the fact that MS (and the MS ecosystem) is taking some cues from the OSS community.

So, although I plan to buy Mike a beer and pick his brain during Railsconf next week, I’m not following him off the cliff. Unless my clientele goes 100% Rails, I’ll keep one foot in both camps - and laugh at the zealots on both sides!

Howdy Doody Jeff,

Isn’t this a case of ‘silent majority’, as in why would I envangelize my profound non-committal either way, i.e. the reason you think the world is polarized on this subject is the fact that the two poles are so loud and noisy (no disrepect to the Polish intended here).

Picture it like a noisy penguin and a noisy polar bear having a shouting match at either ends of the Earth - it would give the impression that no-one else lived in between them, while the case is that the majority are just ‘quiet whatevers’.

PS Why are you blogging about Mike Gunderloy saying something, isn’t that what Mike’s blog/newsletter is for? Look out for my ‘Jeff Attwood Considers Mike Gunderloys Plan: My Reaction’ blog post any time now…

The issue I have with non-Microsoft developers is that they believe all the MS IDE’s do is drop a few buttons on a page and somehow that makes the code work. VB is probably the cause of it, but like any half-decent VB programmer I had to resort to API’s in order to make the program do anything fancy.

Perhaps they don’t understand that you don’t have to use VS to create .Net projects. If you are sadistic enough you can compile the code from scripts, but I would rather be spending time working on the core code instead of setting up the development settings (although I do believe the OS tools are better for this on large teams).

Oh and please stop referring to Microsoft as Micro$oft and the MS developers as “fanboys” because it cancels out any intelligent points you make.

Love your blog, Jeff, but did you purposely overlook the fact that Microsoft has famously used tactics that would bring a tear of envy to Tony Soprano’s eye? Their illegal bullying of our entire industry should not be overlooked or so easily forgotten.

This is not a moralistic rule-of-law kind of stance. If we fail to shun the ruffians in our business, then our business will be owned by the ruffians and innovation suffers. See: Russia. We all programmed Visual Basic in the 90’s because there pretty much was no other game in town. OOP and elegance weren’t even possible in that nightmare. The US gov’t gave them a slap on the wrist, but it was, as I remember it, developers, developers, developers who said “screw you” to Redmond and embraced the web, not Windows, as the platform of choice.

Microsoft is unrepentant. Now they are spreading FUD about Linux and trying – yet again – to get their proprietary mits on the web via Silverlight. Stop enabling them.

I’m a little concerned at a statement I caught at the end of your post Jeff. Not to mince words:

“Stop with the us vs. them mentality… We’re all in this thing together”

But then in the next paragraph you said:

“For now, I choose to live in the Microsoft universe. But that doesnt’ mean I’m ignorant of how the other half lives.”

If we truly want to get rid of the us vs. them mentality, how can you say something like “how the other half lives”? Or maybe I’m just taking things out of context. I still need to pour through all the other comments here, but great post.

Let’s be straight here, I’m a Microsoft MVP and Microsoft has been good to me. To a certain extent, I’m a Microsoft pimp. I pimp their products and technologies on my blog, when I speak, and every chance I get. However, I also drag them through the mud when they’re wrong or produce confusing/stupid/dumb/moronic/non-working/etc. tools. That’s the beauty of being an MVP. I get to play in both camps and tell it like it is. Okay, I’m not going to cut of my nose despite my face, but I’m also not going to sugar-coat things that are just wrong in the Microsoftverse. As am MVP I take the pain and suffering so that I can pass on the experience to others in the hopes that they won’t go through what I did. It’s a bit of a self-mutiliation mentality, but it’s my choice.

I’m also an open source guy. Any project I do generally goes straight back into the community. I come up with a way to improve a gap that MS failed to fill, and I fill it then unleash the hounds onto the rest of the geeks out there to do what they will with it. I don’t however consider that another camp. If MS came to me and said “Bil you can’t be an MVP and release all these open source projects” then I would stop being an MVP. However I wouldn’t stop doing what I’m doing now and would still praise and bash MS for things they do (like putting us through CTP hell like they are right now). The only difference is that I won’t get the inside connections I have now that help me position the community for the future.

Anyways, I completely agree with you that software development is about software development, no matter what label you slap on it, what sponsor you have behind it, and what platform it lives on. I choose to build on the Microsoft platform just because it’s the way it works. If I could build everything on Linux and target Windows without jumping through hoops (and Linux offered me some value-add over Windows) then I would do it. Or Mac. Or whatever. The reality is that the largest audience out there for the type of software that I build is Microsoft centric, so you build what works. If I had 1000 Mac users banging down my door for Mac software, I’d gladly spend the time doing that however in my experience, it’s been 1000 Windows users to 10 Mac (or Linux) users and while I’m all about sharing, I can’t sacrifice the good of the many for the good of the few.

Okay, enough babbling and I’m not sure how this all relates to the post but maybe food for thought. Thanks for your bandwidth.