I guess it's a variant of the "Teaching my kids to program" language issue…
A little context is in order. At 60, my father is going to retire pretty soon (at least, soon enough that I need to start caring about that stuff). He is a very active person and I'm looking for occupations for his future free time, and one of these could be programming. While he is a history teacher, he is more than capable of it, as he was a early adopter of personal computing back when programming a computer was part of its normal usage; on the Apple ][e he programmed in BASIC little programs that, while entertaining for me (when I was 5), could not really be called games, and later on he taught me programming on this same Apple ][e (and I was only 8).
Most obviously my own starting path, Applesoft BASIC, which is also what he already knows, is no longer relevant in this day and age, and I'm not going to start by teaching him what I'm working with: C (not C++. C.). Too low-level. While he's not strictly speaking a beginner, it's better he restarts programming using one of these newfangled high-level scripting/programming languages I keep hearing about (irony intended): Perl, Python, JavaScript, Ruby, etc. Thing is, I know none of them, so I thought I'd ask here: what is the best language for that purpose?
I'm going to teach myself that language, then teach it to him, so the availability of online teaching material, while useful, is not a requirement. It would be best for the language to Make Sense™, i.e. have as few strange idiosyncrasies or historical arctifacts as possible, it should be obvious as much as possible. I would start with command-line programs, then move to GUI apps. Someone who has programmed line BASIC on an Apple ][e does not need a fancy environment. Popularity of the language, besides being "not dead", is not a big factor. Available bindings/libraries to platform functionality would be useful. Good error diagnostics and debugging is a must. While leisure is the main point, this would be put to use for automation, specialised computations, light stuff, at least at first; after, the sky's the limit. And of course, a new language is something that will be interesting for me to learn as well, since I'll be investing time in it, though that's more of a side bonus.
While these are mostly soft criterion, I do have one hard and fast requirement: it needs to run on Mac OS X. This is non-negotiable.
So, What would you recommend? Right now I'm leaning towards Python, 3.0 in particular.
Epilogue: Thank you all for your answers. I'm now going to install and try out the two winning propositions: Python and Java (with BlueJ), as well as a third: Smalltalk (with Squeak); after having investigated them, I will make my choice (and go ahead on the project with that choice), add a bounty to this question (the amount of which will depend on my reputation at that time) and instanty accept the answer which proposed that choice (I can obviously not put the bounty now, as it'll take me more than a week to choose); unless the choice is Smalltalk with Squeak, in which case I'll put an answer for it and accept it (without a bounty) (sorry wise guy, you cannot add an answer for Smalltalk with Squeak and hope to get the bounty, since you'll have put this answer after I decided to invest my time in it). It's the least I can do. It's not a problem that I don't have a single definitive choice from this question, I had intended to try out a few languages before making a choice anyway, and this question was very useful in coming up with a shortlist. In fact, all answers were useful in helping me clarify criterion and making me think about the project, so thank you all again.