C isn’t the only way to write cross platform, and it’s overkill for most apps. C# with Xamarin is the best implementation of cross platform imho without the downsides — as Xamarin cross compiles to native code- so you get code sharing with native performance. Plus if your backend is asp.net core then you can even code share with your backend (which is what I do extensively), you can run the backend on Linux, and target iOS, Android, macOS, Windows 7/8, and Windows 10. Web desktops are horrible as you say, and they should die as fast as possible. Mobile has actually brought back native apps to the foreground — the opposite of the position of this article !