Ways to develop on Symbian
Nowadays there are lots of ways to develop for Symbian - in native C++ with the ugly descriptors, cleanup stack, and leaves...but once you learn it, it works well, although it is somewhat verbose.
J2ME, already mentioned by some posters, is supported on all S60 devices, and can run for the most part unaltered also on Nokia's S40 devices (as long as you don't have too much memory utilisation and know differences in camera handling, for example).
QT will bring a huge salvation in application development for the platform with its really nice C++ APIs, with added advantage that the same apps should run on Meego also...and also in theory might cross compile to other platforms (PC, Linux, and I believe Mac is also on the cards), although I believe Nokia have grafted some phone-specific APIs on top of vanilla QT that won't port across (yet).
One thing not yet mentioned is that Nokia have OpenC interfaces, with very posix-like APIs, so many C programs and libraries can just be recompiled. If you use Open GL for the UI then you should be in a good position since you don't need to use the crappy Avkon framework, which is admittedly, crappy.
Maybe there are some other ways, but those are the ones I have used until now (there is also web runtime stuff, Flash, and Silverlight, but I don't know too much about that at the moment). So, you are rather spoiled for choice in a way, and developers from many backgrounds (C++, Java, C, Web) can find some tool to leverage for Symbian. Which is pretty impressive actually.