[ossig] The Virtues of Monoculture
Dinesh Nair
dinesh at alphaque.com
Wed Apr 25 17:50:47 MYT 2007
The Virtues of Monoculture
Tuesday April 24, 2007 8:41AM
by James Turner in Opinion
I’m probably not saying anything that hasn’t been said before here, but I
thought I’d share a few thoughts on why people seem to be drawn to the
Microsoft Way. I recently did something at the ‘day job’ that I’ve thought
about doing for a long time, but never quite worked up the steam to follow
through on, I signed up to participate in a a Microsoft-centric project,
and to learn .NET.
I have made abortive stabs in the past to learn to code in the Microsoft
Universe. I made a stab back in the bad old COM days, but the number of
hoops I was being asked to jump through was more than I wanted to bite off
at that time. Since then, I’ve carried that bad taste in my mouth, and
resisted adding any Microsoft skill sets to my repertoire, even though it
was sometimes a gap in my resume.
I’ve worked frequently in environments where there was the one Microsoft
Guy, the evangelist who would constantly tell you how much easier it would
have been in .NET. I’ve written them off as Kool-Aid drinking Gates
worshipers. But, at the end of the day, I felt that if I was going to
criticize them, I really needed to understand where they were coming from.
Know thy enemy, and all that.
I spent last week learning in order C#, .NET and VSTO (that’s Visual
Studio Toolkit for Office, if you’re not familiar with Microsoft’s
alphabet soup.) I used the O’Reilly ‘Learning C#’ book, and did something
I rarely do, went through it pretty methodically (at least the first half
or so.)
Guess what? Microsoft has a pretty good development suite on their hands.
To be honest, C# is largely what I’d do if I could rewrite Java from
scratch with no concerns for backward compatibility. It has a couple of
really cool features, like the virtual, override and new keywords that let
you specify what should happen when you cast a class to it’s base class
and then call a method on it that’s defined in both.
Visual Studio is a slick tool that really does let you bang out
applications (and with VSTO, plug ins for Office) is very little time.
ADO.NET is no worse then JDBC, and is pretty seamlessly integrated into
Visual Studio. I was able, by the end of the week, to develop both
stand-alone applications and Office plug ins that could talk to back-end
databases, having written very little code. From what I’ve seen, ASP.NET
does the same for MVC web applications.
So what’s good about a monoculture, and why does Microsoft win so often
when people make a decision about platforms? Largely because what the open
source community sees as a strength, people trying to get a job done in
the real world see as a weakness. We celebrate the diversity of choices
available to solve a problem and call it freedom. IT managers and CIOs
look at it and call it chaos, confusion and uncertainty.
Should I use iBatis or Hibernate? XFire or AXIS? Perl, PHP or Ruby?
Debian, Fedora, Ubuntu or Suse? Make the wrong decision, and you can waste
a ton of time, as we found out on a recent project when we wasted a week
try to make AXIS2 work for a web service project, only to find out that
XFire was the right choice.
For the Microsoft Guy, no such confusion. You use ADO.NET, ASP.NET, C# and
Windows. They all work, they’re all well documented from the perspective
of a developer’s needs, with nary a disparaging ‘go look at the source’
blow-off. Every time I thought I was going to be stuck, there were a dozen
articles explaining how to do exactly what I needed to do, with sample
code that was up to date with the versions of the software I was using,
and that actually related to the problem I was trying to solve.
Microsoft offers the certainty of no choices. Choice isn’t always good,
and the open source community sometimes offers far too many ways to skin
the same cat, choices that are born more out of pride, ego or stubbornness
than a genuine need for two different paths. I won’t point fingers,
everyone knows examples.
Now, least you think I’ve been turned to the Dark Side, there is one BIG
problem with a monoculture, which is that you’ve essentially sold your
soul for the stability of a clearcut set of choices. You go down the .NET
path, you’re pretty much stuck there forever, Mono not withstanding.
You’re always going to be running on a Windows platform. You got the
pretty gold ring, but Sauron gets to pull your strings and make you dance.
For many companies, ones that don’t need to worry about deploying into
heterogeneous environments, that’s a deal they’re more than willing to
make.
The takeaway I get from this entire line of reasoning is this: that
somehow, someway, we need to start doing some winnowing. The 700 lb
clue-bat has to be available to pound on the head of those who fork for no
better reason than a disagreement over a license, or who should get to
call the shots. When we hear about two or more projects that answer the
same question, we should be asking ourself “Why don’t they pool their
effort and produce one really good solution?”, rather than celebrating
diversity for diversity’s sake alone.
Do we really need Ruby on Rails AND Groovy on Grails? When the April
Fools’ announcement of Python on Planes came out, it took me a second to
realize it was a hoax, because it’s just the kind of ‘doing something for
the sake of doing it’ effort that fractionalizes the OSS community.
There’s no way to stop people from starting new duplicative projects, nor
should we want to, but please God, do we have to actively encourage it?
We spend a lot of time complaining about all the evil ways Microsoft uses
to foist themselves on the world. By doing this, we automatically remove
any blame that we ourselves may bear for their successes and our failures.
The reality is that there are good, practical reasons that drive people
into the arms of the Redmond tool set, and we need to accept that as a
fact and learn from it, rather than shake our fists and curse the
darkness. For we have met the enemy, and it is us, not Microsoft, at least
not all the time…
--
Regards, /\_/\ "All dogs go to heaven."
dinesh at alphaque.com (0 0) http://www.openmalaysiablog.com/
+==========================----oOO--(_)--OOo----==========================+
| for a in past present future; do |
| for b in clients employers associates relatives neighbours pets; do |
| echo "The opinions here in no way reflect the opinions of my $a $b." |
| done; done |
+=========================================================================+
More information about the ossig
mailing list