Rob like someone mention earlier, C# along with the whole (or many of the) Microsoft products portfolio is heavily used on the Enterprise. There are a couple of exceptions like many ISP which use Open Source alternatives to reduce operational costs, like thousands of Outlook licenses for example.
And when a company operates on Microsoft systems, then is very common that they look to non Microsoft products with a little doubt. Because those smaller companies have sometimes gone bankrupt, or products get discontinued and unsupported. Also there is a more common belief that under Windows MS products will be more stable and will endure the test of time better than non MS software. And maybe is true, considering examples like Visual Basic 6 that still works these days. Outdated, but gets the job done.
Only companies that work with mixed environments will actually have a need to look for other multi platform solutions like PHP, Python, Lua, Ruby, etc.
Consumer products have moved to Android and for a couple of reasons. Beginning with the bad history of old Windows Phones crashing around, and the reject of the tile system. But that's on personal devices. Still companies use computers, and computers are either Windows (about just everyone), Macs (artists), and Linux (Developers, and IT). Since Android (1) is not self hosting, and (2) do not run efficiently and good enough on computers, there is nowhere there to be found. Like I said in another thread, while Android requires another OS to develop, those legacy OS are going nowhere. They will lose market in consumer products, yes, but became extinct no. If they do, then also the Android market will stale, because there will be nothing to develop Android OS or apps with. Also haven't seen any Android Server edition, so in the enterprise Android will have only 2 roles... a digital notepad & remote email.
For C# to be a serious multi platform alternative Microsoft needs to make serious changes like:
- * Open sourcing the whole .Net and opening the patents related to it. Not limited chunks like they have done
- * Releasing same version for all desired platforms. No more .Net for Windows first, and a year later for everyone else by Xamarin.
Doubt any of them will happen, and that's why C# along with .Net is destined to fail as a standard.
But standard or no standard, at the end it depends on what OS platform the company you get contracted uses. But there is a very big change that if they use Microsoft products, you will end using either Visual Basic, C#, or both (or even Windows shell or VB scripts) to develop.