Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The "generics" feature of Carbon is a large design effort that needs to be broken up into manageable steps. The first thing we need is a high-level goals document. The goals here reflect the desirable properties that we have discovered as part of considering several alternative generics designs: - Use cases: - Generic programming - Upgrade path from C++ abstract interfaces - Dependency injection - Generics instead of open overloading and ADL - Performance - Better compiler experience - Encapsulation - Predictability - Dispatch control - Upgrade path from templates - Coherence - No novel name lookup - Learn from others - Interfaces are nominal - Interop and evolution - Bridge for C++ customization points Goals are summarized in [this presentation](https://docs.google.com/presentation/d/12yGyu5Pvdag7CJp-_yLVkmbhyvuRIilBTNlkO0LKaHo/edit?usp=sharing&resourcekey=0-JB9yrUO4-6J8-zzGhnIyNg). Co-authored-by: Chandler Carruth <chandlerc@gmail.com> Co-authored-by: Jon Meow <46229924+jonmeow@users.noreply.github.com> Co-authored-by: Matthew Riley <mdriley@gmail.com> Co-authored-by: austern <austern@google.com> Co-authored-by: Dmitri Gribenko <gribozavr@gmail.com>
- Loading branch information