Boost logo

Boost :

From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2003-01-21 01:38:28


----- Original Message -----
From: "David Abrahams" <dave_at_[hidden]>

> >> Argument is very different from derision. I think it would be very
> >> foolish to deride Andrei's opinions, which usually have something very
> >> incisive behind them.
> >
> > Agreed, but that is more-or-less what happened. Andrei asked for an
> > example that justified the design. No one could produce one. The
> > best anyone could do was say "it's like the STL, so that must be
> > good," and "we might need the generality if the future."
>
> That's *not* derision, Paul.

No, it isn't. That was just the arguments that were made in favor of the
sequence abstraction. It came off more like "if you think its a bad design,
prove it" and "who are you to say whether or not someone might need it?"
which I consider to be a derisive and inflammatory remarks designed to
belittle an opinion.

> > Once again, I don't want to get into an argument about this
> > particular issue, I'm only pointing out that people tend to respond
> > harshly when their designs (or favored designs) are questioned.
> > Simple as that. I'm not immune and neither are you.
>
> Agreed, but there's no example of harshness here AFAICT.

I know. My only point was that I can see where Andrei is coming from when
he says that he's not popular at Boost. MPL and smart pointers aside, I'm
saying that it comes off that way to me as well.

> > It isn't completely based on political bias, but it is there
> > nonetheless. It is *always* there in some form or another.
> > Incidently, Andrei was flat out told "if you don't like it, don't
> > use it."
>
> You're claiming somebody said that; fine, I believe you. That's not
> "how boost treats Andrei", it's just what somebody said. It's not
> particularly sympathetic, I'll grant you that.

It was said by Aleksey, I believe, but that I'm not trying to point fingers
here--everybody gets frustrated. I'm simply saying that periodically things
escalate to the point where expressing an opinion is considered inflammatory
if it isn't the "right" opinion, and that seems to have happened to Andrei
more than most. I'm not worried about myself here. When I make comments
about design, I usually only consider them to be token responses, because I
am not an expert, while you, Aleksey, Andrei, etc., are.

> > That wasn't exactly addressing Andrei's concerns about the design or
> > attempting to reach any sort of consensus. It was a flatout
> > dismissal of Andrei's arguments. Boost is great at making people's
> > opinions feel unwelcome if they don't conform in certain areas.
>
> Probably true; people don't tend to feel their opinions are being
> well-received when the majority disagrees with them.

That is part of it, yes. The difference is when certain issues don't get
addressed in a reasonable manner. A.k.a. the "justifying example." It was
not Andrei's job to disprove the validity of the design, it was the people
promoting the design's job to show the viability of it. (In any case, the
sequence abstraction is not all of the MPL, and, in general, I like the
library.)

> >> Despite the fact that there's some available evidence that it has been
> >> significant to some people. Who knows whether or not it's
> >> "significant"? It's pure speculation.
> >
> > No it isn't. It is my personal opinion, which is exactly what I
> > said. People actually use Loki's smart pointer, so it isn't
> > speculation.
>
> Sorry, I didn't mean that. What I meant to say was that the best we
> can do about determining the overall significance at this point is to
> speculate (based on anecdotal evidence or whatever).

Okay. ;)

> >> What we do here is to consider the arguments.
> >
> > Yes, and also engage in little "political wars." It doesn't matter
> > what anyone intended. That is the way things come off sometimes.
>
> My experience is that the more people think of it in political terms,
> the more political it in fact gets. I'm just trying to discourage
> that kind of spiral.

I definitely agree with that. The problem is that any major disagreement
seems to escalate into a political battle with both sides taking the
hard-line. At that point, the argument ceases to be about design or
practicality, but more about "winning the argument." I agree, that is not a
good thing, but it does happen from time to time.

> >> With all due respect, that sounds like a knee-jerk reaction to the
> >> fact that there's any discussion or disagreement with your
> >> point-of-view. Most of the discussion about this particular issue has
> >> been very detached AFAICT.
> >
> > Your response in whole seems like a knee-jerk reaction to justify
> > behavior.
>
> What behavior do you think I'm justifying?

There are times when you are "less than diplomatic." :) At some point or
another, everybody does this (including me), so I'm not specifically
targetting you here. Sometimes, when that happens, things are taken alot
worse or in a slightly different context by the person on the other side and
the line between person and opinion starts to blur. Hence, things start to
be taken as personal attacks.

