VB의 재발견 - Visual Basic 2010

Visual Basic 2010, 시리얼한 버전으로 보면 v10에 해당하는 Visual Basic버전이 Visual Studio 2010버전에 포함되어 출시될 예정입니다. 왠지 2010이 붙으니 상당히 미래지향적 프로그램 언어인 것 같이 느껴집니다. 서기2010년이 되면 영화 백투더퓨처에서 처럼  하늘을 나는 자동차는 나올줄 알았는데... 아직은 공상과학의 내용을 현실이 따라가기에는 조금 더 시간이 걸릴 것 같습니다. 어찌되었든 2010년에 하늘을 나는 자동차는 못나와도 새로운 Visual Studio는 출시 될 것 같습니다. ^^
 
.NET기술이 나오면서 부터 빛을 받지 못했던 프로그램 언어가 바로 Visual Basic(.NET)이라고 해도 과언이 아닐 정도로 .NET프로그래밍에서는 Visual C#이 많이 사용이 되고 있는 것이 사실입니다. 그 이유에는 여러 가지가 있겠지만 Visual Basic이 원래 가지고 있었던 쉽고 사용하기 편하다는 RAD(Rapid Application Development)언어로서의 강점이 .NET에서는 약간 퇴색되면서 많은 VB개발자들이 C#으로 이동하는 계기가 된 것 같습니다. 
 
이번주 월요일부터(5/18) Visual Studio 2010 Beta1이 MSDN사이트를 통하여 배포되어 저도 설치를 해보았습니다. 여러 가지 새로운 기능들이 많이 추가되었는데 그 중에서도 VB10(VB2010)에 흥미롭고 새로운 기능들이 많이 추가가 되었더군요.
우선, 변경된 여러가지 기능중에서 가장 눈에 띄는 변화는 바로 문장 연결 기호인 _(Underscore)가 더 이상 필요없게 되었다는 것 입니다. 이렇게 말이죠:


Dim str As String= "Hello"
"World"
"I'm Keon"


콤마나 연산자 LINQ 쿼리문등에서 _ 없이 바로 라인을 넘겨서 사용할 수 있습니다. 람다식 표현의 위한 자연스러운 변화라고 생각합니다. (물론 Underscore를 예전과 같이 사용해도 오류가 발생하지는 않습니다) 또한 C#에서 가능하던 PLINQ Extension을 이용한 Parallel programming을 가능합니다.
다음과 같은 코드를 수행을 하면,


Sub Main()
    Dim myValues() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    myValues.AsParallel.ForAll(Sub(p) Console.WriteLine(p))
     Console.ReadKey()
End Sub


다음과 같은 결과를 얻을 수 있습니다.

(제가 사용한 시스템이 듀얼코어이므로 스레드 2개가 동시에 각각의 프로세서에서 수행되어 '1,2,3,4...~10'처럼 출력되지 않고 위와 같이 비순차적인 결과가 나온 것으로 보면 됩니다)

또한 Property의 사용에서도 Get,Set문장을 생성하지 않고 바로 사용할 수 있게 되었습니다. (이런 것이 진짜 VB의 강력함이죠..^^) 예를 들어, clsPerson이라는 클래스에 Name이라는 속성의 사용하기 위해서는 다음과 같은 코드를 작성해야 했습니다.

Public Class clsPerson

 Private pName As String

 Property Name() As String
  Get
    Return pName
  End Get

  Set(ByVal value As String)
   pName = value
  End Set
 End Property

End Class


하지만, 이제부터는

Public Class clsPerson
    Property Name() As String
End Class


이렇게 작성하면 됩니다. 참~ 쉽죠 ^^
이외에도 Covariance기능이나 Extension기능 그리고 PIA를 모두 포함하지 않고 배포하는 기능등이 추가가 되었습니다. 전반적으로 VB2010버전은 C# 4.0과 대부분의 기능이 비슷하게 추가가 되었습니다. 그래서 마이크로소프트 Principal Architect인 Paul Vick은 VB와 C#의 이번 버전에서의 변화를 가르켜 Co-evolution이라는 표현을 사용했습니다.
사실 .NET에서는 프로그램을 작성하기 위해서 기능적인 문제로 인한 프로그램언어 선택이 아닌 개발자의 언어적 선호도에 의한 선택이 가능하게 된 것은 이미 오래전 일이지만 이번 VB버전을 통하여 그런 점이 더욱 현실화 되었고 굳이 ';'의 사용을 선호하는 분이 아니라면 그리고 기업용 프로그램을 작성하는 개발자라면 VB를 다시 한번 살펴볼 필요는 있을 것 같습니다.

*새롭게 추가된 내용은  VSTS2010공식 블로그 또는 MSDN사이트를 통하여 알아 보실 수 있습니다.

by 키온 | 2009/05/22 08:08 | .NET Programming | 트랙백 | 덧글(3)

트랙백 주소 : http://keon.egloos.com/tb/4954187
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by lancers at 2009/05/22 11:06
그런데, 문제는 사실 Co-evolution이라기 보다는..
C#에서 먼저 하고, VB.NET이 Follow-up하는 형태가 계속 되고 있다는 거죠.
Automatic Property야 C# 3.0에서 이미 된 거고..
이미 C#의 경우, Automatic Property에서 get이나 set만 작성할 수 있게 해달라거나, get은 자동적으로 만들고 set은 수동으로 선언할 수 있게 해달라거나, 자동적으로 생성되는 backing store에 접근할 수 있게 해달라는 등의 논의가 되고 있습니다. ^^
Commented by 키온 at 2009/05/22 11:37
Optional parameter의 Null허용과 같이 C#에서도 몇몇 기능의 일부는 VB의 컨셉에서 가져온 것도 있기 때문에 공동의 진화 또는 쌍둥이(이란성?) 언어라는 표현을 사용했던 것 같음.
Commented by lighteach at 2009/09/10 15:15
유용한 글 잘보았습니다 퍼가도 괜찮죠? ^-^;

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