Недавно я присоединился к новой команде разработчиков, где языковые предпочтения смешаны на платформе .net.
Dev 1: Знает VB.net, не знает c #
Dev 2: Знает VB.net, не знает c #
Dev 3: Знает c # и VB.net, предпочитает c #
Dev 4: Знает c # и VB6 (VB.net должен быть довольно легко подобран), предпочитает c #
Мне кажется, что лидерами мысли в .net-пространстве являются разработчики c # практически повсеместно. Я также подумал, что некоторые сторонние инструменты не поддерживают VB.net, но когда я начал изучать его, я не нашел хороших примеров.
Я бы предпочел, чтобы вся команда работала на c #, но если нет веских причин для отстранения проблемы от предпочтений, я не думаю, что это правильный выбор.
Есть ли какие-то причины, по которым я должен увести людей с VB.net?
Ответы:
Нет действительно убедительной причины заставлять кого-то менять языки, если у кого-то нет функции, которая будет особенно полезна или экономит время для вашего проекта (-ов). Они оба будут компилироваться в IL и работать одинаково (при условии, что
Option Strict
это включено в VB.NET ... в противном случае вы можете понести штрафы за позднее связывание). Все остальное действительно является преференциальным (не отрицать это вообще, но это не объективная метрика).Я бы посоветовал взглянуть на списки вакансий в вашем регионе и посмотреть, какой язык является более распространенным как в предложении работы (т. Е. Объединение труда для обоих языков). Видение того, какой из них обеспечит вам больший или лучший трудовой резерв, вероятно, станет вашим наиболее убедительным показателем.
источник
К счастью, ответ прост: нет «лучшего» языка. Все языки .NET используют в своей основе функциональность из набора классов, предоставляемых .NET Framework. Следовательно, все, что вы можете делать в VB.NET, вы можете делать в C # и наоборот. Единственные различия между языками - только синтаксическая.
Программисты на C ++, Java и J ++ предпочтут краткий синтаксис C #. Программисты Visual Basic (VB) могут предпочесть придерживаться того дьявола, которого они знают - Visual Basic .NET без учета регистра, псевдо-естественного языка. Если у вас есть программисты VB, и они настоящие программисты (см. Option Strict ON), вы получите те же результаты. VB более многословен ... C # - бейсболист с чувствительностью к регистру.
источник
On Error Resume Next
один отправит меня к C #.Module
Концепция также очень опасно. Это похоже наstatic class
в C #, но ... все в нем доступно глобально без ссылки на родительский класс и автоматически статично без каких-либо других указаний ... за исключением того, что родительский класс является модулем ...!Честно говоря, команда разработчиков Dev должна использовать один и тот же язык или, по крайней мере, знать одни и те же языки.
Это поможет в перекрестном обучении и поддержке различных приложений, которые создает команда разработчиков.
В конце концов, VB против C # - это битва предпочтений, но команда должна быть на той же странице, на которой она будет использовать или поддерживать.
источник
Разработчик должен использовать язык .NET, который является стандартом для команды. ИМО, должен быть один язык, который используется (если не может быть сделано чрезвычайно убедительное доказательство).
Я думаю, что большинство людей здесь предпочитают C #, но это не столько технический вопрос, сколько политическое или деловое решение. Определите, какой язык .NET использовать, а затем используйте его. Теперь, очевидно, есть куча факторов, которые необходимо учитывать:
источник
Фактически, в VB.NET есть несколько функций, которых в настоящее время нет в C #: литералы XML и синтаксис запроса для использования метода Aggregate в LINQ.
источник
Вы можете проверить эти три статьи, которые сравнивают C # и VB.NET:
Все они, кажется, дают очень логичные аргументы и сравнения между ними. Лично я голосую за C # (моя компания выбрала C # для наших проектов ASP.NET, когда мы перешли от классической ASP).
источник
В 2003 году я был в очень похожей ситуации, в которой вы находитесь сейчас. Я управлял командой, которая переходила на ASP.NET из ASP Classic. Большая часть нашей команды имела опыт работы с VBScript в качестве языка де-факто для ASP, но примерно половина команды предпочла C #, несмотря на немного более сложный путь перехода с ASP / VBScript. В конечном итоге я выбрал VB.NET, но, оглядываясь назад, я действительно хотел бы пройти путь C #.
В 5-летний юбилей этого решения я написал статью в блоге о моем обосновании принятия решения и попытался дать преимущество моей ретроспективе другим менеджерам по развитию, пытающимся сделать тот же самый звонок. Вот ссылка на статью:
«Ретроспектива менеджера по решению C # против VB.NET»
Короче говоря, для тех, кто не хочет читать всю статью: я не думаю, что проект был более плохим для выбора VB.NET вместо C #, и, вероятно, сэкономил нам много времени в краткосрочной перспективе. Самая большая проблема была с рекрутингом. Я бы с радостью нанял программиста на C # или VB.NET для работы на любом языке. Они действительно не так уж сильно отличаются. Тем не менее, независимо от того, заслуживает он этого или нет, в VB.NET существует стигма, которая заставляет большое количество разработчиков избегать рабочих мест, где они знают, что будут работать с ним в качестве основного языка.
источник
Я бы склонялся к C #, потому что он менее многословен и по моему опыту гораздо более распространен в Интернете. Я также утверждаю, что C # или VB.NET легко и быстро изучить, до такой степени, что это незначительно и незначительно. Платформа .NET, с другой стороны, огромна и постоянно развивается. Освоение .NET занимает много лет, но освоение C # или VB.NET может занять несколько месяцев или меньше.
источник
Я думаю, что у @Anna Karin есть хорошая точка зрения, поэтому вам не нужно беспокоиться о библиотеках. По крайней мере, я не могу вспомнить ни одного, который просто работает с c #, а не с vb.net.
Другим важным моментом является то, что это усложнит проверку кода между членами одной команды, если они работают с разными языками. Я думаю, что это лучшая идея использовать какой-либо язык общения, чтобы уменьшить трения в общении.
источник
Хотя я согласен с предыдущим ответом, что .NET должен быть одинаковым по функциональности, это не всегда так, но достаточно близко, чтобы, если у вас простой проект, это не имело значения.
Основная причина, по которой я бы назвал переход на C # для всей команды, заключается в том, что именно на этом языке написано большинство примеров, и большинство проектов с открытым исходным кодом публикуют исходный код на C #. Поэтому, если ваша команда не может использовать такой ресурс, вы можете излишне ограничивать себя.
источник
C # и VB.NET основаны на платформе .NET; разработчикам, работающим в .NET, важно знать .NET, принципы, методы, шаблоны ... В этом случае переключение между языками не будет проблемой - речь идет главным образом о синтаксисе. Возможно, в смешанной команде все они должны попытаться выучить оба языка (это не имеет большого значения), но это может быть важно для будущего сотрудничества между членами команды.
источник
Я бы сказал, что одним из преимуществ использования всех языков на одном языке является то, что любой разработчик может работать с любой частью кода.
Кроме того, VB.NET и C # отличаются только синтаксисом в .NET. И код, написанный на обоих языках, может прекрасно сосуществовать в одном проекте.
источник
Я бы пошел с C #, потому что:
источник
Мое мнение таково: это позволяет разрабатывать на основе контракта интерфейс, и разработчик должен иметь возможность кодировать класс на любом языке, который он пожелает, и, вероятно, разделять классы низкого / высокого уровня в разных сборках. Пока классы уважают запрошенный интерфейс и реализуют требование, проблем не должно быть.
источник
Я согласен со многими другими ответами здесь. Я был частью двух команд, которые должны были принять это решение. В обоих они изначально решили, что разработчики могут выбирать, так как два языка работают вместе. Однако в течение первого года они оба хотели, чтобы они просто выбрали C # и поставили новое требование, чтобы все новые проекты были на C #.
источник
Причины использовать C #:
Причины использовать VB.NET:
источник