Anyway, the most interesting feature in .NET is that its memory consumption is about half that of Java on an average application. Sometimes more. Memory constraints are what bothers me most with the other platforms I use, particularly in a hosted environment where doubling memory often means doubling overall cost.
Could you please elaborate why do you think so? (I am just interested to hear some toughts from someone who has experience with all three languages - Java, C# and Scala. I know Java and C#, but I did not yet have time to learn Scala).
Does that also apply to Mono? If so, are Microsoft's .Net and Mono equals as far as low memory consumption, or does one of them have an edge?
I'll take the JVM with all its warts and Scala or Clojure over C# no matter how nice it is.
If you're reflexively injecting off-the-shelf 'be afraid to use it' notes into a conversation where C# is mentioned, and applying a trite pop-psych analysis to Miguel de Icaza to boot, you may want to take a few steps back and ask who is really bringing faith and dogma to the table here. Is there anyone in this crowd who hasn't heard your stated opinion approximately 1,000,000 times, and who wouldn't carefully weigh such considerations before making any production commitments?
http://www.crn.com/news/applications-os/199501735/microsoft-... http://news.bbc.co.uk/2/hi/business/2023127.stm http://arstechnica.com/microsoft/news/2010/05/microsoft-file...
Would I be happier if Java were in better hands? Yes. Does that make Mono/C# a reasonable alternative? No chance. If you're tired of hearing these arguments blame Microsoft for making them intrinsic to any discussion of their platform. Technological choices sometimes have ethical implications.
That said the community is still lacking. Their are plenty of motivated passionate people but they very often feel like their are just doing it to get a book deal or speaking gigs and not because they care.
Oh well.
http://www.mono-project.com/Compatibility
The chart is based on 2.6, the stuff that was added today falls under the "Current Mono Trunk" section.
I'm not sure if the DLR (dynamic language runtime) is fully functional on Mono yet. The DLR is what's used to make IronPython and IronRuby run on the .Net stack. It's embedded into Silverlight, which allows developers to run Python and Ruby in the browser (assuming their users have the Silverlight plugin). Mono has Moonlight, but again, I'm not sure if the DLR is in there.
I personally see C# as an evolutionary next step from Java. That being said, languages like Scala, Clojure, JRuby (which I guess is technically a language implementation) let you get the benefits of Java without all the sucky language parts.
C# is a solid server-side language. I'm not terribly impressed with it for the web, although MVC makes it much better than it used to be (blah, webforms). There's an interesting project that was posted here recently called "Manos de Mono" that offers some variety in the web space [1]
It's also turned out to be a pretty decent mobile development language. You can develop iPhone and Android apps using Mono [2][3], as well as cross-platform games [4][5].
You can use Mono in client-side applications, but I'm not sure how well it works or everything that's involved with using it that way.
One of the nice things about Mono is that it lets you write C# on Unix and Unix-like platforms. For those of us that use C# during the day, it's liberating to be able to use the same language on our Macs at home, or deployed on Linux servers next to our other software.
[1] http://github.com/jacksonh/manos
[2] http://monotouch.net/
[3] http://monodroid.net/
[4] http://code.google.com/p/monoxna/
[5] http://unity3d.com/