April 5th, 2021

Announcing Open Source C# standardization

Bill Wagner
C# / .NET Principal Content developer

The C# compilers have been open source since 2014, now in the dotnet/roslyn repository. The dotnet/csharplang split off to provide a dedicate public space for the innovation and evolution of the C# language. Now, dotnet/csharpstandard completes the group, providing a public space for the ongoing work to document the standard for the latest C# language versions.

Welcome dotnet/csharpstandard

Moving the standards work into the open, under the .NET Foundation, makes it easier for standardization work. Everything from language innovation and feature design through implementation and on to standardization now takes place in the open. It will be easier to ask questions among the language design team, the compiler implementers, and the standards committee. Even better, those conversations will be public.

The end result will be a more accurate standard for the latest versions of C#.

Opening the process

The ECMA C# standards committee, TC-49-TG2 is still responsible for creating the proposed standard for the C# language. What changes is that work now happens in the open, under the .NET Foundation. You can see work in progress on the standard text for C# 6. This work merges the draft spec currently hosted in the csharplang repository with the current C# 5.0 standard text. Work on incorporating the C# 7 features is taking place as well. See the C# 7 draft branch for progress.

The addition of dotnet/csharpstandard means there are now three different repositories related to the C# language. Each has a well-defined purpose:

The addition of dotnet/csharpstandard to the .NET Foundation means we can direct work to the correct place more easily. You’ll see the following changes over the coming months:

You can participate by reviewing the PRs, opening issues for changes that aren’t covered, and helping refine the language in PRs.

Thank you

Moving the standards work into a public repository took the cooperation of the members of the C# standards committee, the chair, vice-chair and secretary of ECMA TG49, and the .NET Foundation board. We invite you to participate by identifying issues, reviewing proposed text, and suggesting improvements. We’re excited to move this work into the open, and invite all of you along.

Author

Bill Wagner
C# / .NET Principal Content developer

Bill Wagner writes the docs for https://docs.microsoft.com/dotnet/csharp. His team is responsible for all the .NET content on docs.microsoft.com. He's also a member of the C# standardization committee.

14 comments

Discussion is closed. Login to edit/delete existing comments.

  • Ken Domino

    Documenting the language is welcome news. However, I don't understand the difference in purpose between csharplang and csharpstandard. At face value, the repositories appear to have similar content. For example, both describe the C# language. Both have documentation for expressions, here and here. Both are marked version 6. But, between these repositories, expressions.md differ significantly, not just in markdown formatting, but in content. Which is more up-to-date on describing version 6? Currently, C# is at...

    Read more
    • Bill WagnerMicrosoft employee Author

      Ken,

      We are working on fixing this situation. The reason csharplang and csharpstandard have different text is because of the way the C# spec documents diverged while the standardization process was dormant between V2 and V5.

      Right now: csharplang's main branch more accurately has all of V6. csharpstandard has PRs that will bring them together. The branch has our current working draft for V6. We haven't finished all the features yet.

      We're working hard to catch up,...

      Read more
  • David Merritt

    Glad to hear as well!!!

  • Stevie White (Dragnilar) · Edited

    Two things…

    First – Bill, I don’t like your profile photo.

    Second – I really am skeptical and think this is Microsoft playing catch up with Oracle on Java. :-/

    Edit: Old article about this if anyone cares to read it: https://www.zdnet.com/article/what-is-ecma-and-why-microsoft-cares/

  • Christophe Pichaud · Edited

    CsharpStandard is a very very bad marketing name.

    It's like netstandard: NOBODY UNDERSTAND WHAT IS THE DIFFERENCE BETWEEN NET .NET CORE 2.0 3.1 .NET STANDARD 1 2 ....ETC.

    Before trying to always make a triple axel and trying to not fall on the ice like an arrogant champion ice dance, please associates real developers and architects to all the naming décisions made by the F***ing Marketing Department.

    The naming convention for NET since .NET Standard and .NET CORE...

    Read more
    • Daniel Smith

      Are you crazy Christophe? You want them to put the compilers in a “compilers” folder, the docs in a “docs” folder, and the specs in a “specs” folder? Oh wait, that’s entirely sensible! Come on Microsoft, you know this makes much more sense.

    • Matthijs Wensveen

      This announcement is about the C# language specification and the ECMA standard that describes it (ECMA-334). This has little to do with the products .NET standard/core/etc., except that they both contain the word “standard” with different meanings.

    • Maximilien Noal

      What is so hard to understand ?

      • Paulius P

        Is this Microsoft Marketing Department asking?

      • Maximilien Noal

        No… ?

  • Akmal Kamalov

    Glad to hear this 🙂

  • Mason Wheeler

    Are there any comparable efforts to allow the community to help update the CLR standard definitions? So much of the work that has gone into updating the C# language, and the work that is continuing to be put into evolving it, would be significantly easier if we weren't still locked into the restrictive CLR 2.0 IL and metadata architecture.

    Look at the insane mass of complexity and gibberish that is the current proposal for "shapes,"...

    Read more
    • Lukas Novotny

      Absolutely agree, CLR is long overdue for evolution.

    • Ladislav Burkovsky

      Definitely agree. If possible avoid silos and enable community to develop special need solutions.