(e-mail address removed) (Paul) wrote in message
[ ... ]
I'll start by pointing out that I'm taking "STL" to mean the
containers, iterators and algorithms in the standard library -- the OP
was talking about the Google top coder contest, and based on looking
at their contest materials, that seems to be the correct
interpretation.
I disagree. I think learning STL is more difficult than learning C++.
If there's any logic here, I have a hard time following it. STL is
_part of_ C++. Learning C++ includes learning STL, and quite a few
other things as well. As such, I have tremendous difficulty
understanding how it would be possible for learning X+Y to be easier
than learning X alone. In any case, as I said before, I advocate
learning X and Y together as an integrated whole. You say you
disagree, but then say that learning the whole is easier than learning
the one part alone.
As far as I can tell, then, you not only think it's easier to learn
the whole than the part, but since you go on to say that's not the
right way to do things, you apparently also believe that making it
easier to learn should NOT be done. Either you haven't said what you
really intended to, or else we'll have to agree to disagree. I, for
one, believe that C++ provides enough challenges without our throwing
artificial ones in the way of a student.
What with traits and policies etc, I think this is best left to
specialists.
I certainly agree that beginners (most of them anyway) probably don't
want to (and shouldn't be forced to) learn _every detail_ of every
container, etc. That doesn't mean ignoring them entirely though. Much
the same is true in general: a rank beginner doesn't need (or normally
want) to learn all the intimate details of virtual inheritance,
two-phase name lookup, similarities and differences between partial
specialization of class templates vs. partial ordering of function
templates, all the rules of conversions between signed and unsigned,
etc., ad naseum.
Nonetheless, if somebody remains ignorant of inheritance in general,
templates in general, and even simple expressions in general, it would
be hard to see how that person could be said to have any more than a
truly minimal knowledge of C++.
[ ... ]
I don't think he is ignorant,
He's openly professed his ignorance of STL, so the only way he's NOT
ignorant of this subject is if he's really lying and DOES know STL
after all.
I think a bare minimum of decency requires that you either provide
evidence to back your accusation that he's lying, or else that you
apologize and retract the accusation.
STL should be a standard extension to the language and not an integral
part of the language.
Your opinion of how things should be is irrelevant to the question of
how it IS right now. The fact is, that as it stands right now, the
standard library is standardized right along with the rest of C++, and
the standard library includes algorithms, iterators and containers.
Your wishes to the contrary have no effect on that.
Templates is the part of the language we need to acknowledge here.
You are, of course, entitled to your opinion. If, however, you want
any of us to believe it, you would do well to provide some backing for
it. An obvious argument would be to show how your readers collectively
would benefit if it was made an extension.
I consider arrays to be a more significant part of the language than
vectors, plenty around here disagree , you seem to be one of the STL
fans.
I find the containers and algorithms in the standard library quite
useful, but in the end, my opinion on the matter is more or less
irrelevant. You can find "arrays to be a more significant part of the
language", but your opinion is irrelevant as well.
The question at hand is fairly simple: what constitutes C++. The
answer is also quite simple: C++ is exactly (nothing more and nothing
less) that what the C++ standard says it is. As it happens, that
includes a standard library which, in turn, includes iterators,
algorithms and containers.
As such, knowing C++ involves knowing those iterators, algorithms and
containers.
I definately look upon STL and 'the language' as 2 different things,
as the OP seems to do.
I agree that the standard library is separate from the language, but
C++ includes both.
If you're honestly advocating that the language should be taught in
isolation from the standard library, I'm forced to disagree -- without
the standard library you have only two choices: write only totally
platform-specific programs, or else write programs that are utterly
useless.
Your leaning heavilly on this 'ignorance' thing you've made up here, I
think your out of order. I'm not ignorant.
I've made nothing up -- as I've already pointed out, the OP started
out by openly stating his ignorance of the STL.
Your claim that you're not ignorant leads to only two possible
conclusions: either you're ignorant of what you're saying, or else
you're the most conceited person I've ever even heard of. The only
possible alternative to being ignorant is to know _everything_.
[ ... ]
After calling the guy lazy and ignorant, what makes you think you have
the right to preech about what does or doesn't make a good programmer?
I would have thought the answer to that was obvious: arrogance!
[ ... ]
What happened to creativity?
Nothing, to my knowledge. I didn't claim to be giving an exhaustive
list of all the traits of a good programmer, or anything like it.
Nonetheless, since you've brought it up, I'll address it directly:
while creativity is extremely useful in some situations, I'm fairly
sure somebody could be quite a good programmer with little or no
creativity. Admittedly, I think somebody who's more creative is likely
to be a BETTER programmer, but I'd guess that many (probably most,
truth to tell) managers of programmers wish their people were LESS
creative as a rule.
You do not seem to understand 'The will to succeed' and what drives
women/men, it certainly doesn't derive from arrogance.
As always, you're entitled to your opinion. So far, I see little
reason to consider your opinion on this subject more accurate than my
own.
Consider, just for a moment, one obvious measure of the bases of our
opinions: the degree to which we know other C++ programmers via our
interaction on Usenet. A quick check on Google shows that you've
posted around a dozen articles over the course of approximately one
month.
I'm almost scared by the degree of geekiness implied by my own
statistics: somewhere around 11,000 articles posted over the course of
nearly a decade. If there was a list of the 100 best C++ programmers
on earth, there's a pretty fair chance that I've conversed (or argued)
with the majority of them at least once, and in many cases have had a
more or less ongoing dialog for years.
Now, I'm the first to admit that by itself that doesn't _prove_
anything -- but I think it does give at least a minimal indication
that when I say something about what is or is not involved in being a
good programmer, that there's at least the _possibility_ that I might
know what I'm talking about.
If you read even a small sampling of those articles, I'm fairly sure
you'll realize that regardless of programming ability, that at least
in the area of arrogance, my background and personal experience are
nearly unequalled!