On Saturday, 24 September 2016 at 18:11:25 UTC, Brad Anderson
wrote:
On Saturday, 24 September 2016 at 03:39:00 UTC, Martin Nowak
wrote:
A somewhat lengthy but very interesting talk about the
tradeoffs for language design and evolution.
[CppCon 2016: Bjarne Stroustrup "The Evolution of C++ Past,
Present and
Future"](https://www.youtube.com/watch?v=_wzc7a3McOs)
In particular the part about direction
https://youtu.be/_wzc7a3McOs?t=51m29s, and the section about
tradeoffs
for new features
https://youtu.be/_wzc7a3McOs?t=30m16s.
Relevant is this list of C++17 features (many of which already
work in popular compilers).
http://stackoverflow.com/a/38060437/216300
Well if you follow the argumentation of the talk, they are not
relevant, none of them are enabling features, most are syntax
sugar.
I've got to admit, the D side of me is jealous of a few things
on this list.
Comparing pointless feature lists really isn't that interesting,
but figuring out how to do relevant features is.
Structured bindings
Somewhat undecided about this. Better support for multiple return
values would be nice, but tuple fixes most of the needs.
Kenji's full tuple proposal also included pattern matching, but
is that more than a functional programming abbreviation of
if-else?
init ifs (one of those "why did it take so long to come up with
this?" ideas)
We removed those from D, didn't we?
stackless coroutines look nice too.
They aren't, but they are indeed nice, and we should consider
some async/await support for D as well. For I/O bound stuff
Fibers are performant/resource-friendly enough though.
Cheap coroutines can efficiently connect ranges with trees, very
nice