On Wednesday, 30 September 2015 at 22:51:24 UTC, H. S. Teoh wrote:
On Wed, Sep 30, 2015 at 10:32:16AM -0400, Andrei Alexandrescu
[...]

I watched most of the video (mainly the first half where he goes through the C++ version of the code), and I have to confess I couldn't help noticing just how ugly the C++ syntax is.

This is a key reason I am using D. I really like C++14+boost but that syntax brings me back to D every time.


I mean, overloading operator|() for chaining, seriously? UFCS is
superior any day, IMNSHO.

I seem to recall that in a previous on ranges Niebler said that operator|() was simply available and had a vague notion of chaining thanks to *nix shell. He went on to say it would probably need to change to get through the ISO committee.

I hope it does. If the current plans for overloading operator.() get up I wonder how well it would fit as a replacement operator.


And overloading operator%() for string interpolation, ugh. (Though this one seems to be a Boost thing, not specific to the ranges proposal.)

This is also a Python thing so it's quite prevelant in the wild. I find D's ~ much nicer, although minutely slower to type than %



And this is on top of the usual ugliness of C++ template syntax. Not to mention the RANGE_FOREACH macro (I assume it's a macro), where D's foreach has supported natively for years now. (D has seriously ruined my life; I simply can't bring myself to go back to C++ anymore. At least not voluntarily.)

Also, this seems to confirm that C++ is gradually falling to the position where it's playing catch-up with respect to innovations in newer languages like D and Rust. The fact that ranges are being proposed for the C++ standard library is a big endorsement of D, IMO.

C++ has been playing catchup for the last 10 yrs and it's been an amazing transition for the language.

If ranges are accepted into ISO C++ I can't imagine it would be long before for(auto e:range).

[snip]

One great action item is to backport some of Eric's ideas to the D example. Currently Eric's final code looks nicer than the D code. -- Andrei

Do you have a list of ideas that should be backported?


I really liked the namespaces view:: and action:: because it is immediately clear just reading the code what was lazy and what was not.

bye,
lobo

Reply via email to