> >> But I don't think I have a fundamental disagreement with Andrei on
> >> this. Really! How can I convince you?
> >
> > Okay, okay. I believe you. ;)
>
> Thanks. It seems to me that if you have misperceived me as
> fundamentally disagreeing about PBSP, you might consider that your
> perceptions about "Boost attitudes" or whatever have also been
> mistaken. At the same time, I guess we can all afford to take more
> responsibility for how our posts come off as sounding.

I have never made an assertion that there is some consistent "Boost
attitude." I'm saying that *sometimes*, for whatever reason, things get out
of hand, and people start taking things worse than they were intended. My
point being that I sympathize with Andrei's synopsis of his "perception"
here at Boost and understand where it comes from.

> OK, I won't. But I also won't admit to *always* pointing the finger
> without self-examination. As a moderator, I feel a responsibility to
> think carefully about the message I'm sending in this forum, so I do
> try to pay close attention to it (not to say that I always succeed).

My whole point, from the beginning of this little fiasco, was that I didn't
think Andrei was coming from nowhere when he said that. I have noticed it
as well--not directed at me, but Andrei. I can't say whether it was
intentional or just misinterpreted, just that I've noticed it. I'd like to
see Andrei officially become a "non-lurker," because I think he has a lot to
offer. I also think that people shouldn't have to stifle their own
viewpoints in order to "get along." The situation now, as I see it, is that
certain design opinions are guaranteed to cause a large ruckus precisely
because of people's biases--but it *shouldn't* be that way. It shouldn't be
the case that arguments like "why is this argument valid now, but not in the
MPL sequence abstraction case" would automatically cause a mini-explosion.
Therefore, I'm attempting to clarify the point--also known as
"running-it-into-the-ground." ;)

> > However, the point being that consensus on some issues will never be
> > reached. We are faced with a question. Is a policy-based smart
> > pointer a good design?
>
> It's too early to say; I don't even know which specific design you're
> asking about. It could be good.

I'm talking about the fundamental concept of a policy-based smart pointer.
Design decisions factored into various policies that can be combined to form
an appropriate solution to an application domain. The exact public
interface itself is not a huge issue (IMHO), nor is the internal
implementation. That is an argument for later should we decide that a
policy-based smart pointer is worthwhile.

[--Incidently, this is the type of area that the MPL could take a cue from
Loki and "Modern C++ Design." Loki justified its existence and
implementation by merging runtime constructs, patterns, and facilities with
compile-time calculation for a very effective display of utility. The MPL
is more purely compile-time oriented, so what it needs for good examples is
precisely something like a policy-based smart pointer implementation.
2c.--]

> > Or is it only a bad design because 'shared_ptr' already exists?
>
> It may not be about "good vs bad" but whether it strikes the right
> balance, or a number of other things. My point is that its too early
> to tell since we're not looking at a design, and showing up with the
> attitude that Boost is somehow predisposed against a policy-based
> smart pointer design is self-defeating.

That was never my point, nor do I think it was Andrei's. I think Andrei's
point was more along the lines of, "just because _you_ don't need it doesn't
mean that somebody else doesn't." Which, is greatly coincidental with the
whole MPL thing and therefore amusing. ;)

> I just think this whole thing is blown way out-of-proportion, and
> worse has a self-reinforcing nature. You may not believe it, but I
> have personally bent over backwards to try to stop this cycle.

I believe you. I am not trying to fight a war here. I am only saying that
I don't think that Andrei was completely off-base, and that we as a whole
can be a little more welcoming--especially to proven experts in C++ design.
In fact, I initially said that I didn't want to take sides in the smart
pointer debate.

> > If so, the standing argument is that "certain people will simply not
> > bother to choose." Otherwise, the argument is whether policy
> > parameters complicate the interface.
>
> Or whether the complication buys enough additional power, or, whether
> it leads to large systems with smart pointer interoperability
> problems, or...
>
> Not saying I buy any of those arguments; just that there are a few
> things to talk about once we have a design to look at.

I don't know if we need a concrete design to look at those questions.
Ideally, we should decide what the negatives are and see if it is possible
to avoid (or minimize) them to an acceptable extent _with_ design.

Paul Mensonides


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk