Considering the recent discussions about KHTML and its fork found in Safari, I thought I'd post about forks.

Are forks good or bad? Yes. One might argue that people should collaborate rather than fork. But doesn't most open source development actually happen by forking? (At least at a micro level) Developers pull their own source tree and work on it (essentially creating a fork) and finally (hopefully) submit changes back to the main line. Forking is a unique feature found in open source licenses and can prevent vendor lock-in.

What are some good forks? Two I can think of are xorg and inkscape. The xorg fork was sparked by a change in the license of xfree86, but the fork had been brewing for a while. Though licensing was an issue, the bigger issue appeared to be that those who had commit rights to the tree refused to commit new features developed by others (even though they were useful). Xfree was not just stabilizing it was becoming stagnant, and it's developers disgruntled. With the xorg fork, the codebase is open for the distro engineers and others the commit fixes and add improvements. Xorg appears to be moving much faster now after the fork. And users have moved on with them.

Inkscape is a similar story. It is a SVG editor that was forked from sodipodi. Work on sodipodi had slowed down but inkscape developers not only had a different vision for the end product, they wanted to implement it in a different language (c++ instead of c). Inkscape quickly added features after the initial fork and has been releasing often and early ever since. The capabilities of inkscape have grown in leaps and bounds. In the meantime, sodipodi hasn't had an update in over a year (they seem to be more focused on flag clipart).

In both the case of xfree and sodipodi, it appears that development has slowed since the fork. Why? Developers and users (and distros) jumped ship to the more featureful (or insert your favorite reason maybe it's better licensing, friendlier developers, better gui, etc) fork. So apparently the fork was bad for the original products. On the other hand these forks were a net positive as they caused an infusion of features and developers to the new forks. (That might have something to do with the leadership and outreach of the new project maintainers).

Forking can cause an increase in features as well as user base, and can be "good" for open source. The KHTML fork doesn't quite fit in here since it currently isn't even compatible or usable on linux. KHTML cannot at the moment drop it in Safari's renderer as a replacement. Possibly in the future, with help of Apple it might become a reality. Or both sides can maintain their own fork (which is useful (though arguable less so) since both code bases are open and developers can gain glimpses of insight from the other's code even if it doesn't patch cleanly). Any other projects that are "good" forks? What causes them to be "good"?