in reply to What languages to learn?

Squeak/Smalltalk is a good choice for getting a feel for OO programming and design. The class library, while huge, has some interesting gems in it.

You would do well to pick up different kinds of languages so you can learn their important ideas. Broadly speaking, most of the "common" languages out there hail from the Algol or Simula camps (C, Pascal, Modula 3, Ada, C++, Smalltalk, Perl, C++, Java, ...).

There's also the Lisp family (I'd probably look at Scheme or Common Lisp (which includes CLOS, with its nice support for OO)).

And then there's the functional languages (Prolog, ML, Haskell) that will provide a totally different way of looking at things.

You might also look at assembly language for a couple of processors (do something with a little microcontroller for kicks), and at Postscript, which is interesting from a language point of view (kind of like FORTH with some data types). And maybe APL or J for another completely different view of languages.

This chart diagrams the history of computer languages and has some links to other such charts.

update: clarified CLOS

Replies are listed 'Best First'.
Re: Re: What languages to learn?
by kevin_i_orourke (Friar) on Jun 20, 2001 at 12:50 UTC

    I like the assembly suggestion, but it's a bit too much like work. At the moment I'm writing code for a Texas Instruments VLIW DSP. Most of it's in C but you have to be able to understand the assembly when the compiler screws up (as it often does). VLIW assembly code is a bit of a brain-melting experience.

    On the other hand I can highly recommend microcontroller assembly as a fun way of learning about the opposite of high-level languages. PICs, with their 30-odd instructions, are the ones I've played with.

    Lisp scares me, which probably makes it a good choice to learn next. I might even eventually be able to configure emacs!

    --
    Kevin O'Rourke
    
Re: Re: What languages to learn?
by hding (Chaplain) on Jun 20, 2001 at 17:32 UTC

    ...Common Lisp (and CLOS (its object extensions))

    Just nitpicking, but it's a little bit misleading to refer to CLOS as an "extension" to CL; after all, it's part of the standard (and one of the primary reasons that people use CL, too).