VB.Net проти дискусій C # [закрито]


18

Я був на робочих місцях, де на початку проекту було поставлено питання "Чи слід використовувати VB.Net або C #".

Зрозуміло, що зараз, мабуть, рідше доводиться приймати це рішення, ніж це було в перші дні. Ні, особливо, враховуючи тенденцію до конвергенції мови, але це все ще може бути бурхливою дискусією.

Отже, між VB.Net та C #, яку мову ви віддаєте перевагу та чому?


2
Просто для того, щоб кинути гайковий ключ у роботі, є деякі продукти (наприклад, WF-дизайнер у VS2010), які підтримують лише синтаксис VB.Net ...
Дамовіса,

Тут програмісти на C # платять більше, ніж програмісти VB.NET.
SeanX

Я видалив "Вічну" частину назви, яка здається насправді "неконструктивною". Питання саме по собі дуже корисне, а якість відповідей - набагато кращий показник того, наскільки конструктивним є той сумнозвісний "шість настанов".
Wizard79

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

Відповіді:


29

Я віддаю перевагу C # над VB.NET, оскільки

  • легше знайти програмістів / робочих місць:

alt текст

  • простіше знайти допомогу:

alt текст

(від stackoverflow)


3
+1 ТА швидко замінює google як мій кращий джерело допомоги з програмування.
Анонімний тип

12
Питання полягає в тому, чи означають, що 10 разів більше тегів C # означає, що тема краще висвітлюється, більше використовується або є більше проблем? +1 про наявність роботи.
JeffO

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

@Anonymous: SO замінив Google на 2 день (понад рік тому). Удома FireFox має SO, MSDN та програмісти як 3 мої основні пошукові сайти.
IАнотація

@IAbrief, lol, так правда.
Анонімний тип

27

Я ненавиджу VB.NET. Дні, які я все ще провожу, користуючись ним, - це дні, про які я шкодую. Однак, мої смаки є частиною моєї ситуації та досвіду, і не обов'язково мають відношення до того, що ти робиш ...

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

Оригінальними перевагами BASIC для мікрокомп'ютерів були розмір та простота (невеликий синтаксис, який легко проаналізувати, зроблений для невеликих, досить швидких перекладачів і залишив місце в пам’яті для фактичної програми та даних), інтерактивне середовище, що дозволило експериментувати, і синтаксис що уникнуло стислих символів та структур для досить чіткого синтаксису, схожого на англійську мову. Однак він був погано підходить для великих, структурованих програм, і, як правило, заохочував код спагетті. Проте його доступність та простота зробили його відмінним вибором для ознайомлення з програмуванням.

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

VisualBasic надав потужний, простий у використанні конструктор форм, що дозволяє швидко будувати програми GUI, приймаючи синтаксис 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 рядків від проблеми, ви знаєте, про що я.

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

Нарешті, я ненавиджу чутливість регістру в мовах програмування. Однією зі скарг на VB є те, що він має стільки багажу, але 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;. Поки ви дотримуєтесь стандарту кодування, якщо я погоджуюся, то це може спричинити плутанину.
Айдіакапі

1
Потрібен стандарт кодування, щоб уникнути таких підступних помилок, для мене - негатив. Наявність обхідного рішення це не виправдає.
JohnFx

Писати неохайний код будь-якою мовою програмування має бути важко. Нечутливість випадку просто заохочує неохайний код. Чутливість до справ зовсім не сповільнює вас, що це за аргумент? Це сповільнює вас, коли ви робите багато помилок, і тоді це добре, що вас сповільнюють.
Сокіл

Це лише неохайний код, оскільки компілятор не може його інтерпретувати. Якби всі компілятори були нечутливі до регістру, це не мало б значення лизати. Наша робота - не писати код для друку в журналі, це писати код, який виконує завдання. "Неслухняний" випадок не стримує цей біт.
JohnFx

19

Я віддаю перевагу дужковому синтаксису мов у стилі С перед більш синтаксичним «багатослівним» синтаксисом мов стилю BASIC.

Моє вступ до програмування було з Turbo Pascal. (Біт базового програмування, який я робив на Commodore 64, як дитина, насправді не враховується.) Після вивчення Java я ніколи не оглядався і вважав за краще синтаксис стилю C.


