VB가 왜 그렇게 인기가 있습니까? [닫은]


28

나에게 Visual Basic은 서투르고, 추악하고, 오류가 발생하기 쉽고 읽기 어려워 보입니다. 나는 다른 사람들이 이유를 설명 하도록하겠습니다 . VB.net은 기능 측면에서 언어를 크게 도약 시켰지만 C #과 같은 VB 코드를 작성하는 사람은 여전히 ​​이해할 수 없습니다.

그러나 여전히 "MS 상점"의 대부분의 상용 웹 앱은 VB에 내장되어 있습니다. 나는 이것을 고칠 수는 있지만 VB는 여전히 가치가있는 것보다 더 인기가 있습니다.

누구든지 다음 질문 중 일부 또는 전부에 답변 할 수 있습니까?

  • VB에 뭔가 빠졌습니까? C #보다 배우기 또는 "친숙한"것이 더 쉬운가요? 내가 모르는 기능이 있습니까?
  • VB / VB.net이 오늘날 특히 웹 프로젝트에서 왜 그렇게 자주 사용됩니까?

4
어떤 상용 Microsoft 웹 사이트가 구축되었는지 어떻게 알 수 있습니까?
samjudson

30
"왜 오늘날 VB / VB.net이 그렇게 자주 사용됩니까?"이것은 "오늘 왜 교통 수단에서 노새 / 트럭이 그렇게 자주 사용됩니까?"
Daniel Daranas

2
후손을 위해서, 나는 (거의) 수정되었습니다. VB는 매우 충성도가 높은 사용자 커뮤니티를 보유하고 있습니다.

5
이 질문은 삭제해야합니다.

25
이 질문을 삭제하지 마십시오. 그것은 나쁘고 편견과 주관적이지만 꽤 자주 발생하고 참조로 사용할 수 있습니다.
Konrad Rudolph

답변:



42

나는 그것이 당신이 어디에서 왔는지에 달려 있다고 생각합니다. 프로그래머로 시작할 때 VB는 기호보다 단어에 더 의존하기 때문에 C #보다 읽기가 더 쉬울 . 일반 사람들이 쉽게 사용할 수 있습니다.

