.NET 은 모든 언어들이 기계어로 전환되기 이전에 MSIL (Microsoft Intermediate Language)로 변환되기 때문에 C# 이든 VB .NET 을 선택하든 .NET CLR 의 모든 Feature 들을 공통적으로 사용할 수 있다.
재밌는 것은 이전에 비쥬얼 베이직이라는 베이직(기본)적인 느낌 때문이랄까 개발자들은 C#을 선호하며 또한 C# Developer 가 VB .NET Developer 보다 연봉이 높다. 매우 재밌는 현상이다.
다음의 도표를 참고하기 바란다.
[adsense2]
위의 그래프 길이만 보고 VB .NET 이 연봉이 더 셀것으로 오판하지 않기를 바란다. 수치를 보면 무려 6,000 불이 더 센것으로 보인다 (물론 이 연봉은 미국에서만 해당이 된다). 평균치 연봉이므로 지역에 따라 또한 차이가 난다.
그렇다면 왜 VB .NET을 하는 사람들이 늘어나고 있을까. 상대적으로 VB .NET 사용자나 C# 사용자나 가늠하기는 어렵다. 하지만 실제 마켓에서는 C# 이 약간 우세하지만 MS 측은 VB .NET 을 더 밀고 있는 추세이다.
일단, C#의 장점을 이야기 하자면, 통일된 코드를 들 수 있다. 모든 것이 "열리고", "닫히고" 형태로 되어 있기 때문에 { } 과 ( ) 를 사용하여 일관된 코드를 작성할 수 있다. 반면, VB .NET은 End If, End Sub, Next 등의 키워드를 사용하여 종료한다.
C# .NET 은 VB .NET 과는 달리 Case-Sensitive 하다. 다시 말해, 소문자와 대문자를 구분한다. 그러므로 다음의 코드는 VB .NET에서는 동일하게 적용되어 애러를 출력한다.
C# 코드 (Language : cpp)
1: string firstname;
2:
3: string FirstName;
4:
5: string Firstname;
6:
그렇기 때문에 VB .NET 사용자들이 C#으로 전향할 경우 초기 적지 않은 코드 애러를 발견할 수 있을 것이다.
VB .NET의 강점은 With 키워드를 사용해 Properties 를 초기 정의 후 자유롭게 속성을 정할 수 있다. 코드로 설명하자면,
예제 코드 (Language : cpp)
1: ’ Set TabPage properties in VB.NET
2: With TabControl1.TabPages(0)
3: .BackColor = Color.Red
4: .BorderStyle = BorderStyle.Fixed3D
5: .ToolTipText = "Click Me!"
6: .Text = "Hello world"
7: End With
8:
9: // Set TabPage properties in C#
10: tabControl1.TabPages[0].BackColor = Color.Red;
11: tabControl1.TabPages[0].BorderStyle = BorderStyle.Fixed3D;
12: tabControl1.TabPages[0].ToolTipText = "Click Me!";
13: tabControl1.TabPages[0].Text = "Hello world";
위의 예제에서 보면 C#은 반복적으로 TabPages[0]를 적어야만 가능하지만 VB .NET에서는 불필요한 반복적 정의를 하지 않아도 되는 간편함이 있다. 더불어, VB .NET 은 C# 보다 IntelliSense (코드를 입력할 때에 자동으로 코드가 완성이 되는..) 가 더 강하다.
1: Property MyProp()
2: Get
3: End Get
4: Set(ByVal Value)
5: End Set
6: End Property
위와 같은 코드를 VB .NET에서 입력을 할 때에 Property 와 함수의 이름을 입력 후 엔터를 치게 되면 자동으로 하단의 코드가 완성이 된다. 그러므로 코드의 입력 시간을 줄일 수 있다.
C# 은 모호한 코드의 생성이 가능하다. 가령 Value 의 전, 후에 ++ (증가) 표시를 넣는 데에 의미가 달라진다. 반면, VB .NET은 그런 코드를 허용하지 않는다. 또한 C#은 Unsafe directive 를 허용한다. 다시말해, 기존 C++ 이나 C 와 같이 포인터를 정의 할 수 있게 해준다. 이 부분은 Unmanaged Code (.NET 라이브러리를 사용하지 않는 코드) 라 불리우는 데 가급적으로 사용을 금하는 것이 좋다. VB .NET 도 포인터를 사용할 수 있게 IntPtr 타입을 제공한다.
그 외에도 여러부분 Syntax 가 다르지만 .NET에서는 초반부에 언급한 데로 모든 언어가 MSIL 로 변환되기 때문에 코드의 모양은 다르지만 거의 일치한다고 본다.
사용자가 어떤 언어를 선택하느냐는 개인적인 취향일 뿐, 큰 의미는 없다고 판단된다.
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5