Some time ago, Libroscope (a news site in French about Free Software) published a benchmark (in French) of the openness of 23 software projects. They defined and used the following 10 non-technical criteria:
- Does the project use aggressive marketing methods? (e.g.: make a Google search and compare the number of advertising pages with the number of technical / functional information pages)
- What is the software license?
- Are sources available?
- Is the version control (CVS, etc.) repository readable by anyone?
- Are there public archives of mailing lists?
- Is the bug tracker publicly accessible?
- Are external contributions welcome?
- Is the project based on open standards and technologies, or on proprietary ones?
- Is there a “developer-oriented” documentation (e.g. APIs) publicly available for anyone?
- Misc. (e.g. decision making is not public, or essential features are implemented in proprietary plugins…).
How well does the Erlang/OTP project do according to these criteria? Here is my (highly subjective) opinion:
- OK: The Erlang/OTP community is essentially a technical community. Ericsson does not do aggressive marketing.
- OK: The license (EPL) is a copyleft Free Software license.
- OK: Yes, all sources are available.
- NOT OK: There is no way to access the current development code, althoughsnapshots are published more or less regularly between releases.
- OK: Yes, mailing lists archives are public.
- NOT OK: There is no public bug tracker. For bugs reported by external contributors, though, the erlang-bugs mailing list archives may be considered as sort of a bug tracker.
- OK: Yes, contributions are welcome.
- OK: Yes, Erlang/OTP uses a lot of open standards: ASN.1, SNMP, etc.
- NOT OK: Yes and no. All public libraries and APIs meant to be used by developers are very well documented. But the interpreter internals lack documentation. For instance, where to find information about the implementation of the garbage collector?
Result: Erlang/OTP’s development process is only “70% open”. I really miss access to the repository and to the bug tracker, and I also miss documentation about the interpreter internals.