If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

I think C++ is in danger of becoming Visual Basic: language level support for everything and the kitchen sink.

C, and to a great degree C++, is a great language because it defines exactly what is needed to write programs & libraries. The language spec does not clutter things up with every damned API or application that some programmer on the committee has a hankering for.

Leave the non-language stuff in libraries to be provided by people who offer services!

Example: wtf business does a MapReduce API have being in the C++14 spec? MapReduce is an algorithm that can be implemented in C++ - but also in Python, Ruby, PHP, Intercal!

You do have to make a distinction between language-level and standard library. What you mentioned would go to the STL, which you're free not to use. Similar to the huge standard library Java ships with.

You do have to make a distinction between language-level and standard library. What you mentioned would go to the STL, which you're free not to use. Similar to the huge standard library Java ships with.

Fair enough, STL.

Still I think some things don't belong in there, MapReduce again being a good example. People I know who use it build virtual infrastructure on AWS or Google's thing, and do big map reductions, or they do it on academic compute clusters. In every case the dependency of the algorithm's implementation on the h/w platform is quite strong. C++ 'std library' (what, say, GNU used to call libstdc++) or the STL do not normally take account of the platform except in the low level library code: the variability of platforms where big data algorithms are run would I think make a standard implementation difficult, even pointless.

Maybe I'm being a curmudgeon. Still I think 'standardizing' parallelism systems, async operations, and so on, will lead to ossification because either OS makers will write to satisfy C++'s requirement or hardware designers will do it. In either case the implication that there is a 'correct' way to do things will tend to discourage experimentation and innovation.

Language specifications should specify language (syntax, behaviour of operators and such), not verbiage (structure of programs or libraries or OS interfaces).

I agree that the STL is already too bloated, and adding several random generators to it is not helping.

I disagree about the parallelism though - it's great that something finally makes it to a standard, forcing it to be supported everywhere. Right now you have to pick something, binding you to a platform/compiler.

I don't particularly care about being required to use GCC or only getting proper parallelism on linux; windows users of my software can deal with being single-threaded; for VS users, here's a nickel, go get yourself a real compiler.
This doesn't mean I don't welcome a standard for parallelism; I think it's great. Having full support everywhere beats the status quo by a lot.