4
"" багатослівний "синтаксис мов у стилі BASIC." - Так, я більше ніколи не дивився на VB, коли побачивif something then code endif
TheLQ

1
Хе, я був здивований, що хтось спротив це. (Я очікував, що це буде питання Emacs проти Vim.)
Джордж Маріан

3
@TheLQ: і також AndAlso!
Геррі

Я сумую за своїми Turbo Pascal днів. Це було дуже весело.
MetalMikester

1
Я вважаю синтаксис дужок легшим для читання. Один загальний символ для блоку, а не декілька контекстно-слів.
Майкл К

12

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

Зараз відмінності суто культурні та особисті. У цій статті цікаво читати про відмінності між культурами програмістів, що використовують C # та VB.net

[Примітка: Хоча я сам C # dev, висновок пов'язаної статті не обов'язково відображає мою особисту думку, це просто цікавий альтернативний підхід у дискусії]


8
Це не зовсім вірно: наприклад, VB.NET не має ітераторів, які є чудовою функцією C #.
Томас Левеск

2
У C # немає XML- літералу VB.NET: blogs.msdn.com/b/wriju/archive/2008/02/07/… (хоча я не прихильник цієї функції з архітектурних міркувань, це круто)
Стівен Striga

@Thomas @WeekendWarrior: Хороші приклади, але просто щоб зазначити, я сказав "функціонально однакові", якими вони є. Вони обидва компілюються в IL, тому однаковий набір функціональних можливостей досягається. Ці приклади - це лише ярлики для функціональності, які можна досягти іншими способами.
Саймон П Стівенс

8

Я прийшов до .NET із C та C ++ (із ​​трохи Java, Ада та Паскаля), тому 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.NETs.

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


3
"особливості, що надходять до C # перших" Однак це не завжди так. Дивіться stackoverflow.com/questions/181188 / ... (Просто кинути ще один гайковий ключ в роботах)
Примітка до себе - придумати назву

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

1
З кожним поколінням інструментів аргументи "функції" дещо зміщуються. Єдине, що я можу придумати, який C # має відносно vs2010, якого бракує vb.net, - це ітератори; навпаки, vb.net пропонує названі індексатори, фільтри виключень, XML-літерали, оператор "Є", який в 1000 разів краще виглядає, ніж Object.ReferenceEqualsобробку подій, що майже зроблено правильно, і більш плавний досвід IDE. VB.net дає можливість, хоч і трохи незручно, примушувати ініціалізатори полів використовувати параметри конструктора або безпечно створювати IDisposableоб'єкти без необхідності використання ThreadStaticзмінних; C # ні.
supercat

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, лише щоб виявити, що я намагався робити щось "старим" способом, і це приводило мене в горіхи (добре, більше горіхів). Будучи тим, що я провів якусь роботу в С, я думав, що дам С # кружляти, щоб побачити, як це пішло. І OMG, це було схоже на вихід із темного тунелю на ясне денне світло! Зовсім несподівано. І я використовував зневажливі шуми про те, що C є мовою "лише для запису" - "настільки важко зрозуміти, що програміст C не міг зрозуміти, що робив його власний код через 6 місяців після того, як він написав це", спостереження, зроблене напіввідомий романіст, який, на мою думку, звучав мило тоді.

Отже, через те, що я трохи не знайомий з C, мені # було парадоксально легше вивчити програмування .NET, ніж набагато більш звичну парадигму Basic. Мені все ще подобається VB6, але я полюбив C #. Найкраща мова програмування на планеті.


1
Цікава відповідь, я думаю, що це хоча б частково розвінчає думку про те, що "старша натовп", як правило, дотримується VB.NET над C #
Anonymous Type

3

Я розвиваюсь у Visual Basic. Net з 2001 року, і я люблю це, і ненавиджу його !!!

Порядок викладу цих пунктів якраз ґрунтується на тому порядку, в якому він прийшов мені до душі ...

У vb.net із візуальною студією існує візуальний розрив ліній між кожним методом, властивістю. Для багатьох людей це не вагомий привід віддавати перевагу vb.net над c #, але я не розумію, чому команда c # в Microsoft не реалізує цього. Існує надбудова, яка намалює цю лінію в c #, але знову подякує Microsoft, що вона має команду ac # та основну візуальну команду, які не спілкуються між собою.

На vb.net, коли ви створюєте форму виграшів, у візуальній студії у верхній частині редактора є два комбобокси, і ви можете автоматично генерувати подію, автоматично вибираючи подію у правій панелі комбо. Коли ви додаєте десятки подій щодня, ця функція може бути дуже громіздкою. З c # у вас є маленька кнопка у верхній частині сітки властивостей, яка може генерувати події, але це не швидко, як у vb.net. Більше того, якщо ви додаєте подію керування в c # і видалите елемент керування у формі, делегат, створений на автоматично створеному коді для обробки події, потрібно видалити вручну. Ще раз дякую Microsoft.

У vb.net, коли ви намагаєтесь змінити метод, що містить запит linq, не змінюючи сам запит, немає проблем, але в c #, весь код методу заблокований. Якщо у вас є багато запитів на linq або лямбда-вираз, функція редагування та продовження швидко стане хорошою справою. Гаразд, трохи перебільшення ... але :)

У vb.net, коли ви створюєте ім'я методу та натискаєте клавішу Enter, автоматично буде створено 'кінцевий підрозділ'. У c # зробіть це самостійно. Гаразд, якщо у вас встановлено resharper або devexpress, буде краще, але чому всі ці маленькі, але великі функції не були реалізовані в c #.

У vb.net, коли у вас є помилки у вашому коді, помилки автоматично відображаються, а коли виправляєте, ці помилки видаляються з стеку в режимі реального часу. У c # ви повинні побудувати свій проект, щоб зрозуміти, що ви успішно виправили чи не вказані помилки. Чому команда c # не поставила можливість перевірити помилку в режимі реального часу, як на vb.net. З великим рішенням, жодна перевірка помилок у реальному часі не може бути дуже приємною оптимізацією продуктивності, але я люблю бачити, що степка помилок не зникає, коли я її виправляю.

Як і інші особи, про які згадував, я думаю, що простіше прочитати умову vb.net, якщо ... і, якщо, виберіть регістр ... виберіть кінець, але з дужкою малювання Devexpress забудьте, що я сказав.

З vb.net у візуальній студії є багато чимало помилок. Зазначимо лише один у візуальній студії 2010 року, інтелісенс не фільтрує неправильно перерахування, якщо у вас активований режим "загальний" замість "усі".

З vb.net вас сприймають як манекена, оскільки статично більше поганих програмістів використовують vb.net замість c #, тому що c # важче вивчити та просувати кращу практику програмування.

Як і інші кажуть, програміст c # має більше шансів мати гарну роботу з більшими грошима.

В голові замовника vb.net = хлопець, який програмує у своєму підвалі велику кількість спагетті коду. c # = вау, ви дуже розумні. Справа в тому, що ви робите хорошу програму не тому, що ви програмуєте на c #, але статично, так.

Зі всіма цими пунктами я вирішив конвертувати весь свій vb-код у c #. Я програмую з усіма найкращими методами об'єктно-орієнтованого, дизайнерського шаблону, чистого коду зі стандартами та суворим синтаксисом, і я можу програмувати це протягом 50 років, але з очей громади я не хороший програміст. Я перетворять свій код в c # без інших кращих практик, і я стану іншою людиною; чудовий хлопець, якого ти повинен поважати ..... :( який жарт ... !!! але це реальність.


2

Ось спосіб поглянути на це: між SO та CodePlex, яка мова є більш популярною? C # або VB.Net?

Іноді слідкувати за стадом - це добре, тому що саме стадо зможе допомогти тобі, коли тобі це потрібно. За замовчуванням C # буде швидше, ніж Vb.Net. Я вважаю, що використання параметра Strict може зрівняти його. Востаннє, коли я порівнював ІЛ між двома, безпека типу VB.Net в кінцевому підсумку додала приблизно 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 знайомий синтаксис, але по суті це був БАЗИЧНИЙ подібний перекомпонування C #. Тож єдиною його реальною перевагою є більш звичний синтаксис, а його синтаксис BASIC - це також його реальна єдина межа.

З часом обидві мови розвивалися поряд, єдиною суттєвою відмінністю є 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) тому, що я вже придбав 10 000 томів сторінок у 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.