Perhaps another point of view will help. I'm the maintainer of RFC 88: Omnibus Structured Exception/Error Handling Mechanism (as at http://tmtowtdi.perl.org/rfc/88.html). My experience of the RFC process was good to very-good; some would rate the process fair to good. I don't think it deserves a poor or an excellent. The mechanism proposed by RFC 88 is *much* better than was the one I started with, solely as a result of the input from those who contributed to the topic. I had a good head of steam up going in, because this is a pet topic of mine, and because we have been using a similar mechanism in-house with Perl 5. But as is often the case, showing the work to others interested in the topic produced numerous good-to-excellent suggestions for both enhancements and for simplifications. In the case of RFC 88, this must be considered to be the overwhelming result. Overall, I think that the single change that would have had the greatest effect on the quality of the whole RFC effort would have been to run the RFC process over six months. I spent over 200 hours on RFC 88, I sent ~150 messages to the mailing list, and the RFC ended up thirty printed pages long. There was hardly time to think. I couldn't have done it if hadn't been the dog days of August during a slow spot in my job. I can understand how those who attempted more than one or two RFCs in the allotted time would have been unable to be so complete in each such RFC. And I understand that such a long period would have produced other problems. RFC 88 began life as a counter-proposal to Peter Scott's RFC 63 (Exception Handling Syntax) initially because I though we should separate exception "objects" from exception handling. I also authored RFC 96 (A Base Class for Exception Objects), to compliment 88, but it ended up being similar to Peter's RFC 80 (Exception Objects and Classes for Builtins) which he published at about the same time. It turns out that Peter and I had quite similar approaches, and so over time he withdrew RFC 63 and became co-author of RFC 88. I withdrew RFC 96, and we delegated the details for builtins to RFC 80 (which is maintained by Peter). So we ended up with two RFCs, 88 on exception handling and generic exception objects, and 80 on how exception objects should be used for exceptions in builtins. I think the process was quite effective here. I think that having a separate (if misnamed) mailing list for "errors" and exceptions was, in this case, effective. Since RFC 88 was based on an existing Perl 5 implementation, it was quite straightforward for us to build a complete simulation of the proposed implementation (modulo syntactic details) based on using C<die> and C<eval> as primitives, and to provide regression tests thereto (as at http://www.avrasoft.com/perl6/try6-ref5.txt). I understand that such an approach to IMPLEMENTATION DETAILS may not be applicable to all other RFCs (but don't underestimate the value to all of being able to point to the code and regression tests and say, "um, yes, it does actually work" ;-) With the prodding and help of Peter and the other contributors, RFC 88 ended up containing quite a detailed review of the issues raised and discussed during the RFC process. We probably would have better results if all other maintainers had simply kept a folder of the mail relevant to their RFC and summarized it before freezing. Note though that at one point concern was raised as to whether or not RFC 88 was simply getting too big, because of all this documentation. There were of course the usual problems inherent in conducting technical discussion via a mailing list (but I developed a thick skin in comp.lang.c in c.1987 ;-) Here are a few notes thereto that may be of interest to archeologists or the designers of the next RFC process (if any). * Not all readers are familiar with every topic. Provide enough introductory explanation of what you are proposing, and why, to help those readers avoid unnecessary "requests for information". Don't put the technical details of a proposal before the explanation, because that will apparently prevent some readers from proceeding to the explanation before "requesting additional information". * A great deal of heat, and some light, was generated by concerns that imposition of RFC 88 in and of itself would change the very nature of what we know as love as Perl. That wasn't the case, but quite some effort was devoted to the matter in spite of that. The lesson is: don't underestimate the importance of the IMPACT section, and if appropriate, state your disclaimers up front. * There was the usual confusion caused by those whose experience with exception handling was limited to its use for error handling, and by those who only had experience with exception handling in one or two other languages. Here again considerable effort was devoted to alleviating those concerns in the RFC. * The usual tension between theoreticians and pragmatists, and between scripters, application developers, and framework developers, was apparent. RFCs would do well to address these issues when they are promulgated. Perhaps if there had been a longer period over which the RFCs could have matured, we would have had more opportunity for "natural" topic architects to emerge, after which they could have merged alternative contributions into a whole, properly covering the issues discussed above and elsewhere. I would have liked to contribute more to the OO topic than just RFC 92 (Extensible Meta-Object Protocol), but fortunately Damian effectively held the architecture chair thereto, so I could relax. Similarly, with more time I imagine more complete proposals for things like functional operations and continuations could have matured. Having said all this, I wouldn't complain about the whole thing too much. I can certainly point to any number of mailing lists where the discussions would not have gone anywhere nearly as well! (And don't forget that all this dynamic tension is part of the fun of lightweight process methodologies ;-) Thanks again to Peter Scott, Graham Barr, Chaim Frenkel, Jonathan Scott Duff, Glenn Lindermann, Dave Rolsky, Corwin Brust, Jim Hoover, and the Software Engineering Research Lab at the University of Alberta, for your contributions to RFC 88. Yours, &c, Tony Olekshy