저는 수년 동안 VB 프로그래머였으며 .NET이 왔을 때에도 처음 몇 년 동안 VB.NET에서 근무했습니다 (실제로 C #의 요점을 보지 못했음). 이제 몇 년 동안 C #을 사용하고 있으며 C # 코드보다 "디코딩"하는 데 VB.NET 코드가 약간 더 오래 걸리는 경우가 있습니다. 아마도 그것은 일부 구성에 대한 상징보다 단어에 더 의존하기 때문에 아마도 ...


5
내 상황도 정확히 설명하고 있습니다.

6
C 스타일 구문 관점에서 볼 때 VB.NET 코드에는 "노이즈"가 가득합니다. 모든 VB 개발자에게 공격이 없습니다. C #에서 VB로 갈 때 느끼는 방식.

2
동의했습니다 .VB.NET을 견딜 수 없습니다. 구문은 이야기와 같습니다 ... 그렇습니다. 수개월 동안 지속적으로 사용해야했지만 C # 구문을 좋아합니다.
Dal

2
C # 프로그래머는 평범하지 않습니까?
rightfold

@ 오른쪽 VB.net 프로그래머도 정상이 아닙니다. VB.net 프로그래머는 평범한 사람들보다 더 훌륭하고 C #의 경우 주석이 없습니다. = D VB.net 규칙 !!!!!!!
익명 펭귄

27

아래에서 방금 답변을 다른 스레드에 복사했습니다 .

저는 VB와 C #에서 정기적으로 개발하고 있으며, 대부분의 돈 버는 데 C #이 관여했습니다. 개인적으로 저는 대부분의 람다 작업에 VB를 선호합니다. Jon의 개요와는 별개로 어려운 장점은 없습니다. 실제로 Herfried는 자신의 웹 사이트 (독일어)에서 몇 가지를 수집 했지만 다소 기술적입니다.

모든 C 관련 언어에 대해 정말로 나를 괴롭히는 것은 바보 같은 구문입니다. 이것은 순전히 문화적이지만 C ++에서 전문적인 작업을 수행하고 능숙한 사람으로서 여전히 문법을 싫어합니다. 그리고 C ++의 귀여운 작은 단점이 아닙니다. 아니오, 전체 패키지. 왜 중괄호? 왜 세미콜론 (아마도 모든 프로그래밍 역사에서 가장 어리석은 결정)입니까? 왜 바보 같은 C 스타일 캐스트 구문입니까? 변수 선언에 대한 키워드가없는 이유는 무엇입니까 (실제로 이것이 가장 멍청한 결정입니다)?

나를 슬프고 화나게하는 것들이 너무 많습니다. VB는 성자가 아니며 언어에는 큰 단점이 있습니다. 그러나 위에서 말한 것과 비교할만한 것은 없습니다.

나는이 진술들 대부분이 타당성을 필요로한다는 것을 알고 있지만, 이것이 우리가 그들에게 너무 익숙해 졌기 때문이라고 생각합니다. 또한 여기가 옳지 않습니다. C #의 구문은 VB에 비해 주요 이점이기는하지만 주요 단점이기도합니다.

My네임 스페이스 때문에 VB를 선호 하지 않고 XML 리터럴 때문에 선호하지 않습니다. 약한 입력 때문에 선호하지 않습니다. 선택적 매개 변수 때문에 선호하지 않습니다. switch성명서. 아니요. 구문 때문에 선호합니다.


즉, 나는 VB가 그 구문에 의해 점점 더 복잡해 짐을 인정해야합니다. 최신 과대 광고는 람다 함수로 매개 변수화 된 Linq 쿼리 인 것으로 보이며 이것이 많은 것을 단순화한다는 것을 쉽게 인정합니다. 불행히도 람다에 대한 VB의 구문은 C #과 경쟁하기에 너무 성가시다. Parallel.For자연스럽게 보이는 C #과 비교하여 VB에서 호출이 부풀어 오른 것처럼 보이는 방법을 고려하십시오 . VB 디자인 팀 IMHO는 여기에서 잘못된 방향으로 이동하여 가독성에 대한 보수적 인 일관성을 선호합니다.


주관적인 고발에 대답하려면 :

나에게 Visual Basic은 서투르고, 추악하고, 오류가 발생하기 쉽고 읽기 어려워 보입니다.

당신은 확실히 그렇게 생각할 자격이 있지만 Marc가 아래에서 말했듯이, 당신은 이것을 객관적으로 주장하기가 어렵다는 것을 알게 될 것입니다. VB에 존재하는 것보다 객관적으로 오류가 발생하기 쉬운 많은 C 구문 요소를 인용 할 수 있습니다 . 실제로 VB 구문은 이러한 상황을 명시 적으로 방지하기 위해 개발되었습니다.

"서투른, 못생긴 ... 그리고 읽기 어려운"은 익숙하지 않은 거의 모든 언어에 태그를 지정할 수있는 한정자입니다. 간단히 말해서, 추악함은 언어에 익숙하지 않은 것의 직접적인 결과입니다.

언어를 잘 아는 것은 코드에서 패턴을 인식하는 것을 의미합니다. 잘 작성된 코드 실제로는 우아하게 보이고 나쁜 (느린 오류가 발생하기 쉬운) 코드는보기 흉하게 나타납니다. 그렇게 간단합니다.


마지막 비고 : 귀하가 인용 한 기사에는 몇 가지 부정확성과 오래된 정보가 포함되어 있습니다. 매우 주관적이고 정서적 인 토론에 대한 유일한 정당화는 그다지 적합하지 않습니다.


4
Blake : 예. Ruby의 핵심 사항입니다. 마지막으로 언어가 올바르게 작동합니다. 파이썬도 저와 함께 점수가 높습니다. 그래도 기존의 모든 구문에 부분적으로 불만족합니다.
Konrad Rudolph

2
루비는 : P ... 이제 말입니다. 키워드를 기반으로 한 키워드 사이의 majoy 구문 차이의 실제 이유는 파서를 작성하기 쉽습니다. 예전에는 큰 VB (일반적으로 BASIC) 팬 이었지만 C #으로 이사 한 이후로 작업하기가 훨씬 쉽고 빠릅니다.
Matthew Whited

4
왜 중괄호? 제대로 사용하면 시각적으로 코드 블록의 경계를 정하기 때문입니다. 예, VB의 들여 쓰기도이 작업을 수행하지만 중괄호는보다 명확하게 IMO를 수행합니다. 세미콜론을 사용하면 컴파일러에서 작업이 쉬워집니다 (VB 컴파일러 팀에 문의하십시오). C #에서 캐스팅이 매우 직관적이고 컴팩트하다는 것을 알았습니다. 그리고 거기 입니다 변수 선언 키워드 :var
로버트 하비

1
@Robert Harvey : 1) VB는 키워드를 사용하여 들여 쓰기가 아닌 블록을 나타냅니다. 명확성을 위해 너무 많은. 2) 주조 소개, C ++는 올바르게 너무 눈에 띄지 (때문에 오래 전에 주조 C-스타일을 지양하기로 하지 좋은 것, 그것은 변경 의미와 유형 사용의 잠재적 인 약점을) 도입으로 캐스팅, 눈에 띄는해야한다. 3) 아니요 . 모든 선언에 앞서 구문 힌트를 의미했습니다 . var int x생각 나다. 다른 모든 문장과 블록은 전용 키워드에 의해 도입됩니다. 왜 변수와 메소드의 선언이 아닌가? 너는 싫어. 일관성이없고 추악합니다.
Konrad Rudolph

