In the case of C++11, the major compilers already support most of it. g++ is lacking on its regular expression support, and MSVC++ was a little slow with variadic templates, but I think they're implemented now. Most of what is most important is there; move semantics, rvalue references, ranged loops, auto and decltype, modified return value function syntax, reference counted pointers, lambdas, and so on.
But your second point is right on the mark; though everyone's excited to use these new features, often the new features are avoided in the name of backward compatibility, and I haven't a good feel for C++11 features being accepted into newer projects.
I can say that the standard library has been rewritten in most major implementations to take advantage of move semantics, which is a really big win that nobody really sees -- like trie optimization in Perl's regexes, it's just there behind the scenes.
Anyway.... I've taken us way off topic. I apologize for rambling in your thread. :)
| [reply] |
Anyway.... I've taken us way off topic. I apologize for rambling in your thread. :)
Actually, you haven't. The underlying motivation behind my asking the OP question was itself pretty off-topic -- though underlying that is very Perl-related -- and it is my belief that a truly modern (rather than a labeled-modern dialect), computer language like C++11 (or D2 or few others), is the future of Perl.
That is to say, I think that everything that is wrong with Perl5; and all the things that have gone wrong with the previous and ongoing attempts to implement Perl6; are firmly routed in the archaic programming languages and practices that have been and continue to be used to implement their infrastructure:
- Using macros to force inlining -- whether beneficial or not -- instead of inline functions.
- malloc & free rather than RAII;
- The pile'em high, wherever-it-fits heap-based memory use.
- Pointers instead of references;
- Consting & copying rather than move semantics in an attempt to solve the shared state problem.
- Emulating a register-rich cpu in software, atop inherently register-poor, stack-based hardware.
- Non-reentrant libraries, non-PIC, and god-object context encapsulation.
- Code that leaves the requirements of multi-threading to be retrofitted as an afterthought.
Until and unless truly modern coding practices are used to (re-)construct the infrastructure required to support dynamic languages -- Perl et.al. -- they will surely become less and less relevant in a modern world.
So far from off-topic rambling, your bringing up C++11 was right on-topic for the thought processes that led to this thread. Thank you.
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] [d/l] |