Giving Up on Microsoft

"My theory is, you use the tool that works well for the job and don’t worry about which one you used. "

So very true. These things are ALL tools. I don’t quite get the religion.

I can, however, understand startups using open source, if for no other reason than the perception that they are free vs MS products, no matter how true or not that really is.

I second the “branch out, dip your feet in more than one pool” school of philosophy. But then my experience is pretty checkered. I was not indoctrinated to “one true way”, Microsoft or otherwise. My coursework and job experience has been all over the place.

Heck even growing up there were options for computers. Are people even exposed to options anymore? You can pick PC, maybe see a Mac, running on PC hardware, or Linux … running on PC hardware.

How much is just kneejerk switching or pure burnout from boredom, with no bearing on the actual tools? It seems like people are switching brands to the language or toolkit of the day just to keep challenged.

“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?”

I haven’t heard of any walker better than the Segway. Do legs even have gyroscopes or steering wheel, or do the operators just sort of flay them about on the ground?

Good post!
Get married to a human being, not to technology.
Even when you are forced to do otherwise.

As an OS/2 developer turned Windows developer who now spends half his time coding on Linux, an IBM dominated world seems preferable to me. I know that I enjoyed OS/2 tools a lot more than Windows tools.

My biggest complaint about Microsoft tools is that they are a moving target. Something new is introduced every few years, supplanting old tools that are halfheartedly maintained. The Windows APIs are a massive layer cake of interesting, but flawed designs that are 95% working, but never quite there. And honestly, Visual Studio itself seems to be going downhill. I’m tired of the way the thing pushes you into the new hotness when you’re just trying to get the old code working.

For the last year, I’ve been working on an application that has both Windows and Linux components. For Linux, I use vi and make. But in many ways, I find it less frustrating than trying to force the Microsoft tools into doing what I want, rather than in the “Microsoft way”.

That’s for work. For personal programming it is no contest. I can either spend thousands of dollars on proprietary software…or I can just install Ubuntu and use apt to get all the equivalent open source tools. On Windows, installing all those tools is a day’s work. In Ubuntu, it’s ten minutes in synaptic and a half hour download. On Windows, every year, it’s more money and more time spent upgrading. On Ubuntu, it’s clicking the “update all” icon every once in a while.

I’m just sick and tired of the whole proprietary treadmill. At work, Perforce goes down once a month because of a licensing issue that is solved with temporary licenses. That never happened with CVS.

While I have enjoyed certain MS products since 1990, it’s hard not to acknowledge that they desire to crush or buy the competition. The whole “IE is part of the OS” event was shameful.

It’s hard not to miss the fun that Borland provided (remember “Reflex” and “Turbo Prolog”?) back in the late '80s, and certainly Delphi was and is the best Win32 dev environment ever. MS has acquired a lot of the Borland brains over he years.

I still run W2K due to MS’ Orwellian schemes with XP and Vista. Yet for now I must make a living in the Windows and SQL Server world.

Jeff:

I had just one reaction after reading this posts: cheers! As you mentioned, too many very smart people seem to get caught up in the MS/OSS religious wars. Now part of the blame must be laid at the feet of the respective leaders. MS practices have notoriously not played well with others. And the OSS leaders - though they be many - tend too far in the other extreme.

So it was a breath of fresh air that a blogger as respected and consistent as yourself, retains that consistency and respectfulness while wading in the midst of the wars. Thanks.

The I-hate-and-will-never-touch-M$ stuff comes from disparate, but connected vectors: the monopolist stuff (they were convicted, and did fund SCOX in its venture, etc.), and that for web development (we’re all going there, ya know) there are just better ways. Better, not just cheaper. And Open Source isn’t just about $$; it’s mostly about not being locked in by a monopolist who has shown itself willing and determined to devour anything it its path. Young-uns might not remember; veterans do. Why shoot yourself with the enemy’s gun? And it’s not all Open Source; Eiffel is a Movement to be reckoned with.

I’ve been working web stuff for years. This stuff never gets outside the company intranet; suits think that a web-app is lightweight. It’s their brains that are lightweight, but there you are. With server driven web-apps (think: it’s 1988 and you’ve got a Unix database and a raft of VT-220s wired up), what’s the Value Proposition of M$??? A virus petri dish in every tube?

The dam will break when the first Fortune 500 banishes M$ and goes Linux on the desktop. I expect it will start with Firefox, but that’s as much of a guess as any of this. It will happen, likely when the boomer CIOs get replaced with younger folk.

