Just one point - the 'Where are your patches' attitude takes for granted that the implementation is more important than the design. This might be good approach at the beginning to bootstrap a library or language - but after it gains momentum then it becomes clear that API design is at least as important as the implementation of those APIs. And if design is important - then we need to accept that design critique is an important part of the Open Source development process.
Lately I have been searching for online API design guidelines - and the results were really rather dissapointing - there aren't many good online resources on that subject (or at least they are not easy to find). But all that I found were stressing how important it is to write use cases and example code using the API before wrtiting the implementation. I wonder what OS projects would accept use cases and example code as patches.
Implementation is a lot less forgiving than design. Therefore, requiring a working implementation is a way to sort out a large amount of (unworkable) design ideas.
True - that's a very good point explaining why the loose coordination of Open Source works so good. But it also has limits - so to reach a next level we need to think how to incorporate design into that view. Maybe if we are more strict with our methods we can make the design also easier to objectively evaluate and sort out those that don't meet the standards.
Lately I have been searching for online API design guidelines - and the results were really rather dissapointing - there aren't many good online resources on that subject (or at least they are not easy to find). But all that I found were stressing how important it is to write use cases and example code using the API before wrtiting the implementation. I wonder what OS projects would accept use cases and example code as patches.
Two links for the interested in API design: my reddit question: http://www.reddit.com/r/programming/comments/8n4ov/api_desig... and my blog post about the findings: http://perlalchemy.blogspot.com/2009/05/api-design.html