of Sock Puppets and Straw Men

David B. Held dheld at codelogicconsulting.com
Fri Nov 23 20:02:01 PST 2007


Kris wrote:
> [...]
> As for this weird thing with the sock-puppet, I admit to being entirely 
> bemused until you owned up to it. Then I wondered if that might be a 
> double-blind post, but the one above does appear to be you. FWIW, it seems 
> sad that anyone would attempt to manipulate or subvert the ng like that ... 
> is it /really/ that important? You call that a 'prank', while I have to 
> wonder if such behavior isn't grounded in malevolence instead. Trolling is 
> bad enough, but what you claim to have done is surely several steps below? 
> Yet, here you are chewing out Jeff N over some token semantic distinction. I 
> don't get it. That does seem a bit hypocritical doesn't it? Why don't you 
> have a go at me instead? Or, did you perhaps think JeffN was me?

Well, the double-standard here is quite amusing.  Both of you accused 
someone else of deception and trickery when the most obvious reading of 
the "sock puppetry" does not lead to that conclusion.  On the contrary, 
the puppeteer was most likely insulting Janice as well, which means that 
you two were feigning stupidity, adding insult to injury, and then 
making light of it by dismissing your claims as "speculation".  Well, 
obviously, you haven't been a victim of such tricks yet, so it is easy 
for you to blame the victim (which is what you did, let's not mince 
words).  However, I notice that once Jeff was a victim, he had a wholly 
different reaction to the situation and did not sit around waiting for 
someone to accuse *him* of sock puppetry (even though that would be just 
as silly as both of your accusations).  In fact, Jeff highlighted with 
his strong words just how serious an offense it is, and now you, though 
not being a victim, are merely emphasizing Jeff's point: being the 
victim of an anonymous attack really sucks, in the way that a hit-n-run 
sucks...you can't even strike back at your attacker.  How is it that an 
*anonymous* person can attack a member of the community, and you have 
the right to *accuse the victim of being the attacker*, but as soon as 
you have a suspect in sight, it's *obviously wrong to accuse the 
victim*.  *That*, my friend, is a double-standard.

Was it "malevolent" to demonstrate this point?  No more so than it was 
for you two to blame the victim, which is an all-to-common sociological 
reaction to crimes in which the suspects have gotten away scot-free. 
The reason I targeted Jeff and not you is because you at least had the 
decency to retract your accusation after Janice protested innocence, but 
Jeff was not so forgiving, despite having not enough evidence to convict 
a squirrel of burying nuts.  I have participated in enough electronic 
social media to know that false-flag operations are the dirtiest tricks 
of the game.  It *really* sucks to be a victim; and thus, accusing the 
victim of being the perpetrator is what I consider to be particularly 
"malevolent".  Since you seem to not have the taste of being a victim 
yet, I can still pull out my sock puppet; and this time I'll be clever 
enough to post through the web interface...then I'll lay an old 
blame-the-victim trick on you and let you decide which is more 
malevolent...blaming the victim or exposing the hypocrisy of doing so.

> Also, I will admit that I have wondered why you made that analogy between 
> Boost and Tango, since your message appeared to be saying "Hey, the Tango 
> guys say Yo! Put up or Shutup!" which really couldn't be further from the 
> truth. Heck, there's even a long recent thread on toString vs toUtf8 in this 
> regard.

Obviously, Tango is written by more than one developer, not all of whom 
express the same attitude towards commentary on the library.  The 
difference is in challenging critics vs. justifying your design 
decisions to critics.  Good library authors can disarm their critics 
with a good explanation of the design decisions, while authors outside 
of that set don't feel that justification is necessary, because they are 
the ones who put their hard work into it.  Not all criticism is 
justified, and some of it is simply bad, but the way it's responded to 
makes all the difference in the world.

It reminds me of the interviewing process at work.  Some candidates 
simply refuse to answer simple coding questions, because it is "beneath 
them".  Well, maybe it is, but that's all the more reason to give a 
quick answer rather than rejecting the question on principle.  Without 
any answer at all, it's impossible to tell whether the question really 
is beneath the candidate, or they are just stalling because they can't 
answer it.

When a critic says: "You should change X", you can say: "No, you're 
wrong.  That's a matter of taste and I can't please everybody" or you 
can say: "The reason I chose X was because given the alternatives, it 
gave us the most flexibility as library authors.  Here is what I 
mean..."  Maybe "You should change X" is a stupid criticism that isn't 
worth your time to respond to.  Or maybe it's not.  If you have a 
justification at the ready, it makes you look all the more knowledgeable 
than protesting artistic license.  If you present the attitude that the 
criticism is worthless, then other users begin to wonder whether X was 
actually designed or was merely an accident.

My point is not that Tango is bad (though perhaps your 
self-congratulation on it is a bit generous).  I haven't seen enough of 
Tango to say whether it is or not, and the parts I have seen seemed 
reasonable to me.  My point is that some of Tangos authors are more 
diplomatic than others; and whether you feel that is fair or not (to 
have to suffer fools, from your perspective), the reputation of Tango as 
a piece of work is affected by the attitudes of its contributors (the 
point I was trying to make, as delicately as possible).  On the other 
hand, I don't have any user-visible contributions to D, so I'm not 
jeopardizing anything (the man who has nothing to lose is the most 
dangerous of all).  I happen to think that Sean Kelly is a good 
ambassador of Tango, and if everything I knew about Tango came from 
things he said, I would be predisposed to think it's a pretty darned 
good library.  I suspect a lot of other folks might say the same thing.

> As I pointed out in a reply to your post, Tango is changing in order 
> to have some measure of compatibility with phobos (which you no doubt know 
> of) and, as a library, it was never intended to be compatible in the first 
> place.
> [...]

That's not the point.  The point is that it was clearly designed to be a 
standard library, or it would not have defined things like Object.d.  So 
the whole "never intended to be Phobos-compatible" claim ignores the 
fact that users of Tango are necessarily going to expect a feature set 
similar to Phobos, if for no other reason than that Phobos is the 
official standard library.  So whether that was an original design 
intent or not, the Tango developers would have had to be extremely 
short-sighted to not consider that such compatibility issues would 
eventually arise.  I would like to give you that much credit, anyway.

If Tango merely offered an alternative implementation to Phobos' 
features, then your claim would have merit (like OpenGL is an 
alternative to DirectX).  But the fact that Tango offers a significantly 
*disjoint but overlapping* feature set from Phobos makes it inevitable 
that users would want to eat their cake and have it too (in the way that 
both Qt and OpenGL allow you to draw on the display, and thus both 
feature graphics primitives, but one is clearly more than an alternative 
to the other).

Boost overlaps with but is disjoint from the Standard Library in that it 
offers smart pointers, binders, and numerics.  It could easily have 
said: "Well, Boost wasn't designed to be compatible with the Standard 
Libray, so if you want to mix shared_ptr<> with auto_ptr<>, you're SOL." 
  That would have been just as reasonable as Tango taking that position. 
  But if you look at the interface of shared_ptr<>, you'll see that it 
accepts a std::auto_ptr<>.  You're not telling me that the design of 
Tango wasn't forward-looking, are you?  After all, as you say, Tango is 
now changing to *become* compatible with Phobos...

Dave



More information about the Digitalmars-d mailing list