Subject: Re: [boost] [guidelines] why template errors suck
From: David Abrahams (dave_at_[hidden])
Date: 2010-10-04 11:58:33
At Tue, 28 Sep 2010 10:17:39 -0800,
Robert Ramey wrote:
> joaquin_at_[hidden] wrote:
> > For our readers' reference, the original proposal is:
> > http://lists.boost.org/Archives/boost/2005/09/93367.php
> > I still think that the approach suggested there is basically sound
> > (some details are missing) and solves all the fuziness around
> > serialization concepts, but alas I didn't manage to get traction
> > with it.
> Well it wasn't a total loss. I was very intrigued with it. And i
> did consider it carefully. I didn't critique it in a definitive way
> as I thought that it would a spawn a long discussion which would
> consume a lot of time and wouldn't change anything. Of course I had
> some other monkey on my back so I wanted to pick my target and I
> decided (out of character perhaps) to let this one go by.
> And I didn't see that this was a question regarding the
> serialization library per se, but rather the whole question of the
> relationship between programming language (or any algebraic) syntax
> and underlying meaning. These questions have been extensively
> and I believe effectively put to rest in a way which supports my
> view that what we can hope for from semantics is limited by factors
> outside outside our perview.
That statement is sufficiently vague so as to be irrefutable.
Unfortunately that also makes it kind of meaningless.
> So, I tended to regard your proposal as like a design for a very
> clever perpetual motion machine which I know cannot work, but cannot
> refute the very clever and intricate explanation of it's inventor
> without a lot of investment of effort.
Maybe I shouldn't have been, but this remark left me feeling quite
insulted on Joaquin's behalf. Nothing in the literature supports the
notion that what Joaquin was trying to accomplish is unachievable, and
to suggest that he's some kind of charlatan just because he put
together a logical framework you haven't got your head around yet
seems uncharitable at best.
What he did is akin to defining what it means for a range to be
sorted, as opposed to merely hoping that some common conventional
understanding of the word "sort" is enough to describe the meaning of
my sort algorithm. That definition allows me to clearly determine
whether there's a bug in my code, or in the comparison predicate you
passed me, based on its results.
Of course, "sort" *does* have a rigorously-defined meaning that
corresponds exactly to common convention, so it's actually much less
important that someone repeat that definition than in your case.
Joaquin essentially gave a rigorous definition to "serialize" and
"deserialize." Maybe you don't think something like that matters, but
for understanding what your library is actually supposed to do, it
matters to me.
-- Dave Abrahams BoostPro Computing http://www.boostpro.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk