16 December 2010

Android Support With Visage

Visage has achieved what no other language has done (except Java) with supporting Android without the need for wrapper APIs/libraries and a separate runtime. Most languages that run on Android require the use of ASE (Android Scripting Environment). ASE provides very limited support for the Android APIs, and worse acts as a wrapper which greatly limits performance, and heavily restricts what languages have access to in terms of Android functionality.

Already there is excitement with Visage supporting Android directly like Java without the need for extra baggage. One downside is that the Visage compiler has to do two compiles, one from Visage source code to Java byte code, and the other from Java byte code to Dalvik byte code. This means that performance is not going to be adequate for advanced Android applications, but simple applications will run okay. In time performance will improve as further tweaks are made to the compiler until it gets to the point where there is only a single compile (from Visage source code to Dalvik byte code). When that time comes Visage will have performance comparable to Java.

Another downside is that Visage does not support Android APIs that make use of generics. In time the situation will be rectified since generics support in Visage is top priority. Hence it will be about a month or two before the support appears. As such it will not be possible to create advanced Android applications for the moment. Some genericised APIs will have alternatives that can be used until the support is present.

Guessing from how much of the Android APIs will be supported by Visage based on the total classes/interfaces/enums it comes to roughly 84%, which is surprisingly high considering much of the Android API is genericised. With the proper support the total supported Android APIs would come to about 95-98%. At a very high percentage this would make Visage a very attractive alternative to Java for Android development. With that level of support very little functionality would be unavailable when it comes to developing Android applications.

It remains to be seen what Visage language features can be utilised on Android. Not all features will be available but that will change as the Android support improves. Currently Visage for Android has not be made publicly available yet. Expect a public release within the next few weeks or so.

Next year will be the year that Visage makes its mark on Android development. Finally a viable programming language is emerging for Android development, which goes far beyond creating hello world type applications.