Shout out to D at cppcon, when talkign about ranges.

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Sat Oct 10 15:06:30 PDT 2015


On 10/10/15 9:06 PM, Eric Niebler wrote:
> On Saturday, 10 October 2015 at 06:15:10 UTC, Andrei Alexandrescu wrote:
>> On 10/10/15 12:58 AM, Eric Niebler wrote:
>>> To be honest, this whole conversation is kind of funny to me. It
>>> reminds me of the Bugs Bunny cartoon where Marvin the Martian plants
>>> his flag on Earth and says, "I claim this planet in the name of
>>> [Digital] Mars!" We Earthlings respectfully disagree. :-)
>>
>> Only it's the other way around, which makes the matter quite ironic.
>> You wrote:
>>
>>> P.S. I see lots of people here assuming that C++ is playing catch-up
>>> to D because D has ranges and C++ doesn't yet. That is ignoring the
>>> long history of ranges in C++. C++ got ranges in the form of the
>>> Boost.Range library by Thorsten Ottoson sometime in the early 00's.
>>> Andrei didn't implement D's ranges until many years after. The ranges
>>> idea is older than dirt. It's not a D invention.
>>
>> I think it would be a bit of a stretch to describe D ranges as
>> derivative of Boost ranges.
>
> If I implied that I believe that D ranges were based on Boost.Range,
> then I apologize. I don't believe that.

Well the simple fact is then that P.S. has done an awful job at 
conveying your point.

> I suspect (but don't know) that
> ranges in D were independently invented without knowledge of the long
> history of them in C++.

Well that's easy to figure. "Iterators Must Go" at 
https://archive.org/details/AndreiAlexandrescuKeynoteBoostcon2009 
starting around minute 1:01:50 mentions "Ranges are not Boost ranges. 
They're very different". Same talk at 1:02:34 describes how Boost and 
Adobe defined their own ranges ("Boost and Adobe did make an interesting 
step in a good direction, however things must be taken way further than 
that." So there was knowledge of said long history of ranges in C++. Far 
as I can tell "Iterators Must Go" was immediately and universally 
recognized as a turning point in how people approached getting work done 
using ranges.

(Existing work I only found out recently: Matthew Wilson did define 
ranges as a generalization of D slices; his work was not based on C++ 
idioms, and made no inroads in the C++ community. His work _is_ strongly 
related to today's D ranges, I ought to have found that, and it is my 
mistake to not have.)

> Which is fine except for the claims that C++ is
> playing catch-up. It's not.
>
>> Anyhow, it's best for us all to focus on doing good work instead of
>> pettily fighting for irrelevant credit.
>
> I only jumped in when I saw some disparagement of C++ and my work which
> (IMO) was both
> petty and wrong. I would very much like to drop this and get back to
> productive work.

Eric, I don't know about others but I respect and like your work. I 
appreciate its originality, too. What I see here is a simple case when 
someone said something wrong and got his behind appropriately handed on 
a dish constructed of a precious metal.


Andrei



More information about the Digitalmars-d mailing list