In my opinion, the problem with C and C ++ was that they were invented in the 60s 1 . Java came later and learned a lot due to bugs, bad practices, and dubious decisions often found in C / C ++. After 2001, when C # appeared, I would say that we observed some co-evolution of these two languages. They learned from each other, and also studied in C / C ++ and for the first time in history, from the users themselves! 2
In my case, in order to answer your question, I had to decide to either learn C ++ or Delphi 12 years ago. At that time, using C ++ seemed complicated and tedious. Since then, I switched to Java a couple of years ago, tracking the greatness of C #. In general, in order to become an expert in a particular language, it takes only time. I would rate myself as an experienced programmer, because the meaning of the word "expert" is very well defined on tdwtf, which I hope will never be applicable to me. IMHO.
I think the best way to compare the encoders of different languages is to do it myself, because I think that every argument about the subject is subjective.
1 correct me if I am wrong about dates.
2 maybe not for the first time, but reading articles from the emerging and emerging features of these languages makes me feel like this.
For comparison, I found these links a while ago:
Comparative characteristics of de loslenguajes de programación Java y C #, Mayo, 2003
although it is in spanish and i just looked at the code samples.
Comparing Object Oriented Functions of Delphi, C ++, C # and Java
for another, more diverse comparison on this.
And there’s also an “advertisement” from MS trying to convince you to switch to C # (or C ++, since it is available in VS):
C # for Java Developers (Allen Jones and Adam Freeman, Microsoft Press, 2002)
Or, if you want to do an “independent” study:
From Java to C #: Developer's Guide (Heng Ngee Mok, Addison Wesley, 2003)