You cannot fork a child
January 15th, 2012 by ravi

I am terrible at metaphors but I am going to ignore that and plough ahead with the one implied in the title of this post, and equate a software product to a baby (highly original, I know). The occasion is a post by Adam Martin lamenting that GitHub is killing Open Source. How? Like this:

This is a gross generalization – and not every project that loses its Author will get this problem – but I’ve encountered more and more “dead” projects on GitHub over the course of 2011.

Of course … the way GitHub is designed, those projects do not appear to be dead. Often they appear to be very much “alive” – there’s tonnes of activity.

But all that activity is going on in radically different and massively incompatible forks. It’s wasted time and energy, it’s programmers fixing the same bugs – multiple times – because they are NOT collaborating any more.

In the case I cited at the start, 100-plus developers have (probably) re-written the same fixes for the same problems.

The problem is very real. And urgent. However, the blame in my view does not lie with GitHub. That they provide, nay encourage forking, and make it difficult to transfer ownership (if I understand Adam correctly) no doubt exacerbates the problem. But the real issue is the frontiersman approach to development, the idea that each one duplicates (forks) the codebase in order to implement a change, postponing the pain of collaboration i.e., merging. Git (before GitHub) merely formalises this model under the auspicies of DVCS.

To emphasise my point, the real problem is not that Git or GitHub enables entropy or divergence. The real problem is not technical, but one of what is central to the effort. Consider Eric Raymond’s Cathedral and Bazaar metaphor in a very different sense. A Bazaar has no central object. It exists, often temporarily, for disparate individuals to assemble briefly to exchange goods and then go their separate ways. In contrast, a cathedral has a central focus. God, if you will (or spirituality, redemption, whatever your religion of choice prescribes). Unlike a bazaar which exists to facilitate free but undirected exchange, the very object of a cathedral (arguably) is to bring people together to a common goal or action.

Or, if you prefer, there is the African maxim made popular by Hillary Clinton: it takes a village to raise a child. The emphasis of the activity is the child and it’s rearing. And you cannot fork a child.

5 Responses  
  • Christophe writes:

    So what (or better, who;) do we blame then?
    And why is the problem urgent?

    (And yes, I agree, it isn’t GitHub. My bet is that there were just as many forks before, the only real difference is they were hidden from view.)

    • ravi writes:

      Whom to blame! The eternal question! :-) I would say it’s whoever made F/OSS an individual achievement activity. Though I used them extensively, I had no clue who the authors of gcc or gnuplot or those earlier bits of Free Software were. If I am right, who moved from a communal development model where the focus was always on the product to one where the focus is on [developer] independence and expression? I admit I am biased, but I think Eric Raymond (and Linus too) have some small part to play in this. A surprising point, I admit, given that it is RMS who is usually accused of fostering a cult of personality.

      • Chirstophe writes:

        Without hard data, it’s hard to say what is really going on. You posit that something has changed for the worst. My guess is that things are mostly just the same as they ever were.

        Publishing open source projects is tough (on various levels), collaborating is also tough. You see less collaboration where I suspect the change is mostly that this lack of collaboration is far more exposed today than a few years ago. Before, people would have their own CVS repository and/or patches for open source software, and these were, by definition, private. Now thanks to GitHub and others, these (tend to be public by default, so that’s what happens, contributing useless noise. What hasn’t changed is that most people won’t bother to submit their changes back to the owner. If anything, I actually think that GitHub and others make such submissions easier, so I would expect some improvement in this respect.

        But change of ownership being harder? I don’t buy it. A while back, I tried (several times, over a period of a year or two) to get in touch with the owner of a defunct project to take it over, never heard back. I see the original domain eventually lapsed, and that the website was eventually transferred to SourceForge, but it’s as dead as ever.

    • ravi writes:

      On urgency, I think this problem of forking a project to death has been growing in leaps and bounds in the last few years, but has been made worse by corporate forking.

      But I am just rambling/speculating here. What are your thoughts?

  • Ahren Code» Blog Archive » How Wired gets it wrong on the problem of code forking writes:

    […] is the converse of that of Adam Martin — to wit, GitHub is killing Open Source! – discussed earlier on this blog). Let us dig […]

Leave a Reply

Leave a Reply to Chirstophe Cancel reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

If you need help with one of my software projects, please click: Using that link, you might even find a previous report of (and solution for) the issue!
»  Substance: WordPress  »  Style: Ahren Ahimsa