To jump in on the operator overloading discussion: I think it's worth pointing out that C++ is not the only language that allows such things, and we shouldn't get stuck on its eccentricities as the definition of the feature. I believe Smalltalk had operator overloading, and Ruby kept it as well with (as far as I know) no real complaints from Ruby programmers. In these languages, operators are just methods that objects respond to. Objective-C 2 already extends in the dot operator to work with objects -- allowing other operators to take on special behaviors isn't too radical a stretch.
by Chuck — Sep 23