Symbian OS/C++

This week I had a Symbian C++ course to learn more about how
to create application for smart-phones that based on the
Symbian operating system. I is a very intensive course, because
we started every day at 8:30 and finished after 18:00, with only a half
hour lunch break.

I'm quite new to that Symbian stuff, cause I only played a bit with the
different SDKs and wrote some little sample apps.
But one thing for me is clear by now:
Symbian is one piece of crap. It starts with the ugly coding
conventions with make it really hard for programmers to read the
programs. The API documentation for the various SDK is lousy
compared to the documentation that Sun provides for Java.

But the best thing is that the programmer must care of everything.
A little example. A small client server chat application that only
sends a simple string from the client to the server, and the server
only echos the message with is a simple GUI to do this needs about
2000 lines of C++ code.
I think in Java would the program have something about 500 lines of code.
Now think of that how expensive Symbian C++ is, when you need that much
of code for simple programs.

Symbian is one of the newer operating systems and about 90% is written
in C++ (the rest in C and assembler), but they didn't make it to
use the object oriented paradigm in a way that you have a benefit
as developer..
Every SDK, for instance, have its own GUI set, and all the components
are derived from base classes in the SDK. You have
to use this derived classes, instead of the base classes which would
it make much easier to develop applications that supports the different
type of handsets.

Another nice thing from Symbian is that the compiler is based on gcc,
which isn't bad at all, but it is only used to compile the application
for the handset. If you what to compile it for the emulator you
must buy an IDE from Metrowerks, Borland or Microsoft. The emulator
itself is not a real emulator, it doesn't emulate anything, cause the
hole Symbian OS and the apps are native compiled for the x86 CPU.
Why can't the gcc also be used to compile the thing for the
so called emulator? This would be a big advantage that more
software is developed. I don't thing that anyone would develop
open source software when the development tools are not free.

The only conclusion is to do not develop application with
Symbian C++. Maybe Java MIDP is a better way, but I've
never tried it, so I can't say anything about it.