In continuation of Bill de hÃra's blog on why Greg Wilson is off the mark in selling open source, here's another Disgusting Analogy For Today (DAFT) regarding the variety of open-source solutions to almost any problem:
The Crotch: your itch is different than mine, and we prefer other ways of scratching it.
Seriously.
Claiming that the open source community - in this case python's - needs
speak with a single voice is ludicrous. To quote Wilson:
On
the other hand, once a domain is mature--as basic web application
frameworks clearly are--I think it's crucial that open source
developers shift from invention to consolidation. That in turn is going
to require a shift away from "vanity projects" and programming for
ego's sake, toward making sure that other people's itches are being
adequately scratched. Sometimes, sharing code isn't enough; sometimes,
the best thing you can do is volunteer to throw yours away.
There are several issues that immediately come to mind:
*
Saying that one-size-fit-all is usually very, very wrong. Even for very
similar things, like web applications, the requirement of each
client/user is different. It is not enough to look at the problem from
a mile high and say that it's all the same - the devil is in the
details.
* Saying that the developers maintain their project
just for vanity is also plain wrong. A lot of these projects have a
user community. How would the open source community look like if active
projects were abandoned simply because there was another project that
may be more active?
* Saying "We've known for years how to build these",
is grossly ignoring that exploring and finding new ways of doing things
is the basis for continued innovation and improvements. Is there a
point in time you should ever say "I will now stop thinking about how to improve solutions to this problem"? I think not.
* Is there a single voice in the commercial
world? Is there a single recommended Java web-framework that the java
community rallies behind? Is there only one office applications vendor
that should be supported? The last of course is a trick question,
leading directly to Is it a good idea to have one?
I
have seen - and liked, but can't remember where - an analogy of open
source as a giant open research lab. There are all those dead or dying
project in places like sourceforge, ideas that never made it. (I am
responsible for at least two, which I swear one day I'll get around to
fixing ;-). But there are all the the other great ones that came out
and became real products.
Should we kill some those great
products, just because they are similar to others? Should users who
were early adopters of a solution that fit their needs be penalised?
Should we kill things that work well and instead design by committee some enterprise solution?
If we end up with one tool that does everything, won't we just end up
with a configuration nightmare - sometimes just the thing that sparked
the original open source work?
All this smells a bit like
corporate IT practices. With no disrespect to Greg Wilson, there seems
to be a mantra to the effect of "I will not think, I am Corporate".
Large enterprises (who by the time they reach 'enterprise' status are
anything but enterprising) dislike to be singled out, to deviate from
the norm. They usually want one solution with some giant backing it
thinking along the lines of: if everyone else is doing it - they must
be right, so if hardly anyone else is doing it, it must be wrong.
For
myself and my employers, when I evaluate new technologies I always
think about the pros/cons of each. I do risks and costs analysis. One
of the things I look at are support options. Small dedicated
communities with friendly support get higher marks than commercial
professional services. I effectively get more when the support is
freely available and friendly than when it's billed by the hour: I
don't have to justify each call for support to accounting, I get people
who know what it's about not what the call-centre chart says.
When I see a vibrant community that cranks out competing solutions, I get the following messages:
The technology is good enough to excite
Ideas are being explored - I will keep getting better solutions
If one solution is quite what I need, there are others that might be
Bill de hÃora concludes with:
The real
problem isn't that the Python community needs to get its story straight
on the web frameworks front; it's that there is a lot choice which
makes demands on people's attention, and that's not just a problem
restricted to the Python world, or even the open source world.
Why is that a problem? Why is paying attention to the choices a
bad thing? Wouldn't thinking for yourself about your particular
circumstances lead to a better solution?
As an example and a shameless plug, my active open source project Pimki
(3,000 downloads yesterday, yay!) is a personal information manager,
note taker, todo lister, diary and whatnot. No other PIM I looked at
gave me what I needed, so I hacked my own. Are there other PIMs out
there? Sure. Have they been around for 20 years? Some yes. Will there
be other solutions after mine? Without a doubt.
Why should
those solutions be merged with my project, or vice versa? All these
solutions have their own user community, people who find those products
particularly helpful (10+ downloads a day is surely not just my mum
trying to make me happy - I estimate a few hundred regular users). Should any of these users be stranded, just
because some others can't or won't decide? Why, when I have something
that suits my and my users needs, should I abandon it and start
customising another tool to be what I need, effectively competing with
others pulling it in opposite directions? How will my or the other
tools' users benefit? As I started above, my itch is different to your.
There is no One True Way of scratching them. Think for yourself about
what best suits you, don't just wait for the party line.