Стандарты компании: C # .NET против VB. - PullRequest
4 голосов
/ 02 июня 2009

Просто вопрос, который время от времени возникал на моей старой работе, когда мы рассматривали возможность пополнения нашего персонала для разработки дополнительными органами. Действительно ли это важно, если вы являетесь разработчиком .NET, если все ваши разработчики пишут код на одном языке против другого.

Я, пожалуй, начинал, как и многие другие 4 миллиона человек, когда-то еще с Visual Basic, а затем мигрировал в VB.NET. Другой разработчик, который у нас был в то время, пришел из C-фона и перешел на C # .NET. По сути, он мог очень быстро кодировать на своем родном языке, и я смог сделать это на своем, и поскольку наши проекты действительно не пересекались, не было никаких проблем, пока наш начальник в основном не сказал, что нам нужно переключиться на C # ... для других причина, чем стандартизация.

Итак, я думаю, что «субъективная» часть вопроса заключается в том, лучше ли жертвовать производительностью ради согласованности? Теперь я должен дать количественную оценку, сказав, что мы были МАЛЕНЬКИМ магазином, в котором было менее 5 разработчиков, и учитывая, что большинство планов наших проектов были выполнены на коктейльных салфетках, это не то, что мы собирались в ближайшее время для 6-Sigma, поэтому это не было похоже на «стандарты» были жестким и быстрым правилом.

Спасибо.

Ответы [ 11 ]

12 голосов
/ 02 июня 2009

C # определенно становится предпочтительным проспектом для Microsoft, и имеет смысл выбирать язык, который будут использовать все разработчики, просто исходя из того факта, что если разработчики переходят между задачами, имея проекты на едином языке (не говоря уже о кодировании) соглашения) значительно упростит ведение этих проектов для всех участников.

3 голосов
/ 02 июня 2009

Если это поможет, я недавно написал в своем блоге статью, в которой вспоминаю свое решение стандартизировать наш магазин для разработки на VB.NET поверх C # и то, насколько хорошо мои различные предположения подтвердились, и некоторые вещи показали мне ретроспективно.

Вот ссылка: " Ретроспектива менеджера по решению C # против VB.NET "

Относительно того, следует ли стандартизировать весь магазин на одном языке. Я бы сказал, что есть определенные преимущества. Наиболее очевидным является то, что переключение вперед и назад, когда вы работаете над разными проектами, повлечет за собой некоторые умственные затраты, чтобы каждый раз заново акклиматизироваться. Конечно, будет меньше, если вам придется делать это часто, но чтобы оправдать дополнительную сложность, должна быть некоторая компенсирующая выгода.

В конечном счете, мой совет - стандартизировать один или другой на основе следующих критериев:
(1) Если у вас большая кодовая база VB, есть хороший аргумент для стандартизации в VB.NET.
(2) Если бы все остальное было равным, я бы склонялся к C # по ряду причин, упомянутых в статье выше.
(3) Тщательно примите во внимание предпочтения вашей текущей команды и общее согласие разработчиков на вашем рынке, что вы попытаетесь нанять. Выбор языка имеет большое значение для морали и найма.

3 голосов
/ 02 июня 2009

Я думаю, что имеет смысл выбрать один и привлечь всех. Жертва в производительности будет недолгой, компетентные разработчики быстро мигрируют.

Некоторые преимущества:

  • Ваш последний разработчик VB и команда сокращаются ... ох ...
  • один из разработчиков завершает работу, и вы должны принять его код
  • и т.д.
2 голосов
/ 02 июня 2009

наш начальник сказал, что нам нужно переключиться на C # ... по другой причине чем стандартизация. (...) Так что я думаю «субъективная» часть вопроса есть, лучше пожертвовать производительность для согласованности?

Конечно нет. Вопрос только в том, какую ценность имеет эта «последовательность» с точки зрения будущей производительности, потому что производительность - это все, что имеет значение. «Последовательность» сама по себе не является деловой ценностью. Это может только помочь вам достичь большей производительности в будущем.

