.NET Language 선호도

September 11, 2007 16:32 by WebStoryMaker

.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

Related posts

Add comment


(Will show your Gravatar icon)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



Live preview

January 5. 2009 10:42