JDK: upcoming features

Hm.

Cas :slight_smile:

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! :smiley: 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. :wink:

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.

Cas :slight_smile:

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. :slight_smile:

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.

OMG … really? :o

I meant in comparison to Microsoft’s VM, not Java.

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.

Cas :slight_smile:

Can I use this to run on iOS or a game console? Any links?

Hell, I’m still waiting for a proper JVM to officially land in Android :stuck_out_tongue:

But Mono is sort of like the Dalvik of the CLR – pokey, but plenty good enough to target anyway (that it can run unmodified CLR bytecode is gravy).

A jailbroken iOS device maybe. JIT compilers are verboten under iOS’s standard regime.

No JDK for iOS yet. And there will never be a JIT for iOS, just so we’re all aware of the fact, as sproingie says; it’s a restriction of the OS.

Cas :slight_smile:

Which is a comparison only applicable to Microsoft platforms, so my my point stands, modulo s/Java VM/MS .NET VM/.

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.

There is; it’s bloody hard. Unfortunately I’m under NDA so I can’t tell you why.

Cas :slight_smile:

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! :slight_smile: ).

Possibly interesting read - http://www.codenameone.com/3/post/2013/01/why-oracle-wont-issue-java-for-ios-anytime-soon.html Of course, I’m not sure I believe their statement that it wouldn’t affect their business plan, so I’d take it all with a pinch of salt! :wink:

Can I presume that precludes you telling us who you’re under an NDA with? ;D

I would assume it’s technical, otherwise MonoTouch would be in the same boat.

My lips are sealed. Or fingers.

Cas :slight_smile: