Another good contender is Xamarin (it is even getting merged into .NET 6).
C# is a really good language with great tooling (my subjective opinion, I like C# more and more).
C# also can be used to write:
- cross-platform CLI apps and services
- crossplatform mobile apps
- crossplatform gui apps (projects like Avalonia, Uno Platform)
- MS is working on MAUI which should be crossplatform GUI framework)
- web backend and frontend
- Blazor (C# running in WASM) looks interesting, though I thin it is not yet ready to replace JS for me)
- ASP.NET Core is extremely good, actually one of fastest frameworks out there (according to some benchmarks)
- Games (Unity framework)
- Machine Learning (ML.NET)
- IoT
The only problem is “Microsoft” - as a linux guy I still feel a bit worried/uncertain about MS. Who knows what they decide again.
When C# was still only for Windows, I would never consider it, but nowadays, the benefit of one language and be able to write for so many platforms, it is definitely a strong contender to at least keep an eye on…