4
@ Konrad : 처음에는 조금 익숙해 졌다는 것을 인정합니다. 철학적 차이의 일부는 VB에서 프로그래밍 할 때와 같이 더 이상 프로그래밍 언어를 영어의 변형으로 생각하지 않는다는 것입니다 . C #으로 이동하면 프로그래밍 언어가 너무 불투명하지 않고 다소 상징적이며 간결하게 사용됩니다. 그 상징성으로 인해 객체 지향, 메시지 전달 및 람다와 같은 것들에 대해 더 개념적으로 생각할 수있는 정신적 자유가 허용되었습니다.
Robert Harvey

15

나에게 Visual Basic은 서투르고, 추악하고, 오류가 발생하기 쉽고 읽기 어려워 보입니다.

나에게는 영어가 서투르고, 추악하고, 오류가 발생하기 쉽고 읽기가 어려운 것 같습니다. 특히 문법이 좋지 않고 철자가 틀리며 대문자 및 구두점에 대한 무모한 무시, 공간적으로나 정신적으로 그들의 생각을 정리하는 방법에 대한 감각이없는 사람들이 작성했습니다.

Visual Basic은 언어의 구문 때문에 읽기 또는 서투른 것이 아니라 프로그래머가 자신의 생각을 표현하는 데 능숙하지 않기 때문에 일반적입니다.

If blah = 10 Then If stuff = "foo" Then t = 1 + k: s = 42: dostuff21

그렇습니다. 그러나 다른 언어로 끔찍한 코드를 작성하는 것은 특히 어렵지 않습니다. 올바르게 작성하면 코드가 VB로 작성된 경우에도 많은 의미가 있습니다.

If SelectedType = 10 And UserName = "Foo" Then
    CurrentUsers = CurrentUsers + 1
    UserConnectionID = 42
    PerformUserOperation
End If

적어도 그것은 더 읽기 쉽고 이해할 수 있습니다. 여전히 베이직입니다. 프로그래머는 코드를 읽기 쉬운 방식으로 형식화하고, 이름이 잘 알려진 식별자를 사용하고, 이해하기 쉬운 코드 작성에주의를 기울여 의도를 명확하게 표현할 수 있습니다.

즉, VB3 일 이후로 Visual Basic을 많이 다루지 않았으므로 (이전의 "구문"구문의 예) 언어가 악용 될 수 있다고해서 상당히 강력한 코드를 작성하는 데 올바르게 사용할 수는 없습니다 . 물론, 약간의 결함이있을 수 있지만, 이러한 문제를 해결하기 위해 고안된 접근 방식은 한 프로그래머의 기술을 다른 프로그래머보다 잘 보여줍니다.

(무분별하게 스프레이 On Error Resume Next하는 것은 .NET 이전의 VB에서 예외가 부족하다는 결점을 극복하는 좋지 않은 방법으로 생각됩니다.)


13

VB에 대한 귀하의 주장의 대부분은 VB-Classic (두 번째 링크)에만 적용되거나 희미하거나 쓸모없는 주장에 근거합니다

  • VBC에서도 GoSub ... Return 등을 사용하지 않습니다.
  • 무슨 일이야 static? C ++도 이것을 지원합니다.
  • VB10은 암시 적 라인 연속을 도입합니다 (C #과 같은 중복 세미 콜라도 필요 없음)
  • C ++ 및 C #에도 다른 캐스트 함수가 있습니다. C #의 (object)(expr)-Cast-Syntax이며 object as type더 혼란스럽고 일관성이 없습니다.
  • 무슨 일이야 with? C #에서는 불가능한 매우 직관적 인 방식으로 중첩 트리 구조를 만들 수 있습니다.
  • VB의 이벤트 처리는 C #보다 훨씬 우아합니다. WithEvents델리게이트, eventhandler-procs 등을 초기화하지 않고도 단일 키워드 ( )로 이벤트를 소개하고 처리 할 수 ​​있습니다 . 이렇게하면 VB의 GUI 프로그래밍이 훨씬 편해져 디자이너가 이벤트 코드를 생성 할 필요가 없습니다 .
  • 선택적 매개 변수가 새로운 C #에 도입되었으므로 좋은 것으로 보입니다.
  • VB.NET은이 모두 엄격하고 바로 가기 - 부울 연산자를.
  • 당신은 당신이 스크립트 언어처럼 VB를 실행하지 않으면 컴파일시 구문 오류를 확인하십시오.
  • End If보다 더 도움이 }됩니다. 복잡한 구문 구조를 가질 때 모든 중괄호는 혼란 스럽지만 콘크리트 End ...는 닫히지 않은 블록을 결정하는 데 도움이됩니다.
  • XML 리터럴 -XML 스크립트는 이제 코드의 일부이며 인텔리전스가 완전히 지원합니다.

