3 ms·
Just like most languages, you can take some subset of C# and run it in many places. And, like most languages, there is some corner of the language that doesn't
by jcromartie 15y ago
Just like most languages, you can take some subset of C# and run it in many places. And, like most languages, there is some corner of the language that doesn't work on one platform or another. And most importantly, just like most languages, you end up depending on various libraries which may or may not be tied to hardware which makes significant parts of non-trivial applications non-portable.
People don't make games in C# because it's C#. They make games using C# and XNA, or Unity, or some other framework. They don't make web apps in C#, but rather in (whatever flavor of) ASP.NET. And it turns out that these frameworks are the important bits.
So when you choose to write something in C#, you are probably going to be choosing a framework that ties you down to a platform, and that's where the cross-platform nature of the language kind of becomes irrelevant.
That's my experience, at least.
If Clojure takes off on other runtimes, it will have this issue too. The JVM is it's "home" platform, and most Clojure software depends on JVM libraries, like how the vast majority of the C# software written thus far depends on Microsoft (and therefore Windows) libraries.
- berntb 15y ago>>If Clojure takes off on other runtimes, it will have this issue too. The JVM is it's "home" platform, and most Clojure software depends on JVM libraries, like how the vast majority of the C# software written thus far depends on Microsoft (and therefore Windows) libraries. There is a small difference. The Clojure/JVM runtime is ported to quite a lot of operating systems, where it runs quite well.