I think it's incredible with hindsight how Java countered many of the mid 90s C++ problems, especially by avoiding multiple inheritance.
It remains a shame that it didn't launch with generics though, and I still think operator overloading would have been good. Had it done so I think a lot more people would have stuck around for when the performance improved with HotSpot.
> 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.
https://cs.gmu.edu/~sean/stuff/java-objc.html