대체로 VB.NET과 C # 간에는 구문 외에 몇 가지 객관적인 차이점이 있습니다. EG : GUI 디자인은 더 나은 이벤트 시스템과 더 나은 IDE로 인해 VB에서 훨씬 더 효율적입니다.

나머지는 개인 스타일의 문제 일뿐입니다. C 스타일 프로그래머는 C #, VB (또는 아마도 Pascal?) 스타일에 익숙하다고 느끼며 VB를 사용합니다.

그러나 단어 기반의보다 명확한 VB-Syntax는 C의 모든 기호보다 초보자가 읽기 쉽습니다.

If (a < 15) Xor (b = 2) And Not Condition Then

if ((a < 15) ^ (b == 2) && !Condition())

이것은 한 언어가 다른 언어보다 낫다는 것을 의미하지는 않습니다.

편집하다 : -----------------------------------------

인수 VB는 오류가 발생하기 쉽습니다. 당신이 Option Strict On그것을 사용할 때 C #만큼 엄격하지만 우리는 그런 실수를 할 수 없습니다 :

// VB would initialize with zero (C/C++ doesn't)
int countZeros;
// No confusion with loop bounds with For x = 1 To Length
for (int i = 1; i <= length; i++) {
    // Never confusing == with = 
    if (data[i] = 0) 
        countZeros++;
}

1
C #은 countZeros (로컬 범위에서)를 초기화하지 않고 if 문에서 data [i]에 값을 할당 할 때 컴파일 오류를 발생시킵니다. 나는 당신이 당신의 의견에서 c / c ++를 언급했다는 것을 알고 있지만, OP가 VB와 C #을 비교하고 있다고 생각합니다 :)

1
제 생각에는 VB10이 C # 10보다 훨씬 뛰어납니다!
Shimmy

LISP, C, VB, PHP 등 모든 언어가 마음에 듭니다.
systemovich

+1 그리고 VB의 Switch 문은 C #처럼 쓸모가 없다고 덧붙입니다.
Joel Brown

12

역사적으로 VB 개발 환경은 특정 유형의 애플리케이션 (예 : GUI 앱)을 빠르고 효과적으로 구축하는 방법이었습니다. 그것은 매우 인기있는 선택이되었습니다. 전성기에 VB가 가장 많이 사용 된 언어라고 생각합니다 (예 : VB6).

이러한 종류의 설치 기반으로 인해 여전히 많은 작업이 진행되고 있다는 것은 놀라운 일이 아닙니다.


2
+1 afaics VB6, 특히 VS IDE는 모든 문제와 가능성을 가지고 새로운 코더를 생성하는 엔트리에 대한 (매우) 낮은 장벽을 제공했습니다.

7

C #이 존재하기 전에 모두 시작되었습니다.

~ 1999 년으로 돌아가서 Visual Studio 5/6을 사용했습니다. Windows를 사용하는 독립 소프트웨어 공급 업체 또는 회사에서 프로젝트에 소요 된 직원의 시간을 추적 할 수있는 응용 프로그램이 필요한 경우 몇 가지 옵션이 있습니다.

  1. Visual Basic의 양식.
  2. Visual C ++의 MFC, ATL 또는 Win32
  3. Access 97/2000의 양식.
  4. ASP 웹 사이트.
  5. 자바 애플릿.

당시 우리는 Dot-Com 버블 버스트 직전에 있었기 때문에 (4) 또는 (5)에 능숙한 사람은 자신이 관심을 가진 놀라운 dot-com에서 주식 옵션 협상을 시작했습니다.

(3) 잠금 및 전체 확장성에 문제가 있었지만 필요에 따라 지원 기능을 실행하기 위해 많은 액세스 중심 솔루션을 보았습니다.

VB와 VC ++는 다음과 같습니다.

