The evaluation edition of MonoDroid is emulator-only, so you can't do any benchmarking or even verify their benchmark results without buying a very expensive license. I have a ton of ideas for benchmarking this, and installed MonoDroid and did some coding, but the MonoDroid eval edition wouldn't let me build a binary to run on an Android device. The regular license is $999 and while there may be some cheaper academic/hobbyist options, I'm not giving them large sums of money to verify their claims. BTW, the regular Eclipse Android development stack is 100% free. And that's not some limited starter edition, you get the full toolset for free.
The benchmark results posted on the Mono blog aren't using one of the many standard benchmarking suites, they weren't run by an impartial entity, and they aren't even making a reasonable pretense of being fair. The Mono guys developed their own internal custom benchmark designed to make Mono look good and Dalvik look bad and they cherry pick the results accordingly. Their Git repo also has the SciMark benchmark source code running on Dalvik/Mono, but they didn't choose to publish those results. If you look around for Android benchmarks, there are a ton of them. If I could without buying a $999 MonoDroid license, I'd port them to C# and run them, and see how they stack up. I'd imagine if these results were favorable to Mono, they'd be publishing them on their blog themselves. If some big company like Intel/AMD/Nvidia published these types of heavily customized "benchmarks" like this, they would be laughed at. Google has the Renderscript and the C/C++ NDK which I suspect are the more high performance low level SDK options. Dalvik's design goals weren't primarily centered around runtime performance, but memory considerations, battery life issues, UI responsivenes, app startup/switching issues. Dalvik Turbo, is a drop in replacement for Dalvik that supposedly delivers 2.8x faster runtime performance on benchmarks. What are the ups and downs, between this, native Dalvik, the Mono VM, and others. Dalvik Turbo seems to have the simple goal of providing a faster VM without any other associated agenda. Many alternate programming languages like Scala/Kotlin/Clojure/Fantom aim to provide a variety of innovations at the programming language level but really strive to acommodate multiple VM ecosytems without playing a heavily partisan role. Mono isn't like that. They have a history of evagenglizing everything Microsoft and bashing opposing infrastructure like Java, using technical bullet points like stack value types or reified generics as ammo fodder for that contentious debate, and being absolutely obnoxious about the whole thing. Casper, you say the JDK ecosystem is uninspiring. To each his own, but I disagree. I love the culture of innovation that has happened outside of Sun/Oracle within the JDK community. All kinds of alternate languages (Scala/Kotlin/etc) alternate build tools and paradigms (Maven/Gradle), web frameworks, configuration frameworks, competing IDEs, all innovate and suceed or fail based on largely merit. In the .NET world, the community at large is very resistant to using anything that isn't officially Microsoft. It's extremely rare to see a .NET shop use a non-Microsoft IDE, development OS (there is a very small minority doing .NET/Mono on Linux/Mac), programming language, build tool, web framework, testing framework, or anything. Even when there are high quality alternatives out there; for example, Scala/Clojure/Fantom have been on .NET for a while, but there is nearly zero adoption. The .NET world is less a culture of open innovation and more a culture of Microsoft and that isn't appealing to me. -- You received this message because you are subscribed to the Google Groups "Java Posse" group. To view this discussion on the web visit https://groups.google.com/d/msg/javaposse/-/wuXtXdPOc-YJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
