> On Jun 8, 2021, at 5:18 AM, Nikita Popov <nikita....@gmail.com> wrote: > > Well, I think we can get an approximation like this: > > https://beta.grep.app/search?q=%7B%20get%3B%20private%20set%3B%20%7D&filter[lang][0]=C%23 > > <https://beta.grep.app/search?q={%20get;%20private%20set;%20}&filter[lang][0]=C#> > { get; private set; } 74,281 results > https://beta.grep.app/search?q=%7B%20get%3B%20%7D&filter[lang][0]=C%23 > <https://beta.grep.app/search?q={%20get;%20}&filter[lang][0]=C#> { > get; } 156,304 results > https://beta.grep.app/search?q=readonly&filter[lang][0]=C%23 > <https://beta.grep.app/search?q=readonly&filter[lang][0]=C#> readonly > 409,585 results > > Note that the "{ get; }" part includes both readonly properties and > get-only abstract properties, so that one is an overestimate. Using > variants like \{\s+get;\s+private set;\s+\} doesn't change the results > materially. > > Unless my methodology is completely borked, the ratio of readonly to > asymmetric visibility seems to be something like 4:1 even as a conservative > estimate.
When you two are speaking of "asymmetric visibility," are you speaking of this RFC[1], this one[2], one I am not mentioning, or one that does not exist yet? If you are referring to [1] there is more to asymmetric visibility than what C# would call "auto-implemented properties[3]." If we search for `get {` we find 266,859 occurrences and another 5765 for `{ set{`. I assume `readonly` would not address either of these? https://beta.grep.app/search?current=2&q=get%5Cs%2A%5C%7B®exp=true&filter[lang][0]=C%23 <https://beta.grep.app/search?current=2&q=get%5Cs%2A%5C%7B®exp=true&filter%5Blang%5D%5B0%5D=C%23> https://beta.grep.app/search?q=%5C%7B%5Cs%2Aset%5Cs%2A%5C%7B®exp=true&format=e&filter[lang][0]=C%23 <https://beta.grep.app/search?q=%5C%7B%5Cs%2Aset%5Cs%2A%5C%7B®exp=true&format=e&filter%5Blang%5D%5B0%5D=C%23> -Mike [1] https://wiki.php.net/rfc/property_accessors <https://wiki.php.net/rfc/property_accessors> [2] https://wiki.php.net/rfc/property_write_visibility <https://wiki.php.net/rfc/property_write_visibility> [3] https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties <https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/auto-implemented-properties> P.S. You also over-counted `readonly` by 44k. If you go with case-sensitive for "readonly" you only get 365k. Seems they like using "ReadOnly" as part of symbol names. https://beta.grep.app/search?q=readonly&case=true&filter[lang][0]=C%23 <https://beta.grep.app/search?q=readonly&case=true&filter%5Blang%5D%5B0%5D=C%23> P.P.S. I'm not taking a position pro- or con- the readonly RFC, just wanting to clarify the stats used by others to evaluate.