Avian: a lightweight alternative to Java that runs on iOS and Android
21–29 of 29 posts
Re: Avian: a lightweight alternative to Java that runs on iOS and Android
#22How does this compare with RoboVM ( https://robovm.com/ )?
Re: Avian: a lightweight alternative to Java that runs on iOS and Android
#23Is the idea that you can write an app in a language which is a subset of Java, then deploy it onto multiple different platforms? Given that you can already do that with actual Java, what's the advantage? Is it just that you can deploy on iOS, where there's no JVM?
Re: Avian: a lightweight alternative to Java that runs on iOS and Android
#24A java jitted VM built from scratch.. i wonder if we have a way to see how it performs, compared to other jits (specially the Android ART)? By a very crude look at the source, looks very lightweight indeed > Just-In-Time (JIT) compilation for fast method execution > Generational, copying garbage collection ensures short pause times and good spatial locality > Thread-local heaps provide O(1) memory allocation with no…
Exceptions like page faults are very slow in modern CPUs in comparison to branches. Branch prediction works really well.
Re: Avian: a lightweight alternative to Java that runs on iOS and Android
#25A java jitted VM built from scratch.. i wonder if we have a way to see how it performs, compared to other jits (specially the Android ART)? By a very crude look at the source, looks very lightweight indeed > Just-In-Time (JIT) compilation for fast method execution > Generational, copying garbage collection ensures short pause times and good spatial locality > Thread-local heaps provide O(1) memory allocation with no…
One of the core contributors here. I don't have any numbers, but I can reasonably guess it'll only beat the most naive JITs (i.e., JITs that only copy predefined templates that implement each instruction). Avian's JIT does no optimizations beyond a simple linear-time register allocator and a very basic instruction selector. Avian can run a simple Hello World somewhat faster than HotSpot, but that's about all. In any…
I still don't see how it's better than Java in that scenario, which also runs on all platforms?
Re: Avian: a lightweight alternative to Java that runs on iOS and Android
#26Earlier quoted context omitted.
One of the core contributors here. I don't have any numbers, but I can reasonably guess it'll only beat the most naive JITs (i.e., JITs that only copy predefined templates that implement each instruction). Avian's JIT does no optimizations beyond a simple linear-time register allocator and a very basic instruction selector. Avian can run a simple Hello World somewhat faster than HotSpot, but that's about all. In any…
> However, that's not what Avian is designed for. We (ReadyTalk) don't have the resources to compete in that sort of market, as fun as that might be. We designed Avian to run a relatively light-weight client application, so we can deploy the same code across all our platforms. We're not running a game or a server, so we don't care a lot frame rate or requests per second. I still don't see how it's better than Java in…
Re: Avian: a lightweight alternative to Java that runs on iOS and Android
#27I don't understand what this is for. Could someone suggest some use cases? Is the idea that you can write an app in a language which is a subset of Java, then deploy it onto multiple different platforms? Given that you can already do that with actual Java, what's the advantage? Is it just that you can deploy on iOS, where there's no JVM?
Also, keep in mind that Avian predates at least some of the other solutions to this problem. You could use something like https://github.com/libgdx/packr as well.
Re: Avian: a lightweight alternative to Java that runs on iOS and Android
#28Re: Avian: a lightweight alternative to Java that runs on iOS and Android
#29Is it possible for Avian to support the java.awt.Robot class? ( http://docs.oracle.com/javase/6/docs/api/java/awt/Robot.html ) Would be superb in terms of cross platform automation use, currently the only other cross OS compatible solutions are to use Lazarus/Free Pascal or full blown Java VM.
It would also be possible to implement java.awt.Robot from scratch and add it to Avian's class library. That would give you a smaller executable but require significant effort and a lot of platform-specific code.
The best choice depends on what aspect(s) of a "full blown Java VM" you're trying to avoid: e.g. size, installation complexity, licensing issues, etc.