The status quo is not working.  There are way too many questions on
the user list and on irc about problems with writing Thrift code, even
when well-maintained clients exist for their language of choice.  And
that's just the users who were motivated enough to ask instead of
tweeting that thrift sucks and giving up.

I think driving people to a real client is primarily a problem we can
solve with cleanup of the wiki and web site.

A harder problem is that Choice Is Bad from a user perspective.  We
shouldn't be making people evaluate Hector vs Pelops, FluentCassandra
vs Aquiles, phpcassa vs SimpleCassie before writing their application.
 At the time they need to make this decision they have the very least
amount of experience with Cassandra on which to base their evaluation;
we should be guiding them to a sensible default.

We are failing our users if we make them click through to the version
control history to see whether phpcassa is more actively maintained
than simplecassie.

It's a vicious cycle, too: since there are no "official" clients,
people are quicker to write their own instead of contributing to an
existing one, leading to more proliferation of (often) half-baked
clients taking up space on the wiki page.  We're just getting started
on this process for 0.7, but take a look at how 0.6 ended up:
http://wiki.apache.org/cassandra/ClientOptions06.  Over half of those
are abandoned now, but a new user would have to do a lot of spelunking
to figure out which was which.

Moving clients in-tree would solve this, and the problem is bad enough
that I almost wrote an email proposing that, but I would really prefer
to avoid subjecting clients to our PMC, voting process, ticket
tracking system, etc.

Instead, I think we we should aggressively curate the ClientOptions
page: pick an official client for each language, and move the rest to
an AlternativeClients page.  This wouldn't be written in stone; if
someone wrote a Twisted client that he thinks is better than Telephus,
we can have a discussion on whether to move to the new one.  But we
need to have a default choice to take the pain out of getting started
with Cassandra.

-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com

Reply via email to