(2) another purpose is to be the central meeting ground for discovery and community participation. [...] The problem is that the more competition we have for (2), the less functional any of the competitors are in serving (2).
While this is true, especially for open source projects. I'd rather see a healthy open source community on top of an open source platform than a proprietary one. This for two reasons:
1. Suppose that some features are needed by an open source community. In the case of GitHub, you have to ask and wait until they throw something over the wall. In the case of GitLab, you can write the code yourself, submit a pull request. With a bit of luck, it's in the next version of GitLab.
2. Suppose that GitHub or GitLab as a company becomes evil. This is not far-fetched, look at SourceForge. With GitLab, you could fork the latest community edition and have pretty much the same functionality.
While this is true, especially for open source projects. I'd rather see a healthy open source community on top of an open source platform than a proprietary one. This for two reasons:
1. Suppose that some features are needed by an open source community. In the case of GitHub, you have to ask and wait until they throw something over the wall. In the case of GitLab, you can write the code yourself, submit a pull request. With a bit of luck, it's in the next version of GitLab.
2. Suppose that GitHub or GitLab as a company becomes evil. This is not far-fetched, look at SourceForge. With GitLab, you could fork the latest community edition and have pretty much the same functionality.