VB의 Forms 편집기는 당시 생산성이 뛰어났습니다. 버튼, 레이블 및 텍스트 상자뿐만 아니라 영리한 격자, Excel 시트 또는 IE 인스턴스와 같은 재사용 가능한 구성 요소의 전체 'OLE 컨트롤'도구 상자를 끌어다 놓을 수 있습니다. 결말은 뒤에서 이루어졌습니다. 모든 것이 객체와 같았으며 이벤트 핸들러를 추가하기 위해 두 번 클릭했습니다. 이것은 Visual C ++에서 훨씬 더 어려웠습니다. 당시 Visual Studio 개발자 지원 팀의 일원으로서 Visual Basic 지원 호출이 주로 어떤 구성 요소를 사용하는 것이 가장 좋았는지 또는 특정 방식으로 응용 프로그램을 최적화하는 방법에 관한 것인지를 기억할 수 있습니다. 'X, Y 및 Z 사용자 인터페이스 기능으로 응용 프로그램을 만드는 방법'은 거의 없었습니다.

Visual C ++에서 풍부한 UI를 구축하는 것은 다른 도전이었습니다. 대화 상자 및 SDI / MDI 양식에 대한 시각적 편집기 지원이 있었지만 상당히 제한적이었습니다. OLE 컨트롤 (ActiveX)을 MFC 또는 Win32에 포함시키는 기능은 블랙 아트 였지만 ATL에서는 조금 더 쉬웠습니다. 구성 요소의 사용자 지정 이벤트에 필요한 연결 지점은 물론 크기 조정 이벤트 또는 소유자 그리기와 같은 간단한 항목을 연결하는 것은 상당히 고통 스럽습니다.

예, VC ++은 실행 속도, 디버그 기능 및 유연한 프레임 워크 / 라이브러리 / UI 옵션을 가지고 있었지만 IDE 지원은 모든 것을 다룰 수 없으므로 마법사, 포괄적 인 MFC 클래스 계층 및 90 일과 같은 가장 일반적인 작업을 처리했습니다. / 2 무료 사건 지원 라인.

VB와 함께 제공되는 응용 프로그램 패키지 도구 인 IIRC는 앱, VB 런타임 및 최신 공용 컨트롤 DLL을 패키지화하여 CD에 넣고 고객에게 제공 할 수있는 독립 실행 형 EXE 설치 프로그램을 제공 할 수 있습니다. MFC 개발자를 괴롭히는이 'msvcrtXX.dll 및 mfcxx.dll을 설치하지 않았습니까?'

따라서 출시 기간과 풍부한 사용자 인터페이스로 인해 VB는 매우 큰 성과를 거두었습니다.

Visual J ++와 Visual Interdev가 VS6에서 나왔을 때 Visual Basic IDE가 Visual C ++ 하나와의 싸움에서 이겼습니다. Visual Studio .NET에 새로운 COOL C # 언어에 대한 VB와 유사한 양식 편집기가 있다는 것은 놀라운 일이 아닙니다 .

VB 사람들이 지금까지 즐겼던 UI 디자이너와 결합 된 새로운 Java / C / C ++와 같은 언어는 이제 MFC / ATL / Win32로 완료된 C ++ 사람들에게 새로운 마이그레이션 경로를 제공했습니다. VB.net에서 100 % 이전 버전과의 호환성이 부족한 VB 3/4/5/6 사용자에게 친숙한 환경에서 새로운 언어를 배울 수있는 기회를 제공했습니다.


VB가 이렇게 포괄적 인 제품인 이유는 Microsoft의 기원과 관련이있을 수 있으며 Basic은 주력 개발자 제품이지만 현재로서는 인용이 없습니다.


6

그러나 추악한 언어는 일반적으로 그 이유를 고수하는 이유 일 수 있습니다. 거대 코드 기반을 폐기하는 것은 비용이 많이 들고 개발자가 이미 언어를 알고 있다는 사실이 다른 언어보다 사용 비용이 저렴합니다.


6

VB.NET은 배우기 쉽고, 옳으며 C #보다 전반적으로 쉽다고 생각합니다. VB가 그렇게 인기있는 이유는 첫 번째입니다. 또 다른 하나, 가장 큰 요점은 VB 6 및이 언어의 이전 버전을 사용하는 개발자들에게는 큰 친근감이 있으며 새로운 언어를 배우는 것보다 VB.net을 사용하여 응용 프로그램을 개발하는 것이 더 쉽다는 것입니다.


6

