The best way to develop on Symbian OS depends on what you already know, your budget and what you want to achieve.
What is the difference between Symbian C ++ and Java ME in development?
Well, you will not use the same tools, this is not the same runtime, this is not the same language.
Generally, use C ++ when trying to accomplish what JavaME cannot do (telephony ...) or when the JVM trace creates a performance problem (startup time ...).
JavaME is especially useful when you plan to port what you are developing for phones other than Symbian (although JavaME is quickly becoming a nightmare across multiple platforms). It is also a good entry point into the mobile industry for many developers who have just ever learned Java development.
If Java ME can run on Symbian, why do we need Symbian C ++?
See above: Although modern JVMs run bytecode at a speed close to compiled C ++, the JVM itself has a significant footprint, and J2ME just lacks the set of APIs available in Symbian OS C ++
Is there any other way to develop on Symbian? What about Qt and Ovi?
Python is popular, there is a ruby ββruntime, you can use web runtime ... you can pretty much create your own runtime if you want to. Qt is the next big thing because it is close to the hardware available on other platforms, and Nokia intends to expand its reach of the API.
OVI is not a development environment. This is a Nokia application store where you can download developed applications (written in Qt, C ++, Java, JavaScript ...) so that users of Nokia phones can download them to their phones.
Which way would you choose if you are going to develop on Symbian?
Now we are back to "it depends."
If you are looking for good guides, I suggest looking at Symbian Press books, in particular Java, Python, and Quick Recipes.