BT

InfoQ Homepage News Stephan T. Lavavej on the future of C++

Stephan T. Lavavej on the future of C++

Bookmarks

Stephan Lavavej poses a great question: "What is the future of C++?" 

This question has a finite horizon.  No language can possibly be eternal, right?  (Although C is certainly making a good run for it.)  I don't expect C++ to be vibrant in 2107, or even 2057.  50 years is an almost incomprehensible span of time in the computer industry; the transistor itself is turning 60 years old this year.  So when I ask, "what is the future of C++?", I'm really asking about the next 10, 20, and 30 years.

Stephan provides historical references to a recent paper released by Bjarne Stroustrup and an interview with Alexander Stepanov on the C++ machine model

Then he poses while C++ as a language has maintained a focus on performance the underlying hardware is now in flux due to engineering limitations as outlined by Herb Sutter in 2005 in a paper on the movement towards concurrency and how languages must evolve to meet these new challenges.

In Stephan's opinion:

Among C++'s biggest core language changes will be variadic templates, concepts, and rvalue references.  The first two will make writing templates a lot more fun.  That's great, because templates are a powerful way to produce highly efficient code.  And the third will address one of the flabbiest areas in C++03 - its tendency to make copies of values.

Jared, a commenter, agrees with Stephan but is not confident .NET will survive as long as C++:

Well said, but I do believe C++ will still be kicking in 2057.  In fact I think it will outlive .NET.   (I think .NET will eventually, yet again, be marketing-driven into a new technical entity, but I digress).

Jim Grow disagrees feeling managed C++ has not received the attention of other .NET languages:

It looks like C++ will be put into a smallish corner.  This will be the place a few holdout will run to hide while the rest of the world builds .NET code.  Companies and developers will only go there if it is the last choice because it doesn't fit with the modern tool sets.  Its really too bad because C++ could have been a really nice language for .NET.  Sadly someone had a motive to make sure .NET developers where using some other language.

 Olivier Giroux worries about future C++ memory model assumptions:

The performance issues that dominate with 100+ threads on a single die are very different from those that dominate with 2~8, though you get to see the trend starting there.

With enough threads running the instructions become free, and you'll be lucky to fill the instruction slots you already have.  Very quickly Amdahl's law pins  you at the interface to memory.  In the past we fended it off with L[N] cache designs, but these need more spatial coherence than you're likely to see on average with a super-threaded workload.

So the largest threat to C++'s position in performance is probably hardware that cannot easily be programmed using the memory model assumed by C++.

So how do InfoQ readers feel about the future of C++ as a language?  Is C++ at a tipping point or are its glory days over?

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • C, C++, Java/C#

    by Stefan Tilkov /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    IMO, C++ now targets a problem area somewhere between C and Java/C#, and I can't really see why anyone would not select one of these instead of C++ unless there's already a huge code base that needs to be maintained.

  • C++ Future...

    by Alejandro Espinoza /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I personally think that C++ still has a long time to live. .Net is not a direct competitor to C++ and neither is Java. There has always been a place for C++ developers... Java has been here for some time now, and C++ still prevails.

    I do know that the percentage of c++ developers will be reduced but will prevail.

  • Re: C++ Future...

    by shashwat chandra /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I too personally think that C++ has long way to go..
    C# is just an wrapper around C++ thats what i think.Languages like C# will come and go but the base remains the same.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
Country/Zone:
State/Province/Region:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.