Interestingly, the C world tends to have functions named convert_format_a_to_format_b() (underscores not BiCapitalisation, and lowercase letters preferred). C++ and Java weenies follow the more "object oriented" style convertFormatAToFormatB(). I think Azure Monk is wrong as regards the source: it's not because of convenience (or efficiency in typing -- C/UN*X weenies are big fans of both), it's because of history.

Standard Pascal didn't support the use of underscores in its standard character table; thus, the C style couldn't exist in Pascal. Presumably this further influenced C weenies to use underscores just because they could. Similarly, SmallTalk has a "←" character (used for assignment) where the underscore "_" should live in its character set, so underscores couldn't be used in method names there either.

And SmallTalk is pretty much the parent of modern object oriented languages. Presumably mixedCaseNames (as opposed to underscore_separated_names) are more a forgotten legacy of SmallTalk than some carefully-conceived ergonomic device.