I really enjoy working with C# however one of its biggest drawbacks is that it is kind of split-brained between MSFT .NET and Mono. In practice its not a big deal most of the time but it is one of those things that makes the language ‘stink’ a little. It would get a lot more uptake, I suspect, if one could answer “If I compile it, will it work on every [desktop] platform?” with “Yes.“. Right now its “Yes. But you have to compile it under Mono first. And some areas of code may need to be rewritten a little.“.
My question is “Does the recent open sourcing of MSFT’s C# compiler mean it can be made cross-platform?“. That is to say, could C# .NET be made to work cross platform without Mono with the newly release open source components? Or is there more to this I am not seeing?
Further exposition on what the future may hold for C# in light of the open sourced components is not required to answer this question however it is encouraged.
0
It would get a lot more uptake, I suspect, if one could answer “If I compile it, will it work on every [desktop] platform?” with “Yes.”.
You can say that today! (or at least you could 8 years ago when I tried)
Seriously. Build some plain jane vanilla C# (really, any .NET language) dll on windows. Good. Now move that over to some linux machine with mono. Guess what? It just works. No recompile, no cross compilation.
The entire point of using a common interface language (bytecode) for the runtime is so that you can do this very thing! Mono didn’t somehow make their own bytecode for the language, they’re just another implementation of the runtime.
5