Programming languages

Squeak

This is a great programming environment based on Smalltalk. Freely downloadable, and open-source as you've never known it. I've done a version of the classic snake game (a.k.a Worm or Nibbles) on it. It happens to be my first Smalltalk program. You're welcome to download it.
Squeak is object-oriented, uses garbage collection, is based on a virtual machine and has been ported to lots of architectures. Yes, it's years ahead of Java.

Links:

Scheme and Common Lisp

Scheme the language that Abelson and Sussman used for Structure and Interpretation of Computer Programs, which is the best computer book ever, I think. It's a pity that this language, together with its brother Common Lisp has been snubbed by so many people, because both are extremely elegant and flexible languages with a long history.
The bad thing about these languages is that relatively few people use them, so a lot of libraries required in today's world (SQL, http, graphics) haven't been developed, or have been developed in many incompatible versions, but not standardized. Still, if you're programming to solve a problem, rather than building software, Lisp is a fine choice.

Links:

Java

I don't like it much per se. I think the syntax is clumsy, and it forces you to write a lot of code that is actually not a part of your program.

But I think it's a step forward for the following reasons:

C and C++

The undefeated standard. Portable assembler. Everybody should learn it some time. I wrote a library of efficient morphological image processing operations in C++. You can download it here. You'll need TIFFlib, and if you want graphical output, not just TIFF files, you'll need GTK+.