| The "Dart plan" vs "TypeScript plan" comparison is shown at 1:33:50 in the talk: > "Dart plan" - Competitive/successor 10x improvement > New creation > Limited interop, relies on wrapping/marshaling/thunking... > Competes with standard (e.g., different modules, different generic constraints) > Evolves independently of standards committee - far fewer design constraints > Needs to bootstrap a new ecosystem > "Typescript plan" - Cooperative/compatible 10x improvement > Every .js file is a valid .ts file, add 1 class and see benefit > Lowers to standard .js, 100% seamless compat with all JS libraries > Cooperates with the standards committee (ECMAScript) > Brings evolution proposals to standards committee > Leverages entire existing ecosystem - works with all JS implementations & tools Carbon is an example of the "Dart plan". Some quotes from Carbon's "Interoperability philosophy and goals" page (my emphasis): > The C++ interoperability layer of Carbon allows a subset of C++ APIs to be accessed from Carbon code, and similarly a subset of Carbon APIs to be accessed from C++ code. > The result is that it will often be reasonable to directly expose a C++ data structure to Carbon without converting it to a "native" or "idiomatic" Carbon data structure. Although interfaces may differ, a trivial adapter wrapper should be sufficient. > There should be support for most idiomatic usage of advanced C++ features. A few examples are templates, overload sets, attributes and ADL. > Non-goals > Never require bridge code > Support for C++ exceptions without bridge code https://github.com/carbon-language/carbon-lang/blob/trunk/do... |
Carbon is following a plan much more analogous to Kotlin -- we even say that on our site very explicitly.
The "subset" of C++ APIs you emphasize is only about there existing some long-tail esoteric parts of C++ that may be used rarely enough to not worry about. Everything that people use we'll need to support here. We think about interop constantly and are designing it into every aspect of the language.