Every study I’ve seen or heard of concludes that “office productivity PC software”, aka M$ apps, have actually decreased productivity. Two reasons: there’s too much lipstick to play with which distracts employees from the Real Work, and there’s too many toys which… When you look at the question rationally, homo economicus, using M$ is just an enormous profit tax.

The young-uns don’t know a time when the company’s computers ran their programs and nothing else. Rational people will see the light.

Do Perl and Python developers even HAVE an IDE, or do they just use vim or Emacs?

I recently took a beginner programming courses at college. I refused to use the .NET framework because I was there to learn to code . . . not operate and configure .NET (which this class seemed to enjoy). I came home, fired up KDE, and started up KDevelop. Every project I had at school in .NET was created in the exact same way at home using KDevelop. From scripts, headers, and libraries to whole programs, I was able to do just about anything I wanted. I could even install the win32 libraries for windows console programs and testing. So YES, open source can program in something other than vim and emacs and oddly enough, it looks and acts just like .NET!

Benevolent?! Excuse me while I clean up my spewed coffee. I was around when Microsoft rose to power. There was nothing benevolent about them.

Claiming IP protection on the “ribbon” is nothing compared to the old days.

Would Jobs have been worse than Gates given the same power? Yes, for sure - and I’m an OS X fan. Even so, please don’t call the Microsoft of the 90s benevolent.

If you want to say something nice about their development tools, btw, you might mention Microsoft’s free “hobbyist” Visual Express suite.

BTW, VS is very impressive, but the OS X IDE is pretty good too. It’s free and its much more accessible than Visual Studio, albeit not as powerful.

In general I think Microsoft has been a blight on the world of the personal computer (exhibit A: Microsoft Word), I think we’d have been FAR better off without the monopoly. The only thing worse would have been a Jobs monopoly.

You had me until you said that Microsoft releases things at a blistering pace. Are you joking? Compared to smaller, more innovative vendors (such as my personal favorite these days: JetBrains, maker of ReSharper and TeamCity).

Instead of really big, groundbreaking changes every few years, I would like substantive new features every few months.

The problem that I have with Microsoft tools is that they are so often coupled to each other. You want to use VSTS? Be prepared to install Windows Server 2003, SQL 2005, Sharepoint, etc.

love how the title of this article makes the reader think “is JEFF giving up on microsoft?” – that makes for a great hook!

Then the photo of Bill – that’s another hook.

Damn you’re good at this blog writing stuff! A master craftsman Jeff. You could teach a course!

in much-needed response to “Chip”:

MS [should be] more open… for example, if they provided
an open spec of how to implement the equivalent of a java
virtual machine for .net (CLR is it?), the open source geeks
would implement it and allow .net apps to run on Linux or
any other platform that might so desire.

The clr is open like that, and Mono is precisely the open source implementation you’re looking for.

lb

And as to the wonderfulness of Mono: there is a (growing?) number of folks who’ve concluded that it is the presence of Mono which gave M$ the wedge against Novell. Benevolent? Do some research about that deal. Educate yourselves.

I agree. I’ve embraced Mono with all my heart.

Miguel is a celebrity to me as well, so rave on preacher!

I use CodeGear tools, especially Delphi. I am OF the Microsoft world, but not IN the Microsoft world. :slight_smile:

The Delphi product has expanded from its origin. They have never “rebooted” their franchise. Delphi 1 skills carry right over into .NET if that’s your path.

Give Delphi a spin. If you want middle ground, it’s the one!

As a developer I believe in the “best tool for the job” approach which includes Perl, C, C++, C#, Java, Bash and whatever else comes along. The problem however is time as each stack takes a considerable amount of time and practice before you’re proficient in it.

I’ve developed Win32 programs since the early days of Win95 for about 10 years until I’ve switched to Java for no other reason other than doing something different every once in a while. Recently I’ve written an app in C# with Visual Studio Express for the same reason.

Looking across the fence broadens your experience and helps you to understand the benefits and shortcomings of your preferred platform better. I like C# for example but the properties and the partial classes are both a complete brainfart from my perspective. Geared at the intermediate programmer they actually make development more difficult than easier. Much like the overkill of language features in C++.

MS may be a benevolent dictator but its still locking you in. Once you’ve learned the MS stack you develop for the MS stack and only it. To be fair the still is probably true for any complex software stack. But I still have a good recollection about what MS did to Java by “extending and embracing” it beyond recognition. That’s why I can understand the reservations about Miguel de Icaza and his porting effort. I don’t mind having C# around on Linux but I do mind having several different versions around as it eats into my time to understand them all. And until MS has demonstrated that it can actually play nice with competitors and the open-source community these reservations will probably remain.

