The fork occupies an ambivalent place in the world of open source. On the one hand, it is widely perceived as the worst thing that can happen to a project, pitting hacker against hacker, and dissipating coding effort that could be more usefully applied in a united way. On the other, it is the ultimate test and guarantee of openness: if code cannot be forked, it is not truly open.