Windows Mobile devices are not limited to the native or managed (.NET Compact Framework) code for applications.
Although Microsoft does not provide a Java runtime, many manufacturers add a Java Midlet Manager to their WiMo products. You’ll need this if you want to use products such as the Operamini browser or some (but not all) of Google’s WiMo products.
There are also a few programming languages that actually allow you to develop on a WiMo device itself. NS Basic/CE is one that comes to mind since I actually first tried it on my old Apple Newton Messagepad. It lets you create applications using the BASIC programming language. The “CE” part of its name comes from “Windows CE”. I’ve heard about ports of Open Source programming languages such as Python and Ruby for Windows Mobile. But, I have not tried them myself (though I used to write in Python a lot on Linux boxes before I switched to Ruby).
Some 3rd part Windows Mobile database applications let you create what amounts to an application (from my point of view) with screen forms generator to build graphical interfaces to the database. Syware Visual CE and HanDBase are two database products that I’ve tried and enjoyed using in the past.
I’m sure I neglected to mention a few things like an add-on scripting/macro tool or an application with built-in scripting. Please let me know if you have recommendations for other products that provide application or app-like building capabilities for Windows Mobile.