What about Specification?
How many times you use third party library that implement any given task such as state machine, logging, Concurrency Utilities, etc’? Eventually you manage to find the right package for your needs and integrate it into your system. Every thing looks great until you find out that the chosen package needs to be replaced for some reason. The problem now is that you need to change your system code in order to use the new package because the new package based on other API and interfaces to interact with.
Now if there were any Specification or Standards (like our Java brothers got) that most or even all vendors follows when they implement given solution it would be much more easy for enterprise guy, like me, to change vendors that supply other solutions for the same problem. If Specification set interfaces and API those changes could be making with minimum changes or even without any changes at all.
Form my point of view the question is who should do it? I’m willing to give my part …