4 ms·
NRT wasn't really breaking as it's a warning which you control top level. But there have been some real breaking changes in edge cases but they are pretty far b
by alkonaut 2y ago
NRT wasn't really breaking as it's a warning which you control top level. But there have been some real breaking changes in edge cases but they are pretty far between.
I think the language could be better if it was always structured in the best way possible, rather than in the best compatible way.
As a class library example (which is contrary to what I said earlier about .NET compatibility vs C# compatibility) is that it was a massive mistake to let double.ToString() use the current culture rather than the invariant culture.
It should change to either required passing a culture always (breaking API change) or change to use invariantculture (behaviour change requiring code changes to keep old behavior)
- Clubber 2y ago>a massive mistake to let double.ToString() use the current culture rather than the invariant culture. I would imagine that's a carryover from the Win32/Client-Server days when that would have been a better choice. Is that annoying? Yea. Is that annoying enough to force companies to collectively spend billions to look through their decades old codebases for double.ToString() and add culture arguments? Also keep in mind, this is a runtime issue, so the time to fix would be much more than if it were a compile issue. I would say no.
- neonsunset 2y agoNowadays you just apply https://learn.microsoft.com/en-us/dotnet/core/runtime-config/globalization#examples https://learn.microsoft.com/en-us/dotnet/core/runtime-config... and call it a day. It is also added as a default to all AOT templates.
- alkonaut 2y agoThat's a great idea (and after the fact, much better than changing the API). On day 1 it should have been easy though.