Also D objects have a different lifetimes & requirements, which complicates things ( see https://dlang.org/spec/cpp_interface.html#lifetime-managemen... )
Carbon appears to be auto-generating bi-directional bindings, and since it has the same memory model has no such awkward interactions between non-GC'd and GC'd worlds like D does.
Does Carbon actually solve these issues, though? It would be great if it did, but they don't list complete interop w/ C++ as an actual goal of theirs, only enough to make it practically viable for development.
1: "For example, C++ and Carbon will use the same memory model." https://github.com/carbon-language/carbon-lang/tree/trunk/do...
As far as I can tell, there hasn't been progress in untying the stdlib from the GC - https://github.com/dlang/projects/issues/56
Rusty syntax is objectively superior to almost everything else we've come up with, there's no reason it shouldn't be copied.
Those objective criteria of superiority being?..
Consider this C++ code:
Foo bar();
A programmer could make simple mistake thinking that is declaring a variable of type Foo. Carbon eliminates this by having explicit keywords for variable and function declaration. (This style is much more Rust based than C++) fn bar() -> Foo;
var bar : Foo;
It makes parsing easier for both the users and maintainers of the language.If that is Rust's entire syntax advantage, it isn't a very big one.
C++'s most vexing parse issue ceased to be a concern around a decade ago with the introduction of uniform initialization.
Templates
So, for those thinking “Rusty syntax is objectively superior to almost everything else we've come up with” (I don’t, if only because I don’t believe the syntax of programming languages can be compared on quality without considering the audience), what syntax do you believe it not objectively superior to?
You mispelled "subjectively". Rust is a hideous looking language, despite its many other benefits.