I can answer the Symbian part since i've been there before.
You can use JavaME on it with some specific extensions, you can also use Python(at least on S60), and you can use C++(not C, if i remember correctly).
But note that the languages on this platform do not all have equal capabilities with respect to access to the underlying platform. There are some things that are just not possible...Except for the C++ part, which is the native language and thus has almost complete access to the system.