IMHO, they both suck. Just at different things.

I must ask: How do you interate through a list of sequentially organized objects?


Java has a base class Object that all other classes automatically extend. All Collections are written in terms of Object. You have to downcast when pulling something from a collection. Unlike C++, you can just ask what the type of the object is and do something useful from there. But this sucks too. It comes from static typing. I don't much care for static typing. But this is the [link|http://ventedspleen.weblogger.com/discuss/msgReader$7?mode=day|difference] between function calling and message passing languages. There are more analyses of whats good and not good about C++/Java/Smalltalk/ObjectiveC on my blog (which I admittedly don't write for too often).