I make a living using Microsoft tools. I can’t find any better IDE than VS 2005 in any platform and I can’t find a better more friendlier database than SQL Server. There’s nothing wrong with a software company making money by selling closed software. Thousands of companies do.

Your car, appliances, plane… etc run closed software and no one is asking to open these software.

Microsoft is becoming more open. Look at Channel 9, CodePlex, open source software (eg, MSI builder), you can create your own custom providers in .NET and IIS 7. ASP.NET is adhering more and more to W3C standards.

You can create dynamic sites using free MS tools like Web Developer Express and SQL Server Express and there are free Windows hosts out there.

The situation is getting better. People need to be more patient.

You do not have to use the latest MS tools. I do not intent to use .NET 3.0, Silverlight, Vista for a few (could be many) months and I will still do fine.

Finally I am not planning to dump Microsoft and all my knowledge about MS tools which I have accumulated over the years and learn LAMP from scratch.

You can create free open source software with MS tools and you’re no obliged to include any ribbons :slight_smile:

From the flame wars I have seen, there are a lot more of MS haters among Linux users than Linux haters among Windows users.

Abdu

“can you even name any startups that use Microsoft development tools?”

NewsGator is one.

Pageflakes is another. They use the AJAX framework.

MySpace is another HUGE one now - considering they get about the amount of traffic of most of the other “web 2.0” companies combined, this is a pretty big deal.

Turns out 4 of the top 6 sites on the web actually use IIS Windows (MySpace, MSN, eBay, and Hotmail) Surprised me too even though only one of them could be considered a “startup” and that may be a stretch at this point (even though they’re only 4-5 yrs old).

Disclaimer: I work for MSFT but not on any of the developer tools - not even in that division. I work on Windows Live Spaces which also not coincidentally uses ASP.NET, IIS, etc. to serve up content to 130 million+ UU/mo.

an argument started about the potency of a development platform being a function of it having an IDE. it was justified by retorts citing IDE’s for said platforms.

IDEs are not the litmus test of a platform. that assumption is insane.

what do IDEs generally give us? file management, compilation, debugging, text editing, access to version control, … pretty much everything you need to develop an application for a platform.

in the typical windows environment there are no robust shells like bash or zsh, there is no grep; there is no emacs or vi. the MS contenders in those fields are crap or non existent. development in windows pretty much needs IDEs. they have 'em for unix but are not really needed unless the programmer prefers that as a development environment.

different paradigms, apples to oranges folks.

I completely agree with you. I love the .NET platform, and use primarily Microsoft products for development or other things, but that doesn’t mean I love everything Microsoft does. I actually hate a fair amount of what they do. But what I hate above all is, as you say, that “us vs. them” mentality that has been invading the whole software world. I’m a zealot that hates zealots. I try to use on a daily basis both Windows and Linux (currently Ubuntu) to stay aware of the evolving strengths and weaknesses of both systems. Maybe someday I’ll add MacOS to that.

Miguel is one of my heroes, too, because he’s both incredibly pragmatic, and had the courage to apply that pragmatism in his career, going against all “religious” trends and bringing a Microsoft technology to the world of open-source. This guy deserves at least respect from all developers.

Like Jeff and Mike, I started programming with MSC 6 and used almost every version of developer tools from MS, including MFC, ATL and a console based editor called PWB for Programmer Work Bench (I would like to call it a People’s Work Bench for its simplicity and utility). At times, I strayed into Open source for more practical solutions. For our organization, we chose Linux based server apps like Samba domain controller, Postfix / Sendmail mail servers and portals based on Liferay. We had time to play around with these and weren’t willing spend money on Windows and Exchange servers. I chose Lucene on .NET over full text search as we needed search to work remotely. And Lucene seemed to be a lot more fun to develop than FTS. But I would always choose the developer tools from MS over Open Source tools. Even if Eclipse offers a plug-in for C#, I would consider the express editions of C#/ASP.NET a lot easier to use if cost is a factor. If I have the luxury of spending a few thousand dollars, I will always choose MS developer tools.

At one stage in my career I wanted to work for MS. And within a few months after I was rejected, I was scared of competition from MS as they could build a better product faster and market it easier as compared to the product I was working on. From time-to-time, I might choose between MS and Open Source, but I can’t hate either.

For those who choose one and hate the other, don’t blame it on MS or Open Source. Blame it on your upbringing that doesn’t allow you to stay in shades of gray but expects you choose between black or white.