Как сказала Элизабет Баррет Браунинг: как я тебя люблю? Позвольте мне сосчитать пути.
Прошу прощения за качественный (по сравнению с количественным) аспект этого поста.
Сравнение этих двух языков (и связанных с ними времен выполнения) очень сложно. Сравнения могут проводиться на многих уровнях и фокусироваться на многих различных аспектах (таких как разработка графического интерфейса, упомянутых в предыдущих статьях). Предпочтение между ними часто личное, а не только техническое.
C # изначально был основан на Java (и CLR на JRE), но, IMHO, в целом вышел за пределы Java по своим возможностям, выразительности и, возможно, полезности. Контролируемая одной компанией (а не комитетом), C # может двигаться вперед быстрее, чем Java. Различия между выпусками и выпусками с Java часто играют наверстывать упущенное (например, недавнее добавление лямбда-выражений в Java, которое долгое время было в C #). Ни один из языков не является супернабором другого во всех аспектах, поскольку оба имеют особенности (и недостатки), которых нет у других.
Детальное параллельное сравнение, вероятно, займет несколько сотен страниц. Но моя сеть состоит в том, что для большинства современных задач программирования, связанных с бизнесом, они похожи по мощности и полезности. Наиболее критическое различие, вероятно, в мобильности. Java работает практически на всех популярных платформах, в то время как C # работает в основном только на платформах на базе Windows (игнорируя Mono, который не был широко успешным). Java, благодаря своей мобильности, возможно, имеет большее сообщество разработчиков и, следовательно, больше сторонних библиотек и поддержки фреймворка.
Если вы чувствуете необходимость выбирать между ними, ваш лучший критерий - это ваша платформа интересов. Если вся ваша работа будет выполняться только в системах Windows, IMHO, C # / CLR, с его более богатым языком и способностью напрямую взаимодействовать с нативными API-интерфейсами Windows, является явным победителем. Если вам нужна межсистемная переносимость, то Java / JRE - явный победитель.
PS. Если вам нужно больше навыков переносимых рабочих мест, то IMHO Java также победитель.