Programming language choices on maemo
It appears that if you are looking at programming for the maemo platform which runs on the Nokia N810 and N800 internet tablets, your options of programming languages and GUI toolkits to choose from has quickly grown.
For a while now, besides C and C++ it was possible to create programs in Python (2.5.1 just released) for the devices but recently Java and Erlang have been added as choices for N810-N800 development.
Java on maemo
If you are interested in using or programming in Java on the N-series internet tablet, check out Jayson Falkner’s blog entry on installing Jalimo which is a “Java-like stack” for the maemo platform. Jalimo is built using GNU Classpath and so it will progress as Classpath progresses (which is to say fairly quickly).
Currently it appears that the major omission from Jalimo is Swing which means that any graphical apps must use SWT for its UI components. Using SWT however does allow one to use the native GTK+ widgets from Java which is quite nice and can make application fit much more nicely into the maemo platform. In addition it appears that some people have managed to get some Swing support working on maemo already so full Swing support should be just around the corner.
Erlang on maemo
If Erlang is of interest to you, Jerry Jalava is packaging up Erlang and CouchDB for the maemo platform. I don’t claim to be very knowledgeable about Erlang except to know that it is more of a niche language created by Ericsson and which runs atop a virtual machine in a fashion similar to Java. TIOBE also ranks Erlang as number 49 on its top 100 programming community index in January 2008. Even if it might be more of a niche language, it is always nice to have one more option to develop with.
wxWidgets and QT4 for the maemo platform
Speaking of additional options, I also found out that wxWidgets (specifically wxGTK) and QT4 are available and working for the maemo platform so there appears that the choices for GUI toolkits on maemo are also increasing rapidly.
Choices, choices, choices….
It appears that the development choices in both languages and toolkits on Nokia’s maemo platform are quickly multiplying. This is great for the platform as it opens up development for a whole new subset of developers. The introduction of a usable Java runtime is especially important as both the existing base of programs and of developers using Java is enormous. In addition, many Java developers I know would have a hard time changing over to C or C++ to code for their mobile device.
Speaking of other programming languages for the N810, with the Jalimo JVM quickly maturing, it might soon be possible to run Ruby applications via JRuby and Scala applications as well. In fact any language which targets the JVM (more than 200) would be usable on these maemo devices.
I’m not ready to guess when that day might be but it appears to be getting closer and closer….