C++ had more of a choice about it.
C++ had more of a choice about it.
This is irrelevant. The design of a language has little bearing on the quality of the error messages from any particular implementation. In particular, the constraints on C implementations in the '70s is irrelevant to constraints on implementations in 2023. There's absolutely nothing preventing the GCC/LLVM/ICC/MSVC developers from adding better error messages to their compilers, and the design of the language certainly isn't one.
Actually, it has a lot to do with it.
It's interesting that your specifically call out that putting source lines in is not good when most modern compilers seem to be moving the other direction and putting them in.
Do you think it could be a preference thing? Would it be good to have the option for the user to turn it on?
Also, thanks for the tip on the spell checker. That is something I'll add. You said they your just used the current symbol table as a dictionary in another comment; that is a great idea too.
How many years have passed since that time?
But large things almost never keep-up with the times.
D didn't replace C++. I wonder if that was related to the single proprietary implementation. The language seems more sensible to me.
Rust is aimed at replacing C and C++. There are others in the same field in various stages of development. Zig and carbon come to mind.
There's an uphill battle where lots of existing code is in C++ and people fear changing it. C was partly dismantled by C++ compilers promising better error diagnostics and being able to compile most C with minimal patching.
I personally think the end is in sight for C++ but the consensus seems to be it'll live forever.
D wasn't Boost licensed when I looked at it as a replacement for C++ about a decade ago. Wiki thinks the backend has been available since 2017. It looks like the source may have been available for longer than that but I missed the distinction between source available and open source if it was. That's how I ended up on the C++ path instead of the D one anyway, seems a credible risk others have the same experience.
We couldn't get the dmd backend open sourced until 2017, but everything else was open sourced.
As the office Rust shill, I'm actually pretty excited about a lot of Herb Sutter's work [1]; I think there's a reasonable argument to be made that a hypothetical C++29 will be as ergonomic as unsafe Rust, with the not inconsiderable benefit of being able to speak the C++ ABI. I don't think large projects like LLVM or Unreal would dream of rewriting to Rust in that time, so people will still be writing it in some form or another.
[1]: My top 3 would probably be cppfront's argument passing semantics, metaclasses, and deferred_heap, in that order. The latter two, IMO, are improvements on what Rust provides in the area.
But Rust brings you OOP-like structures without the C++ hidden machinery, generics (the two main reason people adopted C++), and a lot of code verification. And the language isn't much more complex than C. That combination is very enticing.
I do believe both languages are about to die (C and C++). It's just that when languages die, nobody notices for a decade or so. Even develovers keep getting more numerous for some time, and have their numbers slowly reduce through decades.