Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Why should a programmer ever fork a library for inclusion in a widely used application?

I ask this question because I was reading an article about why Chromium isn't packaged for many Linux distros like Fedora. Apparently its largely due to the fact that Google has forked a number of libraries, modified them, and included them in Chromium. This has driven up the complexity of packaging releases. There are a number of reasons why this can be a bad thing, but how strong a case can you actually make for doing so in a large widely used application such as Chromium?

The original article:

Isn't it usually worth the effort to make slight modifications to your own program in order to use a popular and well developed library?

share|improve this question

In most smaller cases, it would be ideal to rely on separate development on 3rd-party packages as this effectively shares the workload between multiple entities. However, in a large project such as Chromium, they may not want to be dependent on anyone/anything. Therefore, it's conceivable that they want to take everything into its own hands and retain control over all aspects of their project (by further customising existing for their needs).

share|improve this answer
It may also be that they simply want to reduce external dependencies on libraries that may not be present on target users' systems. – greyfade Apr 4 '11 at 23:40

Sometimes, the library doesn't have a feature that you need, but its architecture over-encapsulates things to the point where you can't add the feature in any other way than by changing the code of the library. And if you can't get the official maintainer of the library to add your changes, (or if your changes are highly specific to your app and would not be generally useful,) what else can you do?

No, I'm not the least bit bitter. Why do you ask? ;)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.