October 10, 2015
On Saturday, 10 October 2015 at 18:07:02 UTC, Eric Niebler wrote:
> If I implied that I believe that D ranges were based on Boost.Range, then I apologize. I don't believe that. I suspect (but don't know) that ranges in D were independently invented without knowledge of the long history of them in C++. Which is fine except for the claims that C++ is playing catch-up. It's not.
>

Ho come on, that's pretty obvious that C++ is playing catch up with all the new goodies there are in modern programming languages (which includes D, but not only). There is nothing wrong with it.

This is why the dev cycle went from eternity between 2 versions to few years. The talking point of the C++ inner circle has been super weird to say the least. It is like admitting it would be a supreme shame, while it is in fact the sign of a community that which to bring the best to its users, something nobody should be ashamed of.

>> 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.
>
> \e

This is where you get it wrong. Looking at what others are doing and adopting the good ideas is the characteristic of a language community that is focused on improving the language rather than participating in some ego battle.

There was no disparagement of your work as far as I can tell. The fact you choose to take it that way is what elicit this conversation in the first place.

October 12, 2015
On Saturday, 10 October 2015 at 22:06:31 UTC, Andrei Alexandrescu wrote:
> 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.

You've already published the background for your library approach here:

http://www.informit.com/articles/article.aspx?p=1407357&seqNum=4

Which basically states the foundation: GoF iterators + STL. So you've already killed the novelty game yourself.

GoF patterns is just an attempt to describe _common_ patterns in software design. Stepanov "C++ pointer-iterators" was an attempt to break away from the heavier GoF iterators (which D calls ranges) with something more lightweight.

If one tries to enumerate all kinds of types of iterators one will end up with a combinatorial explosion, so much for generality. Stepanovs approach was probably also an attempt to get away from this combinatorial explosion by providing pointer-semantics instead.

One of the most important and convenient iterators (which C++ fails to deliver) are what GoF calls "roboust iterators": iterators that allow deletions. To get there safely and conveniently iterators have to be made a language feature, since it requires static analysis in the general case, IMO.

Want to innovate? Provide language support.

October 12, 2015
On Monday, 12 October 2015 at 07:08:19 UTC, Ola Fosheim Grøstad wrote:
> One of the most important and convenient iterators (which C++ fails to deliver) are what GoF calls "roboust iterators": iterators that allow deletions. To get there safely and conveniently iterators have to be made a language feature, since it requires static analysis in the general case, IMO.
>
> Want to innovate? Provide language support.

http://forum.dlang.org/post/hmtj0e$1qmg$1@digitalmars.com
October 12, 2015
On Monday, 12 October 2015 at 12:29:28 UTC, Kagamin wrote:
> http://forum.dlang.org/post/hmtj0e$1qmg$1@digitalmars.com

Meh, library solutions are no good. Insertions and deletions mess up many things that effects performance, including vectorisation.

1 2 3 4 5 6 7 8
Next ›   Last »