back to article Coders grill Herb Sutter on future of C++ at Microsoft

"The world is built on C++ and so is Microsoft," proclaimed Herb Sutter at Microsoft's Build conference last week in Seattle, Washington. Sutter is chair of the ISO C++ standards committee and Microsoft's Visual C++ language architect. Native code is currently ascendant inside his company, with C++ prominent in SDKs for …

COMMENTS

This topic is closed for new posts.
  1. hplasm
    Meh

    Hello?

    "...World..."?

    Doubt it.

  2. Spoonsinger
    Coat

    "We are very happy with reference counting"

    I like reference counting. It makes me feel like a manly man type programmer. IGMC.

    1. JOKM
      Thumb Down

      Re: "We are very happy with reference counting"

      Points and laughs.

      So glad I don't suffer from those 'where are my keys, wallet, bollocks' style bugs anymore.

  3. Joerg
    FAIL

    So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

    Please... really.

    Visual Studio they messed it up too due to all the Metro nonsense at Microsoft.

    Metro is the worst thing ever.

    Way worse than .NET (the Microsoft Java clone, way more messed up than Java itself).

    1. Bronek Kozicki

      Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

      Visual Studio does not force you to write "Metro" applications. Want free? There you go.

      For one I welcome increased compatibility with C++11 and hope that remaining features (deleted and defaulted functions please, and "rvalue for *this" too)

      1. Anonymous Coward
        Windows

        @Bronek

        Problem with the VS 2012 Express stuff is that you're still somewhat tied to Windows 8, which is something I'm really not looking forward of using.

        So instead of that stuff I'd sooner recommend grabbing one of the VS 2010 Express versions instead. Works excellent on both Windows 7 or Windows 8 (if that's your thing).

        You don't even have to deal with the "Desktop version" nonsense (personal opinion) but instead can focus on language; are you going to use C#, VB or C++ ?

        1. Bronek Kozicki

          Re: @Bronek

          Oh I forgot to mention it - CTP also adds support for running applications on Windows XP.

          Should have been mentioned by El Reg, really.

          In case you mean that I will be unable to run VisualStudio on Windows 7 - duh! didn't see that one coming :( Is it true?

    2. Anonymous Coward
      Windows

      Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

      "Way worse than .NET (the Microsoft Java clone, way more messed up than Java itself)."

      Uhm, you do realize that .NET is nothing more but a framework which can be used to gain easier access to specific Windows components? Its not a programming language and most certainly not a Java clone.

      What you're referring to is C#(.NET); a programming language which can be used to write applications which fully utilize the .NET framework, comparable to the way a Java program is build upon the Java runtime. And indeed; in a way C# mimics Java.

      But don't forget that you can also use Visual Basic as well as C++ to build .NET applications. Heck, MS' own application server (IIS) even provides .NET support for ASP build webpages.

      1. Joerg
        Thumb Down

        Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

        You have no clue what you are talking about, really.

        .NET is a virtual machine just like Java.

        "nothing more but a framework" you wrote there means absolutely nothing that way.

        The C# language for accessing .NET components and programming doesn't mean that it isn't a virtual machine because .NET is a virtual machine, plain and simple.

        That is the reason why .NET apps are so slow and bad compared to C++ ones.

        And that is a good reason why since Microsoft forced video cards/GPU manufacturers to write drivers using .NET the distribution packages became a bloated mess and the number of bugs increased like never before.

        C# and .NET just like Java are suited for not real programmers. Real programmers use C/C++ and in-line assembly at least.

        1. Displacement Activity

          @Joerg: Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

          .NET is a virtual machine just like Java.

          Java is a language, not a VM. Compiled Java code may, or may not, run on a VM.

          1. Displacement Activity

            Re: @Joerg: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

            The thumbs-down is curious. Perhaps you'd care to actually explain to me what exactly is wrong with this statement:

            Java is a language, not a VM. Compiled Java code may, or may not, run on a VM.

            ...?

            Before explaining, you could perhaps look up some Java compilers that compile direct to machine code, or perhaps even open a text book.

        2. VaalDonkie
          Trollface

          Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

          Pfft. Real programmers use a magnet, a needle and a steady hand.

        3. Anonymous Coward
          Anonymous Coward

          @Joerg

          Real programmers code in any given language that fits the task they are given and the platform they need to integrate to. Be it C++, C# VB.NET, Perl, Python etc etc etc. At the end of the day they are all pretty easy to pick up.

          Sticking to one platform is usally the domain of amateur developers. Professsionals who stick to one platform severely limit their employment options.

      2. david 12 Silver badge

        Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

        VB.NET is not BASIC. It looks a bit like BASIC to some one who isn't familiar with BASIC, in the same way that C# looks a bit like C++. But decades of programming BASIC don't give you any familiarity with VB.NET. Quite the reverse: your deep understanding of the way any BASIC will work just makes VB.NET irritating.

        And to continue the thought, ASP (vbscript) is not ASP.NET (CLR).

        Anyway, Dot Net is in no way a "framework which can be used to gain easier access to specific Windows components". It is the framework which is required to achieve access to Windows from the CLR.

        Which is not quite the same thing.

      3. Michael Wojcik Silver badge

        Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

        don't forget that you can also use Visual Basic as well as C++ to build .NET applications

        Yes, and dozens of other languages. VB.NET would be somewhere around my last choice, personally.

        See for example the list at [1]. It's rather idiosyncratic and not terribly accurate (it lists F# only as a Caml implementation, for example, and the information for .NET COBOL implementations is rather out of date), but it gives a sense of the state of play.

        [1] http://www.dotnetpowered.com/languages.aspx

    3. James Anderson
      Happy

      Re: So cancelling Win32 APIs and forcing Metro is "to get back to parity" ?

      C# is actually the "Java clone".

      There are several hundred reasons why it is superior to Java not least the ability to compare strings with the "==" operand rather than the awful aString.equals(anotherString) construct.

      I would not normally consider myself an MS fan. I use Ubuntu with Python or C as my preferred development platform. But must use a variety of languages in my day job which pays the rent (Java, COBOL, C, bash, Rexx, VBA and C#) the only computer language I really don't like using is C++ -- the learning curve is way too steep for anyone not using it full time.

      So all credit to MS for C# and .net.

  4. Anonymous Coward
    Anonymous Coward

    Never understood why the world and his dog don't spend more time making C++ better rather than inventing loads of junk languages. Or at least improve other solid languages that run well and fast.

    Abstraction and virtualisation was possible and desirable on desktops, but on the mobile device you really want as little of that as you can get.

    1. David Given
      FAIL

      Oh, they did

      C++11 is BETTER THAN YOU CAN HANDLE. No, seriously, it is. It's added so many new, better features that's it's now barely usable. For example, user defined compile time constants.

      The idea of improving the language by *reducing* the number of features so as to make it more flexible, consistent and understandable (and removing some of the outright bugs in the syntax) does not seem to have occurred to them.

      1. David Given
        FAIL

        Re: Oh, they did

        Mutter mutter. Use defined compile time constant *formats*. Formally known as 'user-defined literals'. See http://en.wikipedia.org/wiki/C%2B%2B11#User-defined_literals

        (Icon referring to me this time.)

      2. Tom 7

        Re: Oh, they did

        You have a problem with the natural complexity of computing being expressed in a computing language?

        You should try using Windows then.

    2. This post has been deleted by its author

      1. Anonymous Coward
        Anonymous Coward

        People are downvoting this, but probably many forgot what MS C/C++ compiler was before Borland C++ became a serious competitor. It forced Microsft to deliver far better tools (and meanwhile do whatever they can to crush Borland - especially hiring its better employees like Hejlsberg....). Unluckily the current owner of the ex-Borland products is not capable of delivering nothing at that level... and no one else dares to enter such a market.

    3. James Anderson
      Happy

      There already is a "better" C++

      Its called C.

  5. Anonymous Coward
    Anonymous Coward

    what happened with .NET ?

    Am I alone in recalling Microsofts original ambition was a framework that would allow applications to run on hardware independent platforms ?

    1. Ru

      Re: what happened with .NET ?

      You'll have more luck moving a .net application between x86, x64 and ARM than you will with an unmanaged language. If your code is trivial, you can even get it to run on Mono.

      1. Will Godfrey Silver badge

        Re: what happened with .NET ?

        Hmmm.

        Just how trivial?

      2. Anonymous Coward
        Anonymous Coward

        Re: what happened with .NET ?

        No - if you have a common set of API whatever the underlying hardware architecture is you just need to recompile - a PCode/IL just defers the compilation step to execution time. Only kernel code may have to face different hardware architecture issues - and not all of it.

        Windows NT supported Alpha and MIPS also - do you remember?

        Look at Linux and GCC - on how many hardware platform does it compile? C itself was devised to allow for porting operating system easily from an hardware platform to another - as long as you have a compiler for that platform you can run it on it (of course you will need some ad-hoc drivers....)

    2. JDX Gold badge

      Re: what happened with .NET ?

      >>Am I alone

      You mean like how you can run .NET code on Linux through Mono, or Mac through Silverlight?

      1. asdf
        FAIL

        Re: what happened with .NET ?

        Yeah sure go ahead and put a mission critical business app on Mono so you can save on windows licenses and see how long you stay employed. There are plenty of cross platform solutions but .Net is not one of them.

        1. Anonymous Coward
          Anonymous Coward

          Re: what happened with .NET ?

          I know a company that's doing that, sort of. Luckily in the years that the planned release has slipped, Mono has improved to the point where it might actually work. Equally luckily, NIST changed the policy on SHA-1 that originally gave a hard limit of 2010 for the release date.

          1. Anonymous Coward
            Anonymous Coward

            Re: what happened with .NET ?

            Mono has improved to the point where it might actually work

            I wouldn't go that far!

            Plus I'd put money on version 2 being in C++.

        2. JDX Gold badge

          @adsf

          This happens quite a lot. Any problems would be in the quality of the mono implementation, just as the JVM implementation can be bad on a given platform.

          .NET is a cross-platform solution just as soon as the open-source community choose to make it so.

          1. asdf

            Re: @adsf

            >.NET is a cross-platform solution just as soon as the open-source community choose to make it so.

            Which is exactly my point. OSS can smell the trojan horse that .Net has been from a mile away regardless of Microsoft's promises. Thats why most distributions don't include Mono and any apps by default. Until Microsoft explicitly supports .Net on a platform, to use it for anything business critical is just plain stupid. Oracle understands this and is one more reason Java is eating .Net lunch.

      2. Anonymous Coward
        Anonymous Coward

        Re: what happened with .NET ?

        mono also runs on iOS

    3. Tom 7

      Re: what happened with .NET ?

      I remember attending some of the earlier .NET stuff about how the DLL hell was at an end. I loved C# and the VS for it.

      Then they upgraded to .NET 2 and you couldn’t run the two together. Kinda lost faith then.

  6. Alan Esworthy
    Headmaster

    Usage FAIL

    "Still, that is past history."

    *cringe*

    Did you mean "history?"

    1. Anonymous Custard
      Joke

      Re: Usage FAIL

      You'll probably find that Apple or Samsung or the Swiss Railways or someone have a patent on future history.

      I'm sure the USPO would probably approve it anyway.

      1. Oninoshiko
        Joke

        Re: Usage FAIL

        I don't know about a patent, but I'm fairly sure Robert A. Heinlein had a copyright...

        1. h4rm0ny

          Re: Usage FAIL

          Future History? Aasimov has prior art.

          1. Chemist

            Re: Usage FAIL

            Indeed he does and also on something ( I think it was called a calcpad ) that might be a rounded rectangle.

            All from the opening pages of "Foundation"

  7. Ken Hagan Gold badge
    WTF?

    a version 1 release of ARM

    "We have a really mature compiler and optimiser. It's been around for a decade or two, on x86 and x64. Then we have a version 1 release of ARM. You can expect that to get better."

    The Microsoft ARM compiler is not much younger than the x64 compiler. The former dates back to the early WinCE releases, and the latter post-dates the era when Intel were trying to convince everyone that there would be no 64-bit extension to x86. If Microsoft's ARM compiler is immature, it certainly isn't because it is new.

  8. Anonymous Coward
    Anonymous Coward

    Isn't there a CTP on its way soon?

    I'm fairly certain they're pushing out a preview of new C++ features in the near future, with an actual release at the beginning of next year. Variadic templates are on the way, but I don't think that C99 compliance will be advanced at all :-(

    1. JDX Gold badge

      Re: Isn't there a CTP on its way soon?

      I suppose MS simply don't consider C as worth focusing on. Since most C development is done on Linux, it doesn't seem too stupid a decision - they have limited resources and would rather focus on C# and (yay!) C++.

  9. Anonymous Custard
    Meh

    I know Win7 Explorer certainly is

    As the error box that pops up about 1 in 20 kindly tells me before the whole thing crashes in flames before restarting itself phoenix-like.

  10. Martin 37

    a version 1 release of ARM

    They should use gcc for ARM. It's quite good and used by loads of people already.

    1. James Hughes 1

      Re: a version 1 release of ARM

      But even that isn't as good as Arm's (the Company) compiler, which can produce better optimised binaries. MS should just license that.

      1. Matt Bucknall

        Re: a version 1 release of ARM

        There's probably about as much chance of that happening as them basing IE on WebKit!

  11. But it runs on my machine!

    OpenCL

    "But there are no plans for OpenCL, an open standard for GPU and accelerator programming."

    As Direct3D is to OpenGL, C++AMP is to OpenCL ;)

  12. asdf
    FAIL

    So this article all but admits .Net has been a failure (obvious to rest of world) and caused M$ to badly neglect MFC (which they have done) which is still how many pros build windows clients that will run on virtually every modern version of windows (sorry web folks but even HTML 5 is not fit for a fat client). Now much like with .Net and Silverlight they are pushing WinRT which like Silverlight will fail and be deprecated in three years. Hey Microsoft how about fixing MFC, and modernizing it instead of pushing out crap 3rd party add ons like the BCGSoft ribbon stuff which is badly broken. Give up trying to be sexy, you suck at it and get back to making tools real developers will use in the enterprise.

    1. asdf
      Trollface

      managed code lmao

      Managed code has its place but Microsoft was stupid to believe unmanaged code would disappear by now. Just because fresh out coding hacks don't understand how a computer works and can now hack out crap doesn't mean there is not a need for people who do understand how a computer works and can write efficient code to take advantage of that.

    2. asdf
      Trollface

      last rant promise

      All one needs to know about why the BCGSoft ribbon (now named MFCRibbonBar after M$ bought in desperation) stuff sucks can be summed up in the phrase you see the most in there nonexistent documentation, "this topic is included for completeness only". And while I'm at has MSDN online been shit slow for anyone else for last several days?

    3. Anonymous Coward
      Anonymous Coward

      Hmm .Net and C# a failure eh?,

      http://www.itjobswatch.co.uk/

      http://www.itjobswatch.co.uk/contract.aspx

      well not in the UK they aren't!, if you consider the number of jobs wanting these skills, which is what its all about.

      1. asdf
        FAIL

        > if you consider the number of jobs wanting these skills, which is what its all about.

        Well here in the US if that is your criteria we should all be java programmers which is what .Net tried to take down and failed miserably. At least with C++ and Java you are not tied down to one platform and one company unlike C# (Mono hahahaha).

        http://www.indeed.com/jobanalytics/jobtrends?q=java%2C+C%2B%2B%2C+C%23%2C+visual+basic%2C+Perl%2C+objective+c&l=

        1. asdf

          oops

          Sorry misspoke with Java you are largely tied down to one company though everyone tries to deny it.

          1. asdf

            Re: oops

            Wow managed game code? Mono? You really don't give 2 shits about performance then. So in other words your game is a glorified fart app. But at least you can hack it to run all over the place.

            1. This post has been deleted by its author

            2. VaalDonkie

              Re: oops

              XBox?

            3. JDX Gold badge

              Re: oops

              asdf maybe stick to topics you know something about in future; game development clearly isn't one of them. Big fancy 3D titles have been written in managed languages for years.

              I guess you're either a coding dinosaur or you read an article on "Java is slow because it's not compiled" in the 90's once.

              http://unity3d.com/gallery/

        2. Anonymous Coward
          Anonymous Coward

          @asdf

          I use C# because it lets me write 3D game code that will work on Windows, OSX, iOS, Android and the Web (soon to include Windows Phone 8). Yes, it relies on Mono, but the only things of use that are missing from Mono are those things that only make sense in a Windows environment.

          The productivity gain in not having to recode for different platforms is huge.

  13. Anonymous Coward
    Anonymous Coward

    @asdf (again)

    It is a 3D Scrabble game that rotates smoothly on Android with hundreds of active game objects.

    The underlying game engine (Unity) runs in native code on each target platform.

    As an aside, I believe that the greater the degree of rudeness and dogmatism that a person exhibits when discussing a particular subject, the less they actually know about it.

    Your contribution has done nothing to alter this belief.

    1. This post has been deleted by its author

    2. asdf

      Re: @asdf (again)

      Good luck on your upgrade path continuing to work on IOS and Mac OSX a few years from now. As for Android no surprise there as its the most open platform you named. Yes C# has excellent technical merits and has its place. My point is Microsoft badly neglecting C++ and MFC over the last decade is a huge mistake and yet another symptom of the disease that is rotting it from the core out. Losing their big wig in charge of Win8 is yet more reinforcement. Its good to know as many technologies as you can but C# is tied to closely too one company and their ecosystem for its own good. Its too bad really because if its developed by any other company without the massive vested empire it may well have supplanted Java.

    3. asdf

      Re: @asdf (again)

      Also for the record for every one success story about using Mono business wise, I have heard about a dozen people of companies trying it out and giving up as the solution being too flaky or even worse have to yank and re-engineer later. Microsoft dropping Silverlight like a hot potato should have been the wake up call why this is not a good strategy long term as well.

    4. asdf

      Re: @asdf (again)

      Excellent article about M$ views on managed vs unmanaged.

      http://www.i-programmer.info/professional-programmer/i-programmer/4026-the-war-at-microsoft-managed-v-unmanaged.html

      1. asdf

        Re: @asdf (again)

        This one as well.

        http://www.i-programmer.info/professional-programmer/i-programmer/2591-dumping-net-microsofts-madness.html

        1. asdf

          Re: @asdf (again)

          Final last excellent article spam

          http://www.i-programmer.info/professional-programmer/i-programmer/2830-was-net-all-a-mistake.html

          1. JDX Gold badge

            Re: @asdf (again)

            mono is open-source, it doesn't matter what MS do to silverlight.

  14. Displacement Activity

    C99? WTF? What about C90?

    Whatever.

This topic is closed for new posts.

Other stories you might like