S
Stefan Ram
Remon van Vliet said:As a Java developer you'll automatically get quite proficient
in proper OO design,
I wonder how you are supposed to get this proficiency when in
Java neither ints nor blocks are objects? Java is an
object-oriented language insofar as MySQL is a relational
database. (I.e., according to the definitions of the ones who
invented the terms [Kay and Codd, respectively] they are not).
As a practical example, a lot of beginning Java developers
could not give you an answer if you ask them when it's better
to use LinkedList and when it's better to use ArrayList etc.
while the average ANSI C developer can probably give you a
reasonably accurate answer just by looking at the class names,
because they probably had to manually implement linked lists
and other collections at some point.
So, assume you have a bunch of such programmers in your
company and now they are to be send to a two-week training
in order to do something about the deficiency you mentioned.
Which of the following classes do you choose?
- ANSI C programming for Java developers
(Introduction to ANSI C and especially those features
of the languages that a Java programmer will not know)
- The fine print of Java Collections for Java developers
(Treats many details about the collections that might
have been missed on the first view)
I'm sure there are better examples to prove my point
The most recent ANSI C standard is from 1989, AFAIK.
The current standard is ISO/IEC 9899:1999 (E), which also
might be available from INCITS. So »ISO C« nowadays might
be more appropriate a term than »ANSI C«.
Someone that never did anything but Java isnt by default a less
complete developer than someone who knows 10 languages.
Depends on the point of view, what criteria you choose.
Sometimes when a company delievers some kind of standard
business software that is somewhat customized for each client
(adding some fields to forms and SQL-tables), a programmer
with too much creativity and knowledge of other languages
might be less effective, when all this is not required by the
current task. Sometimes the company does not want »complete
programmers«, but just programmers fitting the current tasks.
See also (somewhat contradicting my point, but worth to be
mentioned nonetheless):
http://www.norvig.com/21-days.html