다른 말했듯이, 언어 구문에 대한 미학적 판단은 이전에 알고있는 것에 크게 좌우됩니다. 10 년이 넘는 기간 동안, "블록"에 중괄호, 간접 (perl, php)에 대한 "->", 함수 호출 인수에 대한 괄호, // 주석 및 줄 끝의 세미콜론 어떤 사람들은 심지어이 '펜시 독특한 (pensée unique)'덕분에 언어를 아는 경우 모두 모릅니다. 그러나 이것은 C ++ / Java 사람들에게 유일하게 올바른 구문 미학이며 COBOL을 복제하려는 다른 아이디어를 심어주었습니다.

몇 년 전 나는 루비로 전환했고 이제는 파이썬으로 바뀌었고 더 이상 추한 세미콜론, 중괄호 및 기타 쓰레기 의미없는 문자를 참을 수 없습니다. 소스 코드는 사람이 읽도록되어 있습니다. Visual Studio를 사용해 보았을 때 C # 대신 VB를 선택했습니다. 일부 프로그래머는 자바와 같은 구문으로 "진지하게 보이기"위해 C #을 선택했다고 생각하지만, 똑같은 기능이 있습니다 ... 눈을 쉬게하십시오.


4

글쎄, 당신이 .NET에 대해 이야기하고 있다면, 내가 생각할 수있는 쉬운 것이 하나 있습니다.

Visual Studio의 VB.NET 편집기는 C #보다 구문 오류를 잡는 데 훨씬 좋습니다.

C #의 편집기는 VS2008 SP1에서 크게 개선되었지만 여전히 프로그램 컴파일을 시도 할 때까지 편집기에서 선택하지 않는 일부 구문 오류가 있습니다.


그 배경 편집은 VS2005에서 대규모 VB 프로젝트 편집을 매우 느리게 만드는 것입니다. 어쨌든, 그것은 ReSharper를위한 것입니다;)
Lucas

백그라운드 컴파일뿐만 아니라 자동 서식 및 코드 정리 도구는 블록을 벗어나 컴파일을 트리거하기 전에 많은 문제를 해결합니다. 이것은 C #에 비해 VB에서 엄청난 시간 절약입니다
Bill

4

VB의 인기는 대부분 다른 언어보다 VB 툴링이 훨씬 친숙한시기에 시작되었습니다. "클래식"VB는 Win32 API의 장을 배우거나 수동 메모리 관리를 방해하지 않고 Windows 응용 프로그램을 쉽게 구축 할 수있는 방법을 제공했습니다. 초보 프로그래머 입장의 장벽은 C ++보다 VB에서 훨씬 낮았으므로 많은 사람들이 VB로 치아를 자릅니다.

요즘 C #에 비해 VB의 장점 중 하나는 VB를 사용해온 사람들에게 친숙하다는 것입니다. 또 다른 장점은 문장 부호 기호 대신 키워드를 사용하는 경향으로 인해 VB 코드를 쉽게 읽을 수 있다는 것입니다. VB, Java, C, C # 및 Python에서 일하는 사람으로서 몇 년 전에 작성한 코드를 검토 할 때 VB가 가장 쉬운 언어라는 것을 알았습니다. 이 구문은보다 장황하여 종종 코드를보다 쉽게 ​​읽을 수 있으며 Visual Studio는 VB 코드의 서식을 지정하여 사용자가 입력 할 때 서식을 정리하여 코드의 일관성을 유지합니다 (작성자의 실수와 상관없이).

부수적으로, 비슷한 이유로 파이썬을 읽고 검토하는 것이 매우 쉽다는 것을 알았습니다. 파이썬에서 코드 포맷은 IDE가 아닌 인터프리터에 의해 시행되지만 최종 결과는 같습니다. 파이썬은 또한 구두점보다 키워드를 선호하지만 VB보다 적습니다.


3

다른 언어보다 "오류가 발생하기 쉬운"언어라고 주장하기는 어렵습니다. 나는 또한 "대부분의 상용 MS 웹"에 대한 요점을 의심한다. 내가 본 것에서 C #은 .NET 개발의 선두 주자입니다 (.NET은 장치 드라이버가 아닌 것들에 대한 MS 스택의 주력 도구입니다).


3

VB.NET이 C # (C # 4에서는 사라짐)에 비해 VTO.NET의 장점 중 하나는 기본 및 명명 된 매개 변수이며 VSTO를 사용할 때 매우 유용합니다.


그리고 그 문제에 대해 "동적"-C #에 기존 후기 / 디스패치 바인딩과 비슷한 VB를 제공합니다.
Marc Gravell

