Boost logo

Boost :

Subject: Re: [boost] [Review] Type Traits Extension by Frederic Bron - Review summary and decision
From: Joachim Faulhaber (afojgo_at_[hidden])
Date: 2011-05-12 03:45:26

Part II: On Memetic Evolution

2011/5/10 Joachim Faulhaber <afojgo_at_[hidden]>:
> 2011/5/8 Gottlob Frege <gottlobfrege_at_[hidden]>:
>> This, I think, is an important point.  Possibly more important than
>> "spokenness".  I think we, for the most part, have already decided the
>> names of these operators.  By "we" I mean programmers at large.  I
>> mean common usage.  Now maybe it is hard to measure common usage
> I get your point and I think it is a good one. If I understand you
> right you say.
> (1) There is a common usage, that emerged through genetic (or memetic)
> evolution.
> (2) This common usage is the *best choice* for the operator names.
> I continue this reasoning ...
> ... because from the perspective of
> (1) usablility
> (2) memorability
> (3) ease of perception
> (4) least astonishment
> it is the best choice to use those names that *are* THE common sense.
> What I like about this reasoning is that is proposes to let the choice
> be made in acknowledgement of a larger view or context. It is similar
> to what I am proposing. Only the contexts are different. Both
> proposals are claiming that the choice has already been made.
> (1) Tony: The choice is taken by spokenness and common usage.
> (2) Joachim: The choice is taken by the standard and prevailing
> (boost) libraries.
> End of part I. (To be continued ;)

What is the difference between those points of view?
Why are there differences between common usage and the results of
standardization processes or global discussion in the first place?

I think one interesting aspect about those two contexts and their
differences is memetic evolution. There is an interesting book by the
American psychologist Mihaly Csikszentmihalyi: The Evolving Self. See
for a summary.

I've read the book 15 years ago but I remember its very interesting
theory on memes and memetic evolution. Memes are patterns of
information, that emerge, mutate, replicate and evolve, similar to
genes. In contrast to genes that depend on biological metabolism to
replicate, memes use human consciousness or mental energy as habitat.

Like an earworm that you catch because you heard someone singing and
then you pass it on by singing the melody yourself. Earworms can be
nasty sometimes. We may even have earworms of songs we do not really

One of the messages of Csikszentmihalyi's book is, that memes inhabit
our minds and many if not most of them do this beyond our conscious
perception, without us being aware of them. They use up the most
precious resources of human life: Mental energy and time.
Csikszentmihalyi proposal is to look at the memes with awareness,
reflecting on them and to start to decide about the memes we want to
invest mental energy into (e.g. boost discussions) and the ones we
won't (e.g. watching, talking about, thinking about a daily soap).

Looking from the theory of memes, I'd say that spokenness and common
usage of an operator += is a meme, that just evolved without any
reflexion and consciousness out of the sudden necessity to read, speak
and spontaneously name this funny lexeme '+='. Here we automatically
combine two very universal memes: + sign and =sign, not thinking and
reflecting about their adequacy and semantical correctness in the
context of the c++ operator usage. This automatism is even more
obvious with %= where "percent-equal" is so obviously contradicting
the default semantics of this operator in c++.

This might set your (Tony's) statement in a new light

>> I think we, for the most part, have already decided the
>> names of these operators. By "we" I mean programmers at large.

Maybe *no one* has decided this concsiously after thorough
consideration and discussion. Maybe a common usage like
"percent-equal" for %= is just a product of automatic memetic
processing, a memetic artifact . . .

End of part II. (To be continued ;)


Interval Container Library [Boost.Icl]

Boost list run by bdawes at, gregod at, cpdaniel at, john at