There are many languages that can be used with the Z; some of the more popular are C++, Java, Ruby, and Python. I've seen other languages used as well, such as Smalltalk, LISP, and OCaml. Then of course, there's always shell scripts. If there is a linux compiler/interpreter available for a language, there's a chance it will work on the Z.
As marshmn said, if you want to stay in-tune with Qtopia, your best bet is C++. While many languages have binding for QT, QT itself is written in C++. It's possible to setup a build environment with simulator under Linux, OS X, and Windows (using cygwin). It is also possible to build on the Zaurus itself; I recommend trying user maslovsky's developers' image: http://www.oesf.org/forums/index.php?showtopic=8465
I would like to recommend Java, as it would be more portable, but unfortunately there are no JVMs available for the Z which support Java 1.4.2 - what I consider 'modern Java'; this means you're stuck using AWT instead of Swing or SWT (as far as I know, SWT has not been ported to the Z yet). The most recent Java version supported is 1.3, using a JVM made available by IBM (called J9, I believe).
Ruby and Python might be a good alternative for programming on the Z itself, as they do not require compilation, and can be quickly and easily modified. I've recently started using some nice Ruby applications for the Z (EBt, dmblogger) which use the Ruby-QTE bindings.
One suggestion... if you plan to do any compiling on the Z, I would recommend setting up a swap file; I've found that gcc/g++ can require a lot of memory (in fact, without a swap file, it slows my Zaurus to a dead crawl). Also, as compiling can cause a lot of writing to a drive, especially if you compile often, it would probably be best to use external memory, such as SD or CF, or more preferably, a microdrive, which can supposedly handle more read/write cycles than SD/CF flash cards.
- anpachi, gifu, japan