VB.Net против C # дебаты [закрыто]


18

Я был на рабочих местах, где в начале проекта был задан вопрос «Должны ли мы использовать VB.Net или C #».

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

Итак, между VB.Net и C #, какой язык вы предпочитаете и почему?


2
Просто чтобы добавить ключ к работе, есть некоторые продукты (например, WF дизайнер в VS2010), которые поддерживают только синтаксис VB.Net ...
Дамовиза

Здесь программисты на C # получают больше, чем программисты на VB.NET.
SeanX

Я удалил «вечную» часть названия, которая кажется «неконструктивной». Сам вопрос очень полезен, и качество ответов является гораздо лучшим показателем того, насколько конструктивны пресловутые «шесть руководящих принципов».
Wizard79

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

Ответы:


29

Я предпочитаю C #, чем VB.NET, потому что

  • проще найти программистов / работу:

альтернативный текст

  • легче найти помощь:

альтернативный текст

(из stackoverflow)


3
+1 ТАК быстро заменяет Google как мой любимый источник помощи в программировании.
Анонимный тип

12
Вопрос в том, означает ли в 10 раз больше C # тегов, что предмет освещен лучше, больше использования или у него больше проблем? +1 на наличие работы.
JeffO

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

@ Анонимный: ТАК заменил Google ко дню 2 (больше года назад). У FireFox дома SO, MSDN и Программисты являются моими 3 основными поисковыми сайтами.
IAbstract

@IAbstract, так, правда.
анонимный тип

27

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

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

Первоначальные преимущества BASIC для микрокомпьютеров включали в себя размер и простоту (небольшой синтаксис, который легко анализировать, предназначенный для небольших, достаточно быстрых интерпретаторов и оставляющий место в памяти для реальной программы и данных), интерактивная среда, обеспечивающая эксперименты, и синтаксис это избегало кратких символов и структур для достаточно ясного, подобного английскому синтаксиса. Однако он плохо подходил для больших структурированных программ и, как правило, поощрял использование спагетти-кода. Тем не менее, его доступность и простота сделали его отличным выбором для знакомства с программированием.

QuickBasic обновил синтаксис, чтобы позволить большие более структурированные программы, и добавил компиляцию для более быстрого выполнения.

VisualBasic предоставил мощный, простой в использовании конструктор форм, позволяющий быстро создавать приложения с графическим интерфейсом, в то же время применяя синтаксис QB для использования в сценариях этих пользовательских интерфейсов. Он работал лучше всего, когда использовался для создания пользовательских интерфейсов для низкоуровневой логики, представленной в виде предварительно созданных компонентов (обычно написанных на каком-либо другом языке). Со временем синтаксис становился все более широким и непоследовательным по мере добавления новых функций. Ориентация на разработку сначала пользовательского интерфейса, а затем на заполнение фрагментов сценария хорошо работала для небольших приложений, ориентированных на пользовательский интерфейс, но имела тенденцию поощрять программирование копирования-вставки и изменение кода спагетти, не поощряя повторное использование, сложные структуры данных и разделение интересов. По мнению многих, «код VB» стал синонимом «большого шарика грязи»; «Программист VB» с «неопытным взломом».

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

