To view parent comment, click here.
To read all comments associated with this story, please click here.
The point that the Mono people are trying to get through is that in JVM you just have Java while in Mono you can program in any language including Java, Integer BASIC and even IL directly.
Also, performance is not bound to language but to implementation. Of course it is easier to write fast code in ASM than in C. But .NET and Java are on their own slow division. Maybe someday, when their compilers get better, they manage(pun intended) to be just as slow as C++.
You mean except JRuby (Ruby), Rhino (Javascript), Jython (Python), Scala and Groovy (and perhaps JavaFX script)? The Java VM may be more limiting, I don't know, but I do not think the JVM is uncapable of hosting other languages than Java. So that point is not valid I think.
Edited 2008-02-27 09:28 UTC
Still, Java needs proper GTK+ bindings before its usable for Gnome applications. Swing just isn't good enough (FOR THAT USE). I am aware of the Java-gnome bindings and I am following its development closely, but at its current state I would not use it. Looking forward to them though, but I also think people should be encouraged to use them otherwise they won't be used. Saying "no this application can not be a official part of the Gnome project because its Java instead of python or C" will send developers back to whatever platform where Java is accepted in a minute.
I DO think Gnome should adopt a runtime whether its the JVM or the .NET runtime and take an official stance on this. However, having somewhat unclear and questionable relationship with both helps none. Too bad Java wasn't opensourced earlier or this whole mess probably wouldn't be a mess at all.
Edited 2008-02-27 09:36 UTC
And did I mention that Java is GPL, while Mono is not?
Please stop spreading FUD. Mono is available under the GPL while Java still doesn't have a fully GPL version available anywhere. Icedtea is the closest thing Java has to a GPL version and there are still some things stubbed because some propietary parts have to be reimplemented and haven't yet.
Why would I want to use a clone of a Microsoft product (Mono website even uses the word "clone"!)
"we will be cloning the .NET development"
It's just the language and the CLR. You can't really use a language without cloning its features. The libraries are completely different.
Java is more popular than C#.
In terms of evidence:
http://www.langpop.com/ (no shortage of stats here)
http://www.tiobe.com/tpci.htm
http://www.ohloh.net/languages/compare (C# bareley registers in lines of open source code committed compared to Java)
..Otherwise do your own search on dice.com
How come no one writes Java-based desktop apps then?
Because you are comparing server-side popularity vs desktop-side popularity.
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all
Miguel even had a blog post admitting as much last December!
You'll note that Java only clearly beat Mono in 2 tests:
1. BigNumber. Unfortunately, the Java implementation cheated by using JNI in order to use libgmp while Mono used the fully managed implementation. Once the Mono test was rewritten to P/Invoke libgmp, they were matched for performance. No real surprise there... because the test is really just a test of libgmp vs libgmp.
2. RegEx. If you read a fairly recent blog (from just last week?), you'll discover that the Mono guys have just recently optimized their RegEx implementation and it is now #2, only outperformed by Tcl - it blows Java's implementation away.
You're right, Mono is licensed under LGPL and MIT/X11. Damn those proprietary licenses! Oh, wait...
"we will be cloning the .NET development"
http://www.mono-project.com/Mono_Rationale
which is, in turn derived from Java
Java is indeed a great language, but Microsoft's clone (C#) is an improvement over Java and Mono's clone of Microsoft's clone makes it possible for us to use the better version of Java on Linux
Hello Daveyz,
The Tiobe and LangPop surveys have a problem with the way they measure popularity, they both search for the term "LANG programming" either in Google or in books. And although C# is the main language used in .NET, people do not identify it as "C# programming" but as '.NET programming'. Re-running those queries would give you an idea of the actual language popularity.
Of course, if it makes you sleep better at night, you can just ignore this post and move on.
As for the licensing, the Mono VM is LGPLed, the class libraries are MIT X11, both FOSS licenses.
As for faster, it is fairly subjective, as the test that you linked mentions it will depend highly on the test that matters to you and to whether memory usage is important to you (Mono comes ahead on most tests here while being mostly within 10-20% of Java performance or matching it).
But like the Ruby crowd likes to say, what matters is how efficient you are with a language, and Java has sadly not evolved and in some cases regressed. For instance Generics in C# are a pleasure to use, thanks to its design and the fact that generics were integrated into the VM from the get go. You will be hard pressed to find someone that can tolerate generics in Java.
But all of that is old talk, C# has moved and its now incorporating plenty of functional language features and language integrated query (which also brings built-in map reduce to the language).
That is why perhaps C# and Mono are getting traction.
Miguel.






Member since:
2008-02-27
I agree.
Java is more popular than C#.
In terms of evidence:
http://www.langpop.com/ (no shortage of stats here)
http://www.tiobe.com/tpci.htm
http://www.ohloh.net/languages/compare (C# bareley registers in lines of open source code committed compared to Java)
..Otherwise do your own search on dice.com
Java is also faster:
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all
Miguel even had a blog post admitting as much last December!
If you prefer a cleaner language for the JVM, which is more elegant than C# see Scala:
http://www.codecommit.com/blog/scala/roundup-scala-for-java-refugee...
And did I mention that Java is GPL, while Mono is not?
Why would I want to use a clone of a Microsoft product (Mono website even uses the word "clone"!)
"we will be cloning the .NET development"
http://www.mono-project.com/Mono_Rationale
which is, in turn derived from Java:
http://www.regdeveloper.co.uk/2007/10/30/asp_net_java_project_cool/
...which Microsoft lied about (see above link).
also see:
http://www.news.com/2100-1001-242268.html
Edited 2008-02-27 08:50 UTC