Несколько факторов должны быть сбалансированы:

  • (+) Завтра люди должны будут поддерживать только один язык, самый популярный язык .Net: C #. (См. Примечание 1)
  • (-) Сегодня вы должны изучить C #, что является платой для вашей компании, если вы не делаете это бесплатно в выходные дни. Конечно, это (-) с точки зрения стоимость . Изучение C # само по себе хорошо, оно просто стоит.
  • (-) Сегодня после изучения C # вы или кто-то другой должен переключить один проект с Visual Basic .Net на C #. Это имеет стоимость, в зависимости от количества LOC проекта. Также могут быть ошибки, поэтому вам нужно перезапустить свои модульные тесты, пройтись по всем сбоям и устранить их. Кроме того, вам нужно повторить интеграционное тестирование, чтобы гарантировать, что все работает хорошо.

Вы не можете сказать, каков будет результат баланса с этой информацией. Но, в любом случае, вам не нужно ничего рассказывать, поскольку ваш начальник, по-видимому, обладает лучшей информацией и уже принял решение. Все, что вам нужно сделать, это сделать это на самом деле.

Примечание 1: Однако это рассуждение опасно близко к «миру было бы лучше, если бы VB.NET не существовало», что может быть слишком сильным утверждением. VB.NET или сочетание обоих языков может быть хорошим вариантом в некоторых сценариях.

2 голосов
/ 02 июня 2009

Так что я думаю, что «субъективная» часть вопрос в том, лучше ли жертвовать производительностью для Консистенция

Конечно нет. Что хорошего в последовательности, само по себе? В конечном итоге цель согласованности - это производительность. Имея это в виду, я бы предположил, что в долгосрочной перспективе лучше всего было бы использовать каждый код на одном языке ... в общем, в долгосрочной перспективе, изменение и поддержание кода тратится гораздо больше времени, чем на написание и я думаю, что если бы люди потратили время на разгон, было бы лучше, чем постоянно переключаться назад и вперед.

2 голосов
/ 02 июня 2009

Я бы сказал, пойти на все, что работает. VB.NET и C # используют одну и ту же базовую среду, поэтому вы должны иметь возможность читать код друг друга, и, немного погуглив, вы сможете изменить его тоже.

Я бы сказал, пойти на повышение производительности .. в конечном счете, клиент будет заботиться, если он написан на VB.NET или C # ?? Но, сказав, что вы должны думать о ремонте.

1 голос
/ 02 июня 2009

Каким ты видишь себя магазином?

VB.NET сильна на рынках, которые напрямую зависят от Office, возможно, и клиентских приложений, в то время как C # особенно силен в серверных и более крупных приложениях.

Возможно, дело не в том, чтобы следовать вашему или его выбору, а в том, чтобы сделать выбор в соответствии с характером магазина.

1 голос
/ 02 июня 2009

Мы все еще смешанная языковая группа, где я работаю; однако, смешанный с целью. Почти все проекты, связанные с аппаратным обеспечением, выполняются на C ++ (я знаю, что это не ассемблер :(), а все почти все приложения Windows выполняются на C #.

Учитывая популярность и простоту C #, я бы сказал, что в интересах компании перейти на него, когда у них появятся новые, более экологичные сотрудники.

0 голосов
/ 02 июня 2009

Одним из преимуществ использования платформы .Net для разработки является тот факт, что у вас есть возможность развиваться на языке, который лучше всего сможет выразить вам решение данной проблемы.

Произвольное правило IMO не должно препятствовать использованию вами языка F # или языка DLR, когда эти языки будут более естественными, чем императивный язык, такой как C # или VB.Net.

С VB.Net и C # принять более сложное решение, потому что языки очень похожи, но если вам нужно много работать с XML, то литералы XML VB.Net могут помочь сделать код более понятным, и наоборот C # Краткий синтаксис и поддержка анонимных методов могут прояснить ваши намерения.

0 голосов
/ 02 июня 2009

Я думаю, что это также идет в ногу со стандартами стиля кодирования. Действительно ли есть причина, по которой команда разработчиков предпочитает использовать 3 пробела для вкладок, а не 4? На самом деле в этом решении нет никаких технических или деловых преимуществ, кроме единообразия и того, что код каждого выглядит одинаково, поэтому при переключении между файлами мой мозг не должен приспосабливаться к новому форматированию.

То же самое относится и здесь к единообразию для C # и VB.net. Нет никакого технического или делового преимущества в том, чтобы брать одно над другим (ПРИМЕЧАНИЕ: я уверен, что если вы посмотрите достаточно внимательно, вы сможете найти что-то действительно неясное). Но при переходе от проекта к проекту помогает унифицировать код каждого, чтобы людям не приходилось переключаться с мышления на C # на мышление на VB.net.

...