Ecma International has officially approved the sixth edition of the C# language specification, marking a milestone in the ongoing evolution of the language. This edition, known as ECMA-334, represents a significant step toward greater openness and efficiency in how C# specifications are developed. Microsoft, the primary contributor and author of C#, has embraced a more transparent process in creating the specification, moving it to an open-source, community-driven model.
The key focus of the C# 6 specification is on creating a standard text that can be easily accessed and modified. The specification has transitioned to a Markdown format, which is now hosted in a public repository under the .NET Foundation. This change enables the use of GitHub’s powerful features, such as pull requests and code reviews, facilitating faster and more collaborative updates. The open-source nature of the project encourages greater community participation, allowing anyone to contribute corrections or suggestions to the standard.
According to Mads Torgersen, the lead designer of C#, this new approach makes the specification process much more nimble and responsive to the evolving needs of the language. By embracing modern development tools and workflows, the team can now move more quickly, keeping pace with the fast-moving development of C#. This change also sets the stage for future versions of C# to be aligned with the latest language features, reducing the lag between the standard and the actual shipped versions of the language.
Microsoft is currently working on C# 11, which is expected to be released alongside .NET 7 in November. While the Ecma committee does not directly participate in developing new versions of the language, it plays a crucial role in providing formal specifications for the versions that are already in use. The C# specification defines the representation of C# programs, the syntax, semantic rules for interpreting programs, and any limitations imposed by the language’s conformance requirements, ensuring consistency and clarity across implementations of C#.