Re: Does C++ "dumb-down" programmers?
On 3 Dec., 10:37, James Kanze <james.ka...@gmail.com> wrote:
On Dec 2, 11:17 pm, "Balog Pal" <p...@lib.hu> wrote:
"peter koch" <peter.koch.lar...@gmail.com>
I don't disagree with you here, but this is not what we are
discussing. We discuss how long time it takes to learn C++,
not how long time it takes to learn to program. I believe
my claim still stands: you can learn enough C++ to be
productive in less than one week, and you can be
selfcontained in one month.
Guess by "productive" you mean that you can punch out lines
that compile, and will cause as many days for other people to
clean up defects as minutes you spend working?
Not so much that, as "as productive as you would be in something
like C". You certainly won't be writing idiomatic C++ after
just a week, even with a lot of experience in other languages.
It is now so long ago that I don't really remember how long it took
before my code became idiomatic, and I do remember revisiting some of
my first classes.
Still, having an existing codebase to look at and a good mentor to
help you can bring you a very long way in a very short time. And I was
so lucky that my mentor was very good at C++, that he liked teaching
and that he had time for me and my silly questions.
The fact that your C++ isn't idiomatic, however, and doesn't use
many features of the language, doesn't mean that it is not
maintainable---there's an old saw that "real programmers can
write Fortran in any language", but the reverse is true as well:
a good programmer will write clean code in any language,
including a very reduced subset of C++. (One of the cleanest,
best written programs I ever saw was in Fortran IV.)
Of course, this "productive" doesn't necessarily mean that you
will be productive in every environment. If you've not see
exceptions before, I don't think you'd be writing exception safe
code after just one week. And in no way would one be able to
successfully use other important new features.
I remember that first C++ as being quite clean and quite C++. So
encapsulation, exceptions and the standard library was used through
out. I also believe there was a little bit of template code floating
around although perhaps not so much.
C++ coded as C was found here and there but got cleaned-up. Mostly by
me as I inherited a project that began its life as C.