On 4/27/01 7:42 PM, "Eliezer S. Yudkowsky" <sentience@pobox.com> wrote:
>
> I'd suggest Python or Java for a first language. C sucks.
I am of two minds about this.
On one hand, Python and Java are great learning and implementation
languages, hiding a lot of nasty details from the programmer and generally
making clean, tight implementations easy. The problem is that most new
programmers seem to stop at that level of abstraction. After all, what do
you need C for when you can program in Java? Many CS programs, particularly
the compressed ones, have completely discarded assembly language and many
have either dumped C or made it optional.
My company has been hiring recent graduates of these programs, all of which
have proven to be bright and productive programmers, but whose "lowest"
level language experience is Java. While this works perfectly most of the
time, a problem occasionally emerges in that they all program for an
idealized hardware platform -- they are completely unaware of how the
software they write *actually* interacts with the hardware they work on.
Most of the time this isn't an issue, but when we start to push hardware
limits, the old farts need to be called in to take care of architecture and
design issues that aren't obvious to people who aren't very familiar with
the hardware.
I am not saying that C should be a first language, but I think a strong
argument can be made that it should be your second or maybe third. I never
use C for general application programming, but there are many things I work
on that could not be done well without it.
-James Rogers
jamesr@best.com
This archive was generated by hypermail 2b30 : Mon May 28 2001 - 10:00:00 MDT