http://www.perlmonks.org?node_id=1018763


in reply to Re^6: Real life uses for closures. (update: disambiguation)
in thread Real life uses for closures.

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. :)


Dave

  • Comment on Re^7: Real life uses for closures. (update: disambiguation)

Replies are listed 'Best First'.
Re^8: Real life uses for closures. (update: disambiguation)
by BrowserUk (Patriarch) on Feb 14, 2013 at 20:09 UTC
    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.