1
이 소위 장점은 항상 나에게 문제가되었습니다. 필자가 읽은 C #에는 동일한 실제 결과를 얻는 더 안전한 방법 인 과부하가 있다는 것입니다.

2
과부하의 단점은 몇 가지 기본값을 설정하려고 할 때 유지하기가 더 어렵고 혼란 스럽다는 것입니다. 컴파일러에 의해 메소드로 직접 해석되는 대신 컴파일러가 중첩 된 메소드 호출로 복잡한 과부하 체인을 만들 수 있습니다.
Matthew Whited

3

VB / VB.NET은 RAD (Rapid Application Development) 범주에 속합니다. 툴박스에서 끌어서 놓기 컨트롤만으로 응용 프로그램을 개발할 수 있습니다.


ASP.net + C # 콤보에 대해 같은 것을 말할 수 있습니다.

예, 대부분의 Visual Studio 기반 언어는 지원합니다.

글쎄, VB (.net이 아닌) 시대에는 C # 등이 없었습니다. 그래서 VB는 그 당시 유일한 위대한 일이었습니다. 이후 VB 사용자는 VB.NET으로 마이그레이션했습니다. 어쨌든 VB <> VB.NET.

3

글쎄, 나는 당신이 고전적인 VB와 VB.NET을 구별해야한다고 생각한다.

나는 VB.NET이 있다고 생각 하지 매우 인기가 있지만, Visual Basic의 "클래식"아직 IS1 이유는 윈도우 응용 프로그램을 작성하기가 매우 쉽다는 점이다. 이것을 C ++ / Mfc의 Windows 앱과 비교하면 현재 거의 유일한 대안이었습니다.

같은 이유로 델파이는 옛날 옛적에 매우 인기가있었습니다.


VB.net이 클래식 VB만큼 인기가 없다는 데 동의합니다. 코드베이스를 VB.net으로 마이그레이션하지 못한 일부 개발자는 대신 C #에 결함이있을 수 있습니다.
JBR 윌킨슨

3

VB는 대소 문자를 구분하는 C #에 비해 매우 장황하고 쉽게 사용할 수 있습니다. 초보자 프로그래머에게는 최고의 출발점입니다.


3

몇 가지 예를 들면 다음과 같습니다.

  • 사용의 용이성
  • 익숙한 이름 (기본은 최초의 인기있는 컴퓨터 프로그래밍 언어 중 하나임)
  • Microsoft 마케팅을 과소 평가하지 마십시오

3

그 이유 중 일부는 VB 스크립트가 대부분의 언어 ASP 고전이기 때문에 내가 한 것처럼 .NET에 들어가는 오래된 ASP 프로그래머가 VB에 이미 익숙하기 때문이라고 생각합니다. VB를 말하는 방법을 이미 알고 있었기 때문에 .NET에서 VB로 작성하는 데 시간이 덜 걸린다고 느꼈습니다. VB는 C #보다 울퉁불퉁합니다. 나는 둘 다 읽고 쓸 수 있지만 VB를 선호합니다. 왜냐하면 새로운 프로그래머라면 친구를 사 easy 수 있기 때문입니다.


2

둘 다 사용하는 환경에서 일합니다. 클래식 ASP 및 VB를 위해 C #으로 전환했습니다. 제 생각에는 언어 사이에 거래 차단기가 없습니다. 대부분의 프로젝트에서 두 언어로 동일한 작업을 수행 할 수 있습니다. 이제 오류가 발생하기 쉬운 것에 대한 의견을 공유하고 VB가 어수선 해졌습니다 (아무 이유도 없습니다).

다른 사람들이 언급했듯이 VB는 매우 간단하며 역사적으로 프로젝트를 매우 빠르게 작성할 수 있습니다. 이것은 웹 개발 (빠른 개발)에서 살았 지 만 사람들이 C #이 빨리 개발되었음을 알게되면 VB가 사라질 것이라고 생각합니다. 웹 응용 프로그램을 VB보다 C #처럼 보이게 만들 때 코딩하는 다른 모든 것 (CSS, JavaScript)이 있기 때문에 초보자도 C #을 사용하는 것이 좋습니다.


2

나는 개인적으로 'handles'키워드를 사용하여 vb.net에 이벤트가 첨부되는 방식을 좋아합니다 ... IDE / Visual Studio /는 VB를 처리 할 때 더 반응이 좋고 자동으로 대부분의 end-if 등을 처리합니다 ... C #은 물론 훨씬 더 간결하고 깨끗합니다 (IMHO, 나는 둘 다 꽤 일했습니다)


"Handles"와 VS 디자이너가 진행하는 모든 마술 같은 비하인드 스토리가 아닌 이벤트를 직접 구독하는 것을 선호합니다.
Lucas