На данный момент VB.NET продолжает развиваться, постепенно избавляясь от багажа, набирая новый и интересный синтаксис (LINQ, литералы XML). Тем не менее, он не сохраняет почти ни одного из первоначальных преимуществ BASIC: это большой, сложный язык с довольно крутой кривой обучения и ограниченными возможностями для интерактивных экспериментов.

  • Для старых программистов, которые придерживались этого в течение последних 30 лет, это неплохой выбор, если они не ограничиваются этим.
  • Для новых программистов все более расплывчатое сходство программ VB с английским едва ли стоит странных поклонов обратной совместимости и социальной стигме.
  • Для новых проектов VB.NET является странным выбором, если проект не связан с одной из немногих задач, для которых оптимизирован язык: интеграция с плохо типизированными компонентами COM (Office ...) (хотя C # 4.0 значительно уменьшает это преимущество ) или встроенная генерация XML.

4
С C # 4 я не вижу никаких преимуществ, которые VB.Net имеет в отношении интеграции COM. Я думаю, что встроенная генерация XML может быть полезной функцией; Я стараюсь не использовать XML (и был успешным в течение последних 5 лет!), Но если у меня есть проект .net, который должен генерировать много XML, я, вероятно, создам проект VB только для генерации XML.
конфигуратор

3
Мне нравилось читать твой ответ, но он внезапно прекратился. Вы предоставляете историю основных, что интересно, и я предполагаю, что правильно. Я ожидал выяснить, почему вам не нравится VB.NET и / или почему вам нравится C #. «Для новых проектов VB.NET - странный выбор» Почему?
Тим Мерфи

@Tim: мне не нравится VB [.NET], потому что большая часть кода, с которым я сталкиваюсь, представляет собой нетипизированный код спагетти, написанный программистами, которые взяли его на работу несколько лет назад (или обучали такие кодеры). Это не обязательно хорошая причина, чтобы кому-то еще это не нравилось. Лучшая причина в том, что язык сделал слишком много уступок для обратной совместимости ... и все же на самом деле не имеет обратной совместимости. Так что, если вы не хотите писать новый нетипизированный код для спагетти ...
Shog9

20

Я знаком с обоими, но много занимался программированием на VB4, VB5 и VB6. Теперь, когда оба языка в .NET прошли несколько итераций и довольно сходились в своих возможностях, я думаю, что дискуссия совершенно глупая, очень похожая на «какой твой любимый цвет».

Лично мне они оба нравятся по разным причинам.

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

Другая вещь, которая хороша в этом синтаксисе, это то, что он гораздо более явный в отношении закрывающих структур (END IF, END WHILE, NEXT X) по сравнению с моделью брекетинга. Это делает код немного более читабельным и часто позволяет компилятору более точно определять, какой именно номер строки вызывает ошибки компиляции. Если вам когда-либо приходилось искать пропущенные скобки / точки с запятой из-за ошибки компилятора в 50 строках от проблемы, вы понимаете, о чем я.

Кроме того, в столбце VB.NET win, на мой взгляд, отсутствует == / = как оператор сравнения / присваивания. Редкие преимущества наличия отдельного оператора для каждого никогда не компенсируют все (иногда) трудно обнаружить слабые места, которые он помогает создать.

Наконец, я ненавижу чувствительность к регистру в языках программирования. Одна из жалоб на VB состоит в том, что у него так много багажа, но C # продвинул альбатрос чувствительности к регистру C. Я никогда не был в ситуации, когда я хотел, чтобы два идентификатора в одной и той же области различались только в каждом конкретном случае. Это просто делает для занятой работы и замедляет меня. В этом отношении VB.NET получает несколько очков по сравнению с C #.


Программисты C # любят быть лаконичными, поэтому я думаю, что они обычно поддерживают этот синтаксис. Это просто имеет определенную эстетическую привлекательность. Однако с практической точки зрения мне это нравится, потому что оно очень похоже на такие языки, как Java, JavaScript и C ++.

Поскольку я занимаюсь веб-разработкой, требующей программирования как на стороне сервера, так и на стороне клиента, мне легче переключаться между C # и JavaScript, как это часто требуется.

Также мне нравится тот факт, что, по большей части, если бы мне когда-либо пришлось перейти на программирование на Java или C ++, у меня был бы небольшой старт, если бы я использовал C # большую часть времени.


3
+1 за комментарий веб-разработки. Я использую как VB.NET, так и C #, в зависимости от проекта, и мне гораздо легче переходить между C # и Javascript, чем VB.NET и JS.
Paperjam

2
«Я никогда не был в ситуации, когда я хотел, чтобы два идентификатора в одной и той же области различались только в каждом конкретном случае». чисто субъективно. Это как раз одна из причин, почему я предпочитаю C #. При правильном и последовательном применении для всего мира может иметь смысл иметь, например, параметр в конструкторе с именем nameи открытое свойство с именем, Nameа затем назначить его через Name = name;. Пока вы придерживаетесь стандарта кодирования, в противном случае я согласен, это может вызвать путаницу.
Aidiakapi

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

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

Это всего лишь неаккуратный код, потому что компилятор не может его интерпретировать. Если бы все компиляторы были нечувствительны к регистру, это не имело бы значения. Наша задача - не писать код для печати в журнале, а писать код, который выполняет свою работу. «Небрежный» случай никоим образом не мешает этому.
JohnFx

19

Я предпочитаю скобочный синтаксис языков C-стиля более «многословному» синтаксису языков BASIC-стиля.

Мое знакомство с программированием было с Turbo Pascal. (Небольшое программирование на BASIC, которое я делал на Commodore 64, будучи ребенком, на самом деле не имеет значения.) После изучения Java я никогда не оглядывался назад и предпочел синтаксис в стиле C.


4
msgstr "" подробный "синтаксис языков в базовом стиле." - Да, я никогда больше не смотрел на VB, когда увиделif something then code endif
TheLQ

1
Хех, я был удивлен, что кто-то отказался от этого. (Я ожидал, что это будет вопрос Emacs vs Vim.)
Джордж Мариан

3
@TheLQ: а также AndAlso!
Джерри

Я скучаю по своим дням в Турбо Паскале. Это было очень весело.
MetalMikester

1
Я считаю, что синтаксис скобок легче читать. Один общий символ для блока, а не несколько специфичных для контекста слов.
Майкл К

12

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

Различия сейчас чисто культурные и личные. В этой статье интересно прочесть различия между культурами программистов, использующих C # и VB.net

[Примечание: хотя я сам являюсь разработчиком на C #, заключение в связанной статье не обязательно отражает мое личное мнение, это просто интересный альтернативный подход в дискуссии]


8
Это не совсем так: например, в VB.NET нет итераторов, которые являются отличной функцией C #.
Томас Левеск

2
C # не имеет XML-литералов VB.NET: blogs.msdn.com/b/wriju/archive/2008/02/07/…… (хотя я не фанат этой функции по архитектурным соображениям, это круто)
Стивен Стрига

@Thomas @WeekendWarrior: Хорошие примеры, но, чтобы подчеркнуть, я сказал «Функционально то же самое», что они и есть. Они оба компилируются в IL, поэтому возможен один и тот же набор функций. Эти примеры являются просто языковыми ярлыками для функциональности, которая может быть достигнута другими способами.
Саймон П Стивенс

8

Я пришел в .NET из C и C ++ (с небольшим количеством Java, Ada и Pascal), поэтому C # был для меня естественным прогрессом.

Если бы пришла работа, требующая VB.NET, я, конечно, не отказался бы.


6

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

Большая часть опыта моего коллега по программированию - это COBOL и VB6, поэтому VB.NET был более удобным выбором языка .NET для нас как команды. У нас не было веской причины, чтобы сделать изучение C # требованием, поскольку они функционально одинаковы.

Тем не менее, изучение C # определенно входит в мой список дел.


2
У меня такие же проблемы. :) и я предпочитаю VB.NET так же, как я предпочитаю кокс, а не пепси. Но если мы начнем новый проект, C # - лучший выбор, потому что мы найдем больше программистов, которые знают и предпочитают C #. Я понял, что стратегия MS для VB заключалась в том, чтобы вывести сообщество VB на платформу .NET.
Паготти

5

Я предпочитаю C #.

Я начинал как программист VB.NET, но с течением времени стало очевидно, что довольно много новых функций появятся сначала в C #, а затем в VB.NET (например, автоматическое свойство). И сообщество, окружающее C #, гораздо более живое, чем сообщество VB.NET.

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


3
"особенности, приходящие в C # в первую очередь", однако, это не всегда так. См. Stackoverflow.com/questions/181188/… (просто чтобы добавить еще один гаечный ключ в работу)
Примечание для себя - придумайте имя

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

1
С каждым поколением инструментов аргументы «функций» немного меняются. Единственное, что я могу думать о том, какой C # имеет по сравнению с vs2010, которого нет в vb.net, - это итераторы; В отличие от этого, vb.net предлагает именованные индексаторы, фильтры исключений, литералы XML, оператор «Есть», который выглядит в 1000 раз лучше, чем Object.ReferenceEqualsобработка событий, которая почти сделана правильно, и более плавную работу IDE. VB.net позволяет, хотя и немного неудобно, иметь инициализаторы полей, использующие параметры конструктора, или безопасно создавать IDisposableобъекты без использования ThreadStaticпеременных; C # нет.
суперкат

5

В дополнение к другим ответам, опубликованным здесь, я бы выбрал C # вместо VB, потому что программисты на C # получают больше денег. Больше опыта с C # = больше $$ :)

Я знаю, что оба языка почти одинаковы, и переключаться между ними очень просто, но я думаю, что когда руководство смотрит на кучу фигурных скобок и точек с запятой, они принимают тот факт, что мы делаем то, что они не могут делать, где с VB. Нет, они могут посмотреть на это и сказать: «О, это не должно быть так сложно, если я могу это понять».


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

4

C #, потому что я могу переключаться между ним и Java с минимальными усилиями

В VB.NET совершенно другой синтаксис. C #, будучи похожим на Java и другие языки, дает мне больше возможностей для быстрой адаптации к новым вещам. Поскольку выходные данные C # и VB.NET практически взаимозаменяемы, имеет смысл использовать C #. Кроме того, если код вашей компании находится на C #, вы, скорее всего, сможете научить Java-разработчика программировать на C #, чем Java-разработчик VB. Есть только тонкие преимущества, но тонкое все еще преимущество.


3

Отложив мои личные предпочтения в сторону. Как кто-то, кто набирал (и пытался быть принятым на работу) в последнее время, когда у нас были эти дебаты в офисе, общий консенсус заключался в том, что нам следует перейти к C # из VB.

Почему? Потому что C # был более распространенным на рынке (во всяком случае, вокруг нас), что позволило нам легче набирать и легче набирать.

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


3

Будучи немного более старшим разработчиком (на 59 лет "немного" старше?), Я сначала выучил BASIC на Commodore VIC-20, научил себя Turbo Pascal (v1!), Потом изучал COBOL в колледже и провел 14 лет, разрабатывая IBM мейнфреймы, с небольшими изменениями написания приложений среднего размера в Revelation BASIC (вариант PICK BASIC) и нескольких утилит в Modula-2, прежде чем перейти к VB5 и VB6. А потом пришел .NET.

Из-за моего базового опыта я решил начать с VB.NET, только чтобы обнаружить, что я продолжал пытаться делать вещи «по-старому», и это сводило меня с ума (хорошо, больше сумасшествия). В связи с тем, что я проделал некоторую работу в C, я подумал, что я должен дать C # повод посмотреть, как все прошло. И, Боже мой, это было похоже на выход из темного туннеля в ясный дневной свет! Совершенно неожиданно. И я обычно издавал пренебрежительные шумы о том, что C является языком «только для записи» - «настолько трудно понять, что программист C не мог понять, что его собственный код делал через 6 месяцев после того, как он написал его», - наблюдение, сделанное Полуизвестный романист, который, как мне показалось, в то время звучал мило.

Так что из-за того, что я немного незнаком с C, мне было парадоксально легче изучать программирование на .NET, чем гораздо более знакомую базовую парадигму. Я все еще люблю VB6, но полюбил C #. Лучший язык программирования на планете.


1
Интересный ответ, я думаю, что это, по крайней мере, частично опровергает идею о том, что «старшая толпа» склонна придерживаться VB.NET над C #
анонимный тип

3

Я развиваю в Visual Basic .Net с 2001 года, и мне это нравится, и я ненавижу это !!!

Порядок представления этих точек просто основан на порядке, в котором он пришел мне в голову ...

В vb.net с visual studio есть визуальный разрыв строки между каждым методом, свойством. Для многих людей это не очень хорошая причина отдавать предпочтение vb.net над c #, но я не понимаю, почему команда c # в Microsoft не внедрила его. Есть надстройка, которая рисует эту черту в c #, но еще раз спасибо Microsoft за команду ac # и команду visual basic, которые не общаются друг с другом.

В vb.net, когда вы создаете winform, у вас есть два комбинированных списка в Visual Studio вверху редактора, и вы можете автоматически генерировать событие при выборе события в правом комбинированном окне. Когда вы прикрепляете десятки событий каждый день, может быть очень обременительно не иметь этой функции. С c # у вас есть маленькая кнопка в верхней части сетки свойств, которая может генерировать события, но это не так быстро, как в vb.net. Более того, если вы присоединяете событие элемента управления в c # и удаляете элемент управления в форме, делегат, созданный в автоматически сгенерированном коде для обработки события, должен быть удален вручную. Еще раз спасибо Microsoft.

В vb.net, когда вы пытаетесь изменить метод, содержащий запрос linq, без изменения самого запроса, нет проблем, но в c # весь код метода блокируется. Если у вас много запросов linq или лямбда-выражений, функция редактирования и продолжения быстро станет старой доброй вещью. Хорошо, немного преувеличения ... но :)

В vb.net, когда вы создаете имя метода и нажимаете ввод, автоматически создается 'end sub'. В c # сделай сам. Хорошо, если у вас установлен resharper или devexpress, будет лучше, но почему все эти маленькие, но замечательные функции не были реализованы в c #.

В vb.net, когда у вас есть ошибки в вашем коде, ошибки автоматически отображаются, и когда вы исправляете их, эти ошибки удаляются из стека в режиме реального времени. В c # вы должны построить свой проект, чтобы понять, что вы успешно исправили или нет указанные ошибки. Почему команда C # не имеет возможности проверить в режиме реального времени ошибку, как в vb.net. С большим решением, никакая проверка ошибок в реальном времени не может быть очень хорошей оптимизацией производительности, но мне нравится видеть, как стопка ошибок исчезает, пока я ее исправляю.

Как упомянул другой человек, я думаю, что легче читать условия vb.net, если ... конец if, выберите case ... end select, но с помощью скобки рисования devexpress, забудьте про то, что я сказал.

В vb.net много визуальных ошибок в визуальной студии. Просто упомяну один из них в Visual Studio 2010, intellisens не фильтруют правильно перечисление, если у вас активирован режим «общий» вместо «все».

С vb.net вас воспринимают как глупого парня, потому что статически, более плохие программисты используют vb.net вместо c #, потому что c # труднее учиться и продвигать лучшую практику программирования.

Как уже говорилось, у программиста на c # больше шансов получить хорошую работу с большим количеством денег.

Во главе клиента, vb.net = парень, который программирует в своем подвале с большим количеством спагетти кода. c # = вау, ты очень умный Дело в том, что не потому, что вы программируете на c #, вы делаете хорошую программу, а статически, да.

Учитывая все эти моменты, я решил преобразовать весь свой код VB в C #. Я программирую со всеми лучшими практиками объектно-ориентированного проектирования, шаблонов проектирования, чистого кода со стандартами и строгим синтаксисом, и я могу программировать так в течение 50 лет, но с точки зрения сообщества, я не хороший программист. Я преобразую свой код в C # без других лучших практик, и я буду другим человеком; отличный парень, которого ты должен уважать ..... :( какая шутка ... !!! но это реальность.


2

Вот способ взглянуть на это: между SO и CodePlex, какой язык более популярен? C # или VB.Net?

Иногда хорошо следовать за стадом, потому что это стадо сможет помочь вам, когда вам это нужно. По умолчанию C # будет быстрее, чем Vb.Net. Я считаю, что использование Option Strict может выровнять его. В последний раз, когда я сравнивал IL между этими двумя типами, безопасность типов в VB.Net закончилась тем, что к IL добавилось еще около 15%. Это приводит к дополнительным накладным расходам. И ... учитывая языки, которые делают в основном то же самое, я выберу более быстрый. Мое удобство не должно отвергать опыт моего пользователя в целом.


2

Мне нравится говорить, что единственная причина, по которой BASIC по-прежнему популярен, - это то, что это был первый продукт Microsoft, и последние 35 лет его пихают в горло. Это должно было умереть давным-давно.

С учетом вышесказанного я работал над двумя крупными проектами .NET, и оба они были выполнены с VB.Net - хотя в C # было немного, потому что либо перевод был сучьим, либо конструкция не существовала в VB.Net. Единственное преимущество, которое я вижу в VB.Net, состоит в том, что редактор Visual Studio гораздо более дружественен к нему (по моему опыту в любом случае), чем к C # - Intellisense кажется лучше, как и автоформатирование (обратите внимание, что, поскольку я не использовал C #) столько же, может я просто что-то упустил в конфигурации IDE ...)

Основным недостатком VB.Net является то, что они привнесли много дерьма эпохи VB6 в .NET 1.x, чтобы упростить преобразование кода VB6. Это все еще там, и VB6-кодеры кодируют новый код, используя эти ... "расширения", а не более нейтральные классы / методы .NET / что угодно. Я не знаю, сколько раз я спрашивал своего босса, почему он все еще использовал это дерьмо. "Но ... Это работает ..." Верно. Эй, я люблю суку.

При поиске помощи в Интернете я обнаружил, что подавляющее большинство решений были на C # - посмотрите форумы MSDN, различные блоги и т. Д. Книги имеют тенденцию концентрироваться на C #, и, если есть версия VB, она обычно приходит через несколько месяцев (например, Pro LINQ .... от Apress.)

Многие языки имеют общую родословную C, что значительно упрощает переключение между C, C ++, C #, Java, PHP и некоторыми другими. PHP немного растянут, но он имеет много C-подобных конструкций. VB? Ну, это в значительной степени своя маленькая вещь, и это все.

Руководитель проекта в моей организации недавно сказал мне, что все больше и больше новых проектов разрабатывается с использованием C # вместо VB - НАКОНЕЦ. Когда в нашей организации появился .NET, они более или менее официально присоединились к VB.Net из-за того, что все кодирование VB6 уже осуществлялось. Силы, которые позже признались мне, что это был не лучший их ход.

Как указывал кто-то другой, я бы не сказал «нет» проекту VB.Net, но я все еще надеюсь, что он будет постепенно искоренен из-за новых разработок на моем рабочем месте.


1

Что ж, сегодня практически нет реальной причины использовать VB.net. Вначале это был просто способ дать программистам VB знакомый синтаксис, но, по сути, это было BASIC-подобное переназначение C #. Таким образом, его единственное реальное преимущество - более знакомый синтаксис, а его основной синтаксис также является его единственным реальным ограничением.

С течением времени, когда два языка развивались вместе, единственное существенное различие - это my пространство псевдонимов.

Я бы посоветовал каждому программисту .net, который не знаком с C #, изучать его, так как сообщество довольно обширное, а C-подобный синтаксис является общим для большинства наиболее используемых языков.


Еще одно важное соображение о том, почему существует VB.NET, заключается в том, что он облегчает путь обновления для проектов, которые были в ASP «Classic» / VBScript или VB6. Было гораздо меньше работы по переносу больших существующих приложений.
JohnFx

1

VB язык легче читать для новичков, они, как правило, пишут в нем свое первое, второе и третье приложения, и мы все знаем, как кодируются наши первые приложения - ужасно.

Программисты из C ++, Java и т. Д. Перешли на C #, а разработчики VB.NET - из VBA, VB и BASIC, которые являются основными нетрадиционными программистами.


1

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


1

Я предпочитаю VB .Net над C #,

  • (97) ...
  • (98), потому что я изучил VB еще до того, как узнал о C #.
  • (99), потому что я уже купил том на 10000 страниц на VB .Net.
  • (100), потому что VB не имеет фигурных скобок.
  • (101), потому что все ненавидят VB.

0

C #. Это потому, что я сделал C и Java, поэтому я чувствую, что C # более читабелен для меня. C # для меня, как VB.NET для бывших программистов VB.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.