Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Friday November 13 2015, @10:24AM   Printer-friendly
from the Obfuscated-Rust-Competition-doesn't-sound-right dept.

In spite of my status and obvious bias as co-creator of D, I'll do my best to answer candidly; I follow Go and Rust, and I also definitely know where D's dirty laundry is. I'd encourage people with similar positions in the Rust and Go communities to share their honest opinion as well. So here goes.

First off, C++ needs to be somewhere in the question. Whether it's to be replaced alongside C, or be one of the candidates that's supposed to replace C, the C++ language is a key part of the equation. It's the closest language to C and the obvious step up from it. Given C++'s age, I'll assume in the following that the question also puts C++ alongside with C as a target for replacement.

Each language has a number of fundamental advantages (I call them "10x advantages" because they are qualitatively in a different league compared to at least certain baselines) and a number of challenges. The future of these languages, and their success in supplanting C, depends on how they can use their 10x advantages strategically, and how they overcome their challenges.

[Another way to look at this is to ask "What is wrong with C?" and then assess how well these languages solve those problems. -Ed.]


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 3, Interesting) by Thexalon on Friday November 13 2015, @01:29PM

    by Thexalon (636) on Friday November 13 2015, @01:29PM (#262616)

    There are basically 2 reasons for this:
    1. There's too much extremely useful legacy code written in it. Think about the prospect of rewriting the Linux kernel in another language, or even converting it to a similar-but-different language, and you'll get an idea that that investment would not be undertaken lightly.
    2. It's still the best known programming language out there. Even among developers who mostly write in other languages, C remains an important second language. So, for example, if you put C in front of a room full of Python programmers, chances are basically 100% that they'll be able to understand what's going on.

    Many many attempts have been made to replace C over the 40+ years of its existence. All have failed. The one that came closest was C++, but that turned out not to be a silver bullet for those situations where objects aren't a great metaphor to be using.

    --
    The only thing that stops a bad guy with a compiler is a good guy with a compiler.
    Starting Score:    1  point
    Moderation   +1  
       Interesting=1, Total=1
    Extra 'Interesting' Modifier   0  
    Karma-Bonus Modifier   +1  

    Total Score:   3  
  • (Score: 1, Insightful) by Anonymous Coward on Friday November 13 2015, @02:31PM

    by Anonymous Coward on Friday November 13 2015, @02:31PM (#262650)

    So, for example, if you put C in front of a room full of Python programmers, chances are basically 100% that they'll be able to understand what's going on.

    You're overestimating the abilities of most programmers. Lots of them know only their toy languages and don't know what's happening in the background. Even something like C would confuse them, let alone assembly.

    but that turned out not to be a silver bullet for those situations where objects aren't a great metaphor to be using.

    So don't use them. It sure is nice that C++ gives you options.

  • (Score: 0) by Anonymous Coward on Friday November 13 2015, @03:22PM

    by Anonymous Coward on Friday November 13 2015, @03:22PM (#262682)

    So, for example, if you put C in front of a room full of Python programmers, chances are basically 100% that they'll be able to understand what's going on.

    I'd think the majority of them would have problems with code using pointers (in other ways than just as references with weird syntax).