2

4.0 프레임 워크에서 VB가 C #에 비해 부족한 것은 소수에 불과하며 그 반대도 마찬가지입니다. 즉:

  1. 가장 주목할만한 점은 VB.NET에 Yield키워드가 없지만 새로운 비동기 프레임 워크를 사용하여 VB.NET에 곧 제공 될 것입니다.
  2. unsafe키워드 가 없습니다 . 나는 그것이 필요한 것을 결코 찾지 못했지만, 분명히 어떤 사람들이 있습니다.
  3. 여러 줄 문자열이 없습니다. 여러 줄 문자열은 줄 전체에 + (또는 레거시 &) 연산자를 사용하여 수행됩니다. 또는 XML 리터럴 구문을 사용하여 수행 할 수 있습니다 Dim s = <s>My string... multiple lines...</s>.Value. 예쁘지는 않지만 까다 롭지 않고 실제로 여러 줄 문자열을 원한다면 작동합니다. 그리고 <%= myVar %>좋은 구문을 사용하여 문자열 보간을 수행 할 수 있습니다 .
  4. 에 해당하는 변수 범위는 없습니다 dynamic. 동적 변수는 VB에서 오랫동안 사용 Option Compare Off되어 왔지만 파일 범위가 지정되어 있으므로 범위를 그런 식으로 선언 된 변수로 제한 dynamic하기 때문에 좋지 않습니다 dynamic.
  5. VB에는 간결한 람다 구문이 없습니다. 람다가 있지만 Function(x)또는 을 사용해야 Sub(x)합니다.

VB.NET에는 C #이 제공하지 않는 일부 기능이 있습니다.

  1. XML 리터럴은 XML뿐만 아니라 모든 종류의 작업에 편리합니다.
  2. 언어의 대소 문자 구분은 고양이의 야옹입니다. 다른 언어로는 허용되지 않지만, 입력 할 때 Shift 키를 누르지 않아도되고 원하는 방식으로 코드를 자동 형식화하도록 코딩 속도에서 차이가납니다.
  3. 종종 불필요 SelectLinq 쿼리에서 절을 생략 할 수 있습니다.
  4. Nothing키워드는 훨씬 더 유용보다 null모든 것이 (심지어 값 형식)에서 설정할 수 있습니다 Nothing당신은 기본적으로 구매하십시오. 필요가 없습니다default키워드 .
  5. VB.NET은 Visual Studio에서 지속적으로 컴파일되므로 즉시 오류가 표시됩니다. C # 에서처럼 하루 종일 CTRL-SHIFT-B를 누르지 않습니다.

내 상점은 VB.NET을 사용하여 Razor와 함께 MVC3을 수행하고 일단 (주로 근거가없는) 편견을 극복하면 실제로 사용하기에 매우 좋은 언어입니다. 람다의 경우를 제외하고는 많은 주장만큼 C #보다 더 장황하지는 않으며 C #과 거의 비슷한 기능입니다. 나는 증오 인 대부분의 사람들이 실제로 현대 VB.NET으로 오랫동안 코딩하지 않았다는 것을 알았습니다.


저에게 VB.NET은 너무 장황합니다. 많은 상용구 코드를 수동으로 인쇄해야하지만 실제로 ReSharper는 도움이되지 않습니다. 나는 3 년 동안 C # / VB.NET에서 병렬로 코딩 해왔다.
Hedin

VB는 더 긴 키워드로 인해 실제로 가로로 자세합니다. IDE에서 입력하기 때문에 자주 입력하지 않아도됩니다. 그러나 IMHO C #은 중괄호로 인해 세로로 자세하게 표시되는 경우가 많습니다. VB의 다른 장점들 : VB에는 하나의 스타일 만 있기 때문에 괄호 스타일에 대한 토론을 피하십시오. (혀가 뺨에 간다) 끝없이 세미콜론과 버팀대 상용구를 입력하기 때문에 너무 작은 오른손을 개발하지 마십시오.
MarkJ

1
@MarkJ : C # 지지자들이 비판하는 방식이 흥미 롭다는 것을 알게되었습니다. AndAlso[말할 때 "이중 앰퍼샌드"보다 짧다는 사실은 인정하지 않지만 If-Then/Else/EndIfC #에 해당하는 문장에는 3 줄을 더한 반면, C #에는 4 줄 이상이 걸린다 는 사실을 무시하십시오. } else {하나의 행 으로 쓰지 않는 한 중괄호 규칙에 따라 6 개가 가능 합니다.
supercat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.