What are the main benefits of using Mono over Java (or any other "free" or Linux-friendly language/runtime)?
Mono will always trail behind the latest developments in the .NET framework, why would you want to use Mono over another traditional open-source language/framework (Java)?
EDIT: Like someone mentioned below, I guess the root question is, why would you want to use .NET on the Linux platform?
Some people like C# better than Java. Also, consider that C# is an ISO standard language while Java is not. Maybe you want to run ASP.NET code on a Linux server? There's lots of reasons, really.
You want to use C# on the iPhone, Wii, and possibly Android at some future point. See this link. http://arstechnica.com/open-source/news/2009/01/open-source-mono-framework-brings-c-to-iphone-and-wii.ars
Personally, i have more trust in Linux platform as server, but want to use C# as program language.
I think it comes down to personal preference. I am comfortable with c#, and I want to develop apps that I can run on my Ubuntu Laptop or my Vista Laptop. Therefore, I use mono. If I were more comfortable with Java, then that's probably what I'd use.
Just my 2 cents.
in one word? Cross-platform
I have used mono as a cross-compiler, in effect. I added some "exec" lines to an existing java/ant build file to call mono as the compiler, so there was a single, complete, command line build process.
I had to write a C# wrapper layer around some PC code which our java-on-linux code base had to use, but I couldn't bring myself to require starting up Visual Studio (on a seperate computer) just to do the check-out and build process.