its seems by learning "interpreted" languages, your "interpretation"
seems confused a la some of the interpreted languages.
Indeed!
I do C++ programming every day and often it's funny to see how my friends
perform, when they go from C# or java back to C++ (usually because of our
university projects on embedded devices). They just don't understand
anything.
With C++ I personally feel much more knowledged then my friends. I almost
always know the answers to their questions even before they finished asking
them. Questions like "why does this program crash?" or in the like. Most of
them haven't even got the skills to run a debugger even though they've been
at the university for 4-5 years.
I've personally come to the conclusion that most Java and C# programmers are
less knowledged then average C++ programmers (at least judging from the
people I've met so far).
It's easy to say you're a master programmer when you get the underlying
system to do alot of the work for you. "ok so we just allocate a bit of
memory here and there and eventually we forget about it". This is what I've
heard from alot of people. But funny enough when they go back to C++ they
reveal to me they don't know anything about the core topics of programming.
This often shows by doing unsafe programming constructs and lack of error
checking.
I've recently supervised a student project where the student made so many
memory leaks, potential buffer overruns and similar so that the code under
no circumstances could be used for anything meaningful. It was better to
write it over from scratch then try to fix it.
Things like speed and platform compatibility is rarely considered by an
average C# or java programmer. Esp. C# programmers think Windows is the only
platform.
However there are different good things about C# and .NET esp. I personally
do a little C# programming also since some tasks are solved with only a few
lines of code whereas C++ would require a ton of extra libraries to perform
the same.
This has nothing to do with the language of course and only is an issue
about the runtime library.
It's not surprising though since the .NET runtime library has taken all good
stuff from previous frameworks and languages.
If it would be ported back to C++ I'm sure there would be an efficiency gain
as well.
-- Henrik