views:

172

answers:

2

Example: 2 of our top 3 users are working in almost equivalent projects (I don't know them in depth, maybe I'm wrong):

Marc Gravell's Protobuf-Net

Jon Skeet's DotNet-Protobuf

Jokes about Jon Skeet apart, and dreaming with an prideless ideal world (sorry guys, I am not accusing you of being arrogant, is a fact that every programmer must defend his own code), wouldn't it be a great opportunity to join efforts?

I am not saying that the community should decide what an individual must do, I just want you to raise pro and cons of merging projects, and what projects must have to be subject of such analysis.

+1  A: 

Starting a new project without a thorough research of the available solutions and without taking into serious consideration the possibility to join an existing project, is something that the community should frown upon more emphatically. Maybe a programmer's education should include some discussion on the cost of effort duplication.

Having said that, experimenting with different approaches to solve the same problem is healthy, and once a programmer has some toy code, we should thank him for making it available to the public regardless of the existence of similar projects.

I think that the authors should seriously consider a merge if:

  • one design has proven clearly superior to the other
  • one community is being more active than the other
  • both projects share the same ideas on future directions
  • the work required to merge the two codebases is feasible
UncleZeiv
+1  A: 

Merging should happen when it is overall beneficial. For example, if either or both of the projects:

  • Are too weak to survive on their own (not enough active development to keep up with technology changes); or...
  • Could provide good synergy through overlapping (i.e. not fully identical) functionalities.

However, there isn't anything wrong with having two strong projects that both do the same thing - it can help to encourage innovation as they try to be better than each other.

Peter Boughton