Annotated C# strategy

We will keep evolving C# to meet the changing needs of developers and remain a state-of-the-art programming language. We will innovate eagerly and broadly in collaboration with the teams responsible for .NET libraries, developer tools, and workload support, while being careful to stay within the spirit of the language. Recognizing the diversity of domains where C# is being used, we will prefer language and performance improvements that benefit all or most developers and maintain a high commitment to backwards compatibility. We will continue to empower the broader .NET ecosystem and grow its role in C#’s future, while maintaining stewardship of design decisions.

How strategy guides C#

The C# strategy guides our decisions about C# evolution, and these annotations provide insight into how we think about key statements.

"we will innovate eagerly and broadly"

The C# community continues to grow, and the C# language continues to evolve to meet the community's needs and expectations. We draw inspiration from many sources to select features that benefit a large segment of C# developers, and that provide consistent improvements in productivity, readability, and performance.

"being careful to stay within the spirit of the language"

We evaluate new ideas in the spirit and history of the C# language. We prioritize innovations that make sense to most existing C# developers.

"improvements that benefit all or most developers"

Developers use C# in all .NET workloads. Developers build web front and back ends, cloud native apps, and desktop apps with C#. C# enables cross platform applications. We focus on new features that have the most impact either directly, or by empowering improvements to common libraries. Language feature development includes integration into our developer tools and learning resources.

"high commitment to backwards compatibility"

We respect that there's a massive amount of C# code in use today. Any potential breaking change is carefully considered against the scale and impact of disruption to the C# community.

"maintaining stewardship"

C# language design takes place in the open with community participation. Anyone can propose new C# features in our GitHub repos. The Language Design Team makes the final decisions after weighing community input.