top | item 32153320

(no title)

chandlerc1024 | 3 years ago

(one of the Carbon leads)

Success for the Carbon Language requires it to successfully be an independent and community driven project. We may not succeed (this really is an experiment), but we're working hard to engage broadly and early in large part because of this being such an important goal and priority for us.

Projects like this have to start somewhere, but can grow and become community endeavors. We are also already seeing strong interest from other companies and organizations in participating in this experiment.

discuss

order

the_duke|3 years ago

The README doesn't expand on what is probably the most challenging problem: how do you achieve effortless C++ interop without burdening Carbon with all the odd behaviour and memory safety / UB issues prevalent in C++?

In Rust for example, `unsafe {}` blocks are not just "local unsafety". They can freely operate on all memory, so they are infectious and are essentially a marker for "dangerous code below, be extra careful and audit lots".

But if all code can freely interoperate with C++, how do you improve upon C++, apart from relatively isolated features like a better generics system?

To what extend can a Carbon compiler that is deeply aware of C++ semantics mitigate the pitfalls?

IshKebab|3 years ago

C++ has many many issues other than memory safety. For example implicit type conversion, template duck typing, the include system, the very very very complicated name lookup system, a gazillion footguns inherited from C.

You can definitely massively improve upon C++ without touching its actual computation model.

fractalb|3 years ago

Tangent. Absolutely loved your CPPCON talks. Thanks.

gpderetta|3 years ago

while we have you here, may I ask why is it called Carbon? It is because the symbol for atomic carbon is C ? :)

unethical_ban|3 years ago

To make it as hard to search for solutions online as it is for "go".

mivyan|3 years ago

[deleted]