Hacker News new | ask | show | jobs
by jaybill 5070 days ago
This isn't "running Java on iOS". This is cross-compiling Java to Objective C, the exact same way that other toolkits like MonoTouch, Titanium and RubyMotion do it.

The difference is important.

You can use this toolkit to target iOS from Java, but that doesn't mean that you get that language's infrastructure with it. I'd argue that's probably a good thing, but either way it's a far cry from "running Java on iOS".

4 comments

MonoTouch does not compile to Objective-C. It compiles to native code, just like Objective-C, very much like Mono, CLR, or JVM do on other platforms. The real difference is running the compiler ahead of time, versus JIT. That, and disabling some functions that Apple deems bad, like keeping the ability to modify or emit code on-the-fly.

In the case of MonoTouch, you do get the infrastructure; they have the runtime ported over, and other libraries get compiled in as needed. So, in Mono's case, it IS "running .NET on iOS".

I see no intrinsic reason this could not be done for Java, although I don't know what this specific implementation is doing.

None of those things compile to Objective-C. They each provide a runtime for C#, Javascript and Ruby respectively with bindings to the underlying Objective-C apis. And they each do it in a different way, with different levels of layers between the normal Cocoa APIs.

What 'language infrastructure' are you talking about?

> You can use this toolkit to target iOS from Java, but that doesn't mean that you get that language's infrastructure with it.

I failed to understand you here. Assuming the Java language runtime is also available in native code, this is no different than using any other compiled language runtime like, say Objective-C.

Yeah, from the site it looks like they are running "true native applications", so probably using native UI widgets.