They have very different programming models, think Simula versus Smalltalk. You can use the two-headed beast that is Objective-C++, but there's varying levels of compatibility between the languages (in the 64 bit ABI, they share exceptions, in the 32 bit, they don't) and other various oddities they essentially mean they still remain two separate languages that have been kludged together.