3 ms·
Many Apache projects are written in Java. Java seems to have a culture of overengineering. Many Apache projects have originated in corporate environments. I h
by taatut 8y ago
Many Apache projects are written in Java. Java seems to have a culture of overengineering.
Many Apache projects have originated in corporate environments.
I have a theory of how the incentive structure in such an environment is pushing towards overengineering in many parts of a software projects, as opposed to an open-source project which is usually much more cohesive as a result of the stewardship of a single person. When a larger team is in charge of developing a project, there's an incentive on each member of the team to signal ability, competence, and their contribution. As such they will try to make use of their piece of the project/their responsibilities as a means of presenting their knowledge, by sprinkling/making use of various techniques which in most cases are not needed for the project at hand => overengineering. To read more about this effect in other fields as well, there's a recent book by Robin Hanson, you might want to check that out.
Also, keep in mind, that even in a corporate environment, it is not uncommon to have a project started by a single person, which usually leads to a more coherent and less over-engineered design.
Also, beware that the above is a mere anecdote, armchair philosophising of mind, which has not been tested at all. I still expect it to be roughly true though.
So that's why indeed some of Apache's projects seem overly complex, IMVHO.