I'll probably get flamed for writing this in an article about Java, but...
I'm of the opinion that Obj-C is by far the clearest OO language i've seen yet. It's so simple and uncluttered.
It's very message centric, and for me at least, that made it easy to see in my mind the connections i was making.
For those of you who may not be familiar with Obj-C, it looks like this:
I personally like the bracket style, which makes it easy to pick out nested messages.
[Receiver1 Message1:[Receiver2 Message2:Argument2]]
It seems almost instantly obvious what's going on.
Yeah, it's a superset of C, and C isn't as 'convenient' as Java can be (though, with Apple's runtime, and the way it handles object lifetimes with reference counting, it's pretty easy to make sure things are released properly).
But then again, if you want to teach someone the simplest possible language, teach them Basic (just for the record, i can't stand that language).
Complexity isn't bad, as long as the rules are presented in a simple and straightforward manor. Kinda like the game of Go. :)
Which, i suppose, is the point of this article. I whole-heartily agree, most intro to programming classes are horrible. My first was on C++. I'm not a big fan of the language, i wonder why? :)