
On 10.06.2009, at 17:39, Sid Sacek wrote:
John and Pete,
I do appreciate your insights into the inner workings of the Boost community. I'm not discouraged about the lack of interest in my suggestion, but I was somewhat surprised. Boost libraries are one of those things that make life better for programming engineers. I believed that was the unwritten philosophy behind Boost, to "Make Life Better." Extending that philosophical notion, the Boost libraries would also know about the shortcomings of compilers and operating systems and help to improve their performance as well, simply because it "makes life better."
I suppose I must have been mistaken about that... perhaps not everybody in the Boost community has feelings of magnanimity and charity.
I think you are suggesting the wrong intentions here, which feels a little bit insulting. A small disclaimer: I picked your mail to reply, but it's also a general remake concerning the recent discussions on this list. I think you know what I mean :) So, please don't take it too personal as the answer might be a bit long for such a small insult. As maintainer of the Boost.Operators library and long-time Boost user and contributor I don't think we lack "charity" or something. The crucial point to understand what we are doing is this: We need to *balance* interests. What you and others (Christian S.) seem to miss is the fact that you can not just solve one problem and create another. Especially if that means to put the burden on other people. #pragma once is controversial because it's *not* just a no-brainer which "Makes Life Better.". Granted, it may make your life better. Even that of other VC++ users. But it creates more maintenance work, as we still need include guards for those compilers that don't support it, so the code won't get simpler, it will become more complex. It might also introduce new bugs for headers that may be included multiple times. If you use configuration macros, you need to include the configuration headers for each header that has an include guard/#pragma once. Increases compile-time, complexity, ... Coming from a VC++ perspective, you might not be aware of the drawbacks (because you *replace* your include guards with #pragma once) and that's OK, but please don't imply malice if we don't agree to your suggestions and ideas immediately. And please respect that fact that all perspectives need to be considered. We aim to solve all problems and drawbacks involved, and this is probably why it's so much work and why it is so hard. We don't compromise easily, which sometimes might look unhelpful. We nitpick on details, we explicitly try to find the holes in your ideas, etc. OTOH, I think this is what creates Boost's excellence. This is why Boost produced so many incredibly valuable things that even become standardized. It's the crucial difference to other libraries. That said, ask yourself: What could help to move the idea/suggestion on? How can you address/solve the drawbacks others see? Could we somehow combine include guards/#pragma once via macros to automatically make sure inconsistencies can't occur? What else can be done? Generally: Be constructive, improve you ideas/suggestions. That's the way to successfully participate in Boost, not by implying malice to others. Best regards, Daniel