5 ms·
"There are only two kinds of languages: the ones people complain about and the ones nobody uses." - Bjarne Stroustrup
by evmar 11y ago
"There are only two kinds of languages: the ones people complain about and the ones nobody uses."
- Bjarne Stroustrup
- jokoon 11y agoI wish D will be popular in the future. Breaking compatibility with C isn't such a bad thing. Also I think C, C++ and D are easily made compatible with each other (I would not bet on that too much though).
- douche 11y agoI've been hearing about D for at least ten years. I don't think it's going to really break out at this point - it's been sort of lapped in the trendy, new language corner by Go and Rust and whatnot.
- kedean 11y agoWorse, it's been lapped into the 'who cares' corner. D had a burst of buzz for a while, about 10 years ago, but at the time nobody really wanted alternative systems languages. IT got a little support, but mostly people ignored it. Now, you have Go/Rust/Nim jumping into the space and getting lots of Buzz, but if D is mentioned then one of two things will happen: A) "Oh yeah, that language from the mid 2000s. I didn't want to use it then, why would I use it now?" B) "D? Oh it's from the mid 2000's? I wonder why nobody used it? It probably sucks." Even if those statements are false, it's hit the same problem that a 50-year old programmer in the job market is going to hit, age discrimination.
- stinos 11y agoBasically, this! Most of the OP's points are valid, no denying that. But, looking at the myriads of properly working, fast, not 'exploding in your face at runtime', often even beautiful code produced in C++ despite these shortcomings: doesn't really seem like a poblem if one knows how to deal with it.
- stcredzero 11y agodoesn't really seem like a poblem if one knows how to deal with it And that is the downfall of all programming languages/paradigms!
- pcwalton 11y ago> But, looking at the myriads of properly working, fast, not 'exploding in your face at runtime' Does remote code execution due to use after free fall in the category of "properly working" and "exploding in your face at runtime"? I would think it does, and C++ is vulnerable to that like few other languages are.
- dragontamer 11y agoWhy are you using "free" in modern C++ code? That was mostly put in there as a transition from C. Modern C++ users shouldn't be using new / free at all, since shared_ptr (and weak_ptr, its counterpart) and unique_ptr basically cover all the use cases.
- pcwalton 11y agoWhether you actually call "free" doesn't matter. You're falling victim to the "smart pointers/modern C++ is memory safe" fallacy. It is not, for reasons I've elaborated on at length numerous times before.
- dragontamer 11y agoSo are you going to elaborate again or post a blogpost of your points? Its hard to hold a discussion if the other side doesn't... discuss... things.
- pcwalton 11y agostd::vector<std::string> v; v.push_back("Hello"); for (auto&& s: v) { v.clear(); std::cout << s; // use after free in modern C++ } There is no reasonable way for a compiler to precisely check for use after free in C++ short of changing the language, and this can be easily proven.
- stcredzero 11y agoIs the usefulness correlated with frequency and number of complaints? (On first consideration, it kind of seems like it.)
- angelbob 11y agoCorrelated? Sure. Directly proportional? No. There are language like PHP that get complaints disproportionate to their usage level, for instance.
- wyager 11y agohttp://andrewvos.com/2011/02/21/amount-of-profanity-in-git-commit-messages-per-programming-language http://andrewvos.com/2011/02/21/amount-of-profanity-in-git-c...
- kazinator 11y agoWhich covers the situation also of people complaining about languages that other people use. :)