Selaa lähdekoodia

Work on wording around interop tradeoffs (#1185)

Given repeated concerns about C++ interop priorities: taking a pass at being more direct about priorities and tradeoffs.

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
Jon Meow 4 vuotta sitten
vanhempi
sitoutus
9c0675d2b4
2 muutettua tiedostoa jossa 10 lisäystä ja 18 poistoa
  1. 5 3
      README.md
  2. 5 15
      docs/project/goals.md

+ 5 - 3
README.md

@@ -60,9 +60,11 @@ We believe Carbon must support:
 6. Modern OS platforms, hardware architectures, and environments
 7. Interoperability with and migration from existing C++ code
 
-Many languages share these goals, and they can often be addressed independently
-in a language's design. For the Carbon project, they are prioritized in that
-order to help make clear what tradeoffs we intend to make.
+While many languages share subsets of these goals, what distinguishes Carbon is
+their combination. For the Carbon project, they are prioritized in the above
+order to help make clear what tradeoffs we intend to make. However, each and
+every goal remains critically important: **Carbon _must_ have excellent C++
+interoperability and migration to be successful.**
 
 Read the [language overview](docs/design/) for more on the language design
 itself, and the [goals](docs/project/goals.md) for more on these values.

+ 5 - 15
docs/project/goals.md

@@ -162,21 +162,11 @@ We believe Carbon must support:
 6.  Modern OS platforms, hardware architectures, and environments.
 7.  Interoperability with and migration from existing C++ code.
 
-The first six of these represent our fundamental goals for the software we want
-to implement in Carbon. However, we cannot simply replace all of the existing
-C++ software and developers. Carbon must be reachable from where we are, which
-motivates the seventh goal around interoperability and migration.
-
-These are expected to be largely independent goals. We cannot give up any one of
-them, regardless of priority, without significant harm to our use cases. This
-means we expect to design the language largely in ways that enable all of these
-goals. However, the priority ordering provides guidance on how to manage the
-conflicts that do arise between goals. When we can tailor the design of language
-features to balance between different goals, we will strive to align that
-balance with this prioritization. When we are unable to find a compromise that
-enables both goals and we have a fundamental conflict or binary choice, we will
-weigh the factors going into that choice based on how they interact with this
-ranking.
+While many languages share subsets of these goals, what distinguishes Carbon is
+their combination. For the Carbon project, they are prioritized in the above
+order to help make clear what tradeoffs we intend to make. However, each and
+every goal remains critically important: **Carbon _must_ have excellent C++
+interoperability and migration to be successful.**
 
 ### Goals in detail