Hey All,

We've also had some discussion about the committer balance status and
barrier-to-entry for shindig and how the trunk is used and I'd like to
re-post my response since it contained a few insights in how the OpenSocial
spec process works and how shindig is used by some:

I do see plenty of random small contributions, but so far no one sticks
around longer then their OpenSocial/Shindig implementation phase. These are
mostly people who are paid to implement shindig and then move on to
something else; Which in a way is easy to imagine because as you know the
social web is fast moving, margins are incredibly tight, and most social
networks are more concerned about competing against the big other player in
the market then they are about contributing to open source. A short sighted
vision perhaps for some of them, but also something I can kind of
understand.

So my hope is more for someone who thinks 'Shindig is cool and I want to use
this in imaginative ways" in a university or free time kind of environment,
or a social site that is making enough money or has the right person to
convince them that they should allocate time for it.

As far as the release cycle and the stability of the branch goes, I can't
speak for the teams who work on Orkut and iGoogle, but my speculation is
that like for any social site, their main priority is to have features out
there that attract developers that will make social apps that attract people
to the site, make sure that things are secure and stable and fast enough, so
that their site can function and grow in a very competitive market.

OpenSocial is a bit of a different animal then most open source projects, we
have an OpenSocial specification process that is completely separate from
Apache Shindig, and in it's current state it evolves very quickly; Not
because the people involved in it (which a much wider range of companies
represented as Shindig has) like new and shiny things but because the social
web is evolving at an incredibly rapid rate.. and there's plenty of
competitive pressure at the same time too, for many it's a situation where
OpenSocial represents the 'web like' way of doing things, open protocols and
standards, with data portability and a place where any one can innovate,
against a platform that doesn't have any of these things.

So the pressure to keep the trunk stable not from Google or any affiliate or
any of the consumers of shindig directly (if it were it wouldn't be such a
big problem:), but more of the market and innovation pace in general, and
from the desire to create an open and social web that anyone, anywhere in
the world can use to develop their ideas on, and making sure that end users
can own their own data and identity by giving them tools and protocols with
which they can. (a great way to learn more about this topic is the archives
from the http://www.thesocialweb.tv/ episodes. Those guys do a lot for the
open social web)

Now as a sanity check we've build in the requirement that any new spec
proposal should have a prototype build before we call it final.. that
prevents great ideas that don't work in practice ending up in the spec
(which is why we now have 0.8.1 instead of the original 0.8:), and we also
love it if we can get some OpenSocial gadget developer feedback and live
experiences before we call it completely 'done'. To facilitate this you *do*
need a stable experimentation tree, a place where you can code up these new
features and put in production on large scale sites

And that, well that very much that conflicts with the idea of having an
unstable trunk.. trunk is where new code should go, but we need the new code
to be stable to complete the feedback loop that is an important factor in
the OpenSocial spec forming process.

How you could combine those 2 concepts, well that's a riddle that I don't
have an answer for either. If that coding was done on an alternative branch,
then the trunk wouldn't see any development (and thus become the new 'stable
branch'), and the experimentation branch would become the new trunk.. in
other words that's only moving the problem around and creating more
confusion for everyone involved.

Now for PHP Shindig these pressures are slightly less (though far from
non-existent), I can afford to have an unstable trunk for a few weeks here
and there since there's no main stream sites driving sandboxes directly from
it, however in practice when ever I do have some instability (like during
the gadget rendering refactoring & templating implementation), I get lots of
complaining and upset mails in various flavors and colors.. since we haven't
had releases and people are used to the trunk being stable, well they are a
bit taken aback when it's not, so there's a cultural problem we're facing as
well.

---- (end of original post to shindig-private)

Since writing that I've chatted with a couple of people about how we might
be able to address this, and one of the ideas I've heard is that maybe we
can move the OpenSocial new spec prototype development to experimental
branches, this should relieve the pressure on the trunk a bit, and might
have the added benefit of no old prototype code that didn't make it into the
spec to still sneak into the release :)

Also, there's some people who would like to see the next OpenSocial spec to
be more of a bug fix with a few small additions rather then a huge major
pile of changes again (it's up to the OpenSocial community as a whole though
to decide), so perhaps some less churn there could make shindig easier to
follow as well.

Anyhow, hope this post provides some insights, and if anyone has any ideas
or opinions, please share them!

   -- Chris

Reply via email to