Важно придерживаться единственного выбора языка, если это возможно. Очевидно, что если вы пишете неуправляемый C ++ или у вас есть какой-то другой подобный сценарий, будут заметные исключения. После того, как вы расширили свои возможности, многие люди осознали эффективность однородного выбора языка. Большинство известных мне разработчиков столкнутся с проблемой эффективности при переключении языков, даже если они знают это изнутри и снаружи. После нескольких месяцев написания кода на C #, если мне нужно вернуться в VB.NET, чтобы что-то поддерживать, наступил хороший день, когда я должен сознательно подумать о вещах, которые обычно бывают автоматически. Это простые вещи, такие как использование против импорта, преобразование типов и т. Д. Дело не в том, что вы забыли, как это работает, а в том, что ваш разум хочет сделать что-то, как вы это делали в течение длительного периода времени. Очень похоже на старый трюк в салоне: выложить руки на дверную коробку на минуту и затем положить их на бок. Они хотят вернуться, потому что это сигнал, который ваш мозг привык посылать.
Еще один очень важный вывод: этот фактор эффективности важен и в обзорах кода. Если вы работаете в VB.NET и должны рассмотреть C #, у вас будут те же камни преткновения. Конечно, вы понимаете код, но ваша скорость или точность анализа кода не будет такой же, как если бы она была на том же языке, который вы используете в настоящее время.
Есть несколько дополнительных незначительных моментов. Некоторые инструменты ориентированы на один язык поверх другого. Например, Resharper работает как для VB.NET, так и для C #, но он предоставляет больший набор рефакторингов, если вы используете C #. Кроме того, если кто-то в вашей организации поддерживает стандарт кодирования компании, он вносит изменения в эти стандарты вдвое сложнее, если требуется обращение только к одному языку.