Subject: Re: [boost] [guidelines] why template errors suck
From: Robert Ramey (ramey_at_[hidden])
Date: 2010-10-04 14:04:04
David Abrahams wrote:
> At Tue, 28 Sep 2010 10:17:39 -0800,
> Robert Ramey wrote:
>> 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.
My view on this is probably best described in Douglas Hofstadter
Godel, Escher, Bach - Chapter II which describes the mapping
of symbol expressions to deeper meaning. This left me concluding
that that it's unknowable what some formal syntax might map to.
And indeed there are many cases where the same formal system
maps to sidely differing domains. (e.g. differencial equations
to systems of springs and weights and compacitors and inductors).
So, although the "semantics" provides motivation and direction
in an intuitive way, it can't be formulized itself.
>> 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.
You're right, you shouldn't have been insulted on anyone's behalf.
> to suggest that he's some kind of charlatan ...
I didn't do that.
> 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.
If it could be done.
> 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.
It's not so much that I don't think that it matters, it's that I think the
minute you try to pin it down, you discover that there are some
ambiguities. When you try pin those down, it gets deeper and deeper.
Using the serialization library as an example. Suppose someone says
"this is OK" there's only one thing, I don't want the library to create
new objects when a pointer is serialized. I want it to just update
the objects pointed to". This is a perfectly plausible point of view
which is consistent with the current syntax of the library. If someone
makes such an archive, should be be considered "non-confoming"
in some sense? If so, how would this be detected and enforced?
Maybe my reservations about the idea of "formal semantics" are