Re: Need a C++ book for complete idiot!
* Andrew Tomazos:
On Sep 8, 1:30 pm, Francesco <entul...@gmail.com> wrote:
I agree that knowing more that one language is a very important step
for any programmer, but then, starting from one or from another
doesn't make any big difference - assuming those languages are equally
high-level.
If that is true, then why do the vast majority of universities teach
first year computer science students in Java, and not C++ ? I'm sure
the professors setting the curriculum are quite familiar with C++, so
we must conclude that they would disagree with your position, right?
I see three possible reasons (at the time I taught, early 1990's, I started the
students with Pascal and proceeded to C++).
First, it's extremely difficult to teach C++ from the start because almost
everything in the language is connected to everything else. If students had had
a solid background in e.g. digital electronics and mathematics this would not be
so big a problem. But this is not so, and in a typical curriculum there's no
room to add in such background: essentially, except at institutions such as MIT,
the goal & aim is to give the student enough shallow knowledge to be able to
acquire The Real Stuff after graduation, and with C++ that's almost impossible.
Second, there's a lack of simple to use libraries for C++. This is not a library
shortage issue (GUI, network, database, all that stuff in the "standard" Java
library), because C++ enjoys an extreme richness of available libraries; to wit,
Java's base functionality is implemented in C and C++. It's a language and
competency issue: the tool usage aspects of using a library are very hard in C++
(language issue), and the programmatic aspecs of using a library are very hard
(C++ programmers are assumed to be very competent, not first year students).
Thus it's difficult to motivate students when starting with C++ because creating
impressive small programs is very hard, not simple like a Java program.
Third, due to the above two reasons and due to "those that can't, teach", it may
be that the teachers don't know C++ and wouldn't be qualified to teach C++ even
if they did know the language.
However, it may be that Java being popular as a first language is similar to
MS-DOS once being popular as an operating system. Technically better operating
systems existed. But MS-DOS dominated *because* it dominated: the dominant
system, language or whatever doesn't need to be best, because once it's top dog
(in some context) that in itself is a huge factor in keeping it top dog.
Cheers & hth.,
- Alf