Of course, but funnily enough, unless youâve been keeping things from us, I wasnât including you as a large-scale, venture-capital backed business! Also, Iâm not talking about games developers, but game engine / ecosystem developers. Thatâs what gene9âs comment was talking about, and then I just donât think itâs as simple as the âthe JVM cannot be retargeted everywhereâ.
Except that Unity chose Mono, which is an alternative and under-performing .net VM.
We Java types have always put up with lower performance in order to gain in other areas such as ease of development and ease of deployment. There was a time not long ago when Java was quite a bit slower. Mono will slowly close the gap. Well, there isnât even a gap, because Java just isnât available everywhere. Itâs basically only available on Windows, Mac OS, and Linux desktop machines, and thatâs why itâs not gone anywhere useful since.
Maybe! Be interesting to compare the levels of investment going into either platform. It looks like Mono is getting performance improvements by use of LLVM as a backend, which may also be the same thing that allows alternative JVMâs to close the gap.
Apples and oranges. Itâs not like the âofficialâ .net runtime is available everywhere either. Whereâs Android in your list too? Android Mono is hardly WORA. The primary benefit seems to be pushed as code reuse, which is already possible with a significant chunk of Java code.
Anyway, thatâs digressed a bit from the point I was disagreeing with you about above. I think weâre mostly on the same page around state of the client-side (Oracle / OpenJDK) VM.
Like it or not, the Mono VM runs infinitely faster on platforms to which no Java VM is available.
As much as I like Java and the Java ecosystem, if any of the widely portable Mono based systems (Unity, or, preferably, MonoGame) fully supported development on Linux, Iâd almost certainly already have switched.
Iâd be just as happy if inexpensive, non-kludgy methods existed to get decent Java access to all the applicable devices, of course. Dalvic on Android meets that threshold right now, but just barely, and the lack of direct Java 7 support is beginning to rankle.
The whole advantage of Mono isnât speed, it actually runs slower than Microsoftâs official CLR VM and the Java VM, itâs portability. The Mono runtime can be embedded in any C/C++ project for any platform and run C# code. Java/Scala do not have a fleshed out option like that and are limited to platforms with full JREs (Win/Mac/Linux). Someone could write an embeddable Java/Scala compiler/runtime like the Mono guys did for C#, but thatâs non-trivial and no one has done that. Heck, the Mono guys could make their runtime platform neutral and support Java/Scala source code, but the people behind that project are too militantly pro-Microsoft to do something like that.
If you are ok with being limited to Win/Mac/Linux and writing your own middleware on top of OpenGL, Java/Scala are perfect. If you want more fleshed out middleware options and a larger community or a better path to iOS and consoles, C++/C# is a better bet. Personally, Iâm cheering for Java/Scala to improve their prospects.
If I wasnât pursuing some non programming passions (medical field related), I would try to build an embeddable Scala compiler/runtime to compete with Mono. There is a major unfulfilled demand for that right now.
There is already an entirely decent embedded Hotspot Java 7 SDK which runs proper fast.
I think Sindisilâs point back there was it doesnât matter how theoretically faster a JVM is versus Mono on a platform which doesnât support Java. Mono can be put anywhere, which indeed, it has been.
There is a communication gap. Of course, iOS canât run an official JRE and probably never will. We were talking about app app-embeddable like Mono that donât need official Apple approval. There is nothing stopping people from making an app-embeddable Java runtime that runs on iOS. The JavaFX group is already working on something like this and hopefully it wonât be limited to JavaFX.
Itâs all a question of: ability, risk and opportunity cost. The bottom line is that writing portable C or C++ code is dead easy if you plan for hitting multiple targets.
well every single app submitted to apple for the apple store is manually reviewed.
so I would imagine its next to impossible - and even if it gets through it might be removed afterwards if they feel that the dont want that
I understand his point and yours. I think youâre slightly misunderstanding mine, which is that we should be comparing like with like. Limiting your view of where Java runs to where HotSpot (or Oracle) is, while allowing for alternatives on the C# side, is what I was criticising.
Which is not to say I think that any option (commercial or community) is up to where MonoTouch is ⌠yet (hopefully! ).