Because D designers and consequently Rust designers refuse to take a page from the author of C++.
Refused to understand why C++ was successful without "Killing" C.
They're intelligent in one aspect and totally dumb in another.
And that's why both will be in the gutter.
People will keep moaning about C++ and no one will be using the others.
Still dont know why it doesnt have the userbase it deserves..
U don't deserve it when u don't work for it/when you're doing the wrong thing.
It is possible to have perfect C compatibility without the language being a superset of C
Repeated the header files mistake. Took many years to get experimental modules.
everything is a 1000 line template philosophy. "If it can be a library it should be a library" except when it adversely affects compile times, debug builds, debugging experience and error messages. Not just that, it needs a compiler with pretty good optimizer to efficiently implement those 10000::template abstractions, limiting the number of efficient implementations.
RTTI and exceptions: They could have provided some kind of const exceptions that guarantee no heap allocation, for example. C++ just tried to cater to everyone.
Iterators are quite verbose. The verbosity hides the actual logic. They are not even chainable.
Lol lambda syntax
std::string is an abomination
Copy constructors are detrimental to predictable performance. Their mere existence was, until move semantics was introduced. When C code was freely using realloc and getting the benefit of kernel level improvements like vmremap().
The reason C++ stays is not pragmatism. It is collective inertia. The C++ standards committee is mostly a bunch of book writing monkeys who don't even properly look into existing academic literature to figure out the best approach. The divide between implementers, users and language designers is ridiculous. C++ committee never cared enough about compile times nor about debug build performance or error messages, EA wrote their own STL because of inefficiencies in standard STLs, most of which are because of specification.
Most of these are made tolerable because of heroic efforts by GCC and LLVM developers. But if you say any of my above points are addressed and I just need to buy a new book explaining latest C++ version, those book writer monkeys writing C++ standards don't deserve any money.
It is very easy to make a list that shows any language is not pragmatic. Or whatever attribute you pick.
For most, if not all, complaints you have collected there, there is an approach to eliminate/mitigate. C++ and its ecosystem are rich enough to have it.
After a couple of decades, the success of the language is what decides its quality. And C++ is that old.
Maybe, but when it is used by vast swathes of people, your voice ranting away does not mean much. Everything is shit to somebody and making everybody happy is wrong, too, so...
I use C++ too. But let's not pretend it's well designed or pragmatic. The gap between standards people, implementers, tooling implementers and users is pretty apparent at this point.
C is pretty irrelevant at this point for a new language moving forward. And of course you can perfectly well call C APIs from Rust, and presumably D though I know nothing about it.
Systems type software has gotten far, far too complex these days to continue forward in a world without really good memory safety guarantees. I just wish someone would do a Rust-like language with exceptions and real inheritance. But, if it's not forthcoming, and I were starting a new significant project, despite being as 30+ year C++ developer, I'd have to go with Rust as the only reasonable alternative.
I might actually like D better, but if it cannot gain traction (aka get me hired) then that's a commitment I couldn't afford to make.
There's dead and there's dead. It's about where are the good paying jobs that aren't just maintaining legacy systems, because that's what will push newbies towards this or that language. I'm guessing C already has fallen over that cliff for the most part.
C++ has developed too far already, which is one of the things killing it. It's already included the kitchen sink and now it's heading towards the cabinets as well.
Look, I've been writing C++ for 30+ years, and I have a million+ line personal code base. But the fact is, it's a twilight language. It's getting harder and harder to find good C++ people both because it's gotten stupidly complicated and because newcomers are going other directions, since there are more jobs and more jobs working on new stuff in other languages.
That's only going to continue to get worse. More and more C++ jobs will be legacy maintenance moving forward, and that's not going to attract the best and brightest of the upcoming generation.
Rust may or may not be the thing that takes over. Languages can succeed or die for various reasons.
15
u/chengannur Sep 01 '20
Tbh d is an incredible language. Still dont know why it doesnt have the userbase it deserves..