> I think it's incredible with hindsight how Java countered many of the mid 90s C++ problems, especially by avoiding multiple inheritance.

This is because Java is based on an older language called Objective-C that doesn't have multiple inheritance :)

It's not based on C++, that's just the other OO language from the era people usually think of.

> This is because Java is based on an older language called Objective-C that doesn't have multiple inheritance :)

No it's not, certainly not any more than it's "based" on Smalltalk.