마이크로소프트의 .NET(이하 “닷넷”) 팀 블로그에 비주얼 베이직 닷넷의 닷넷 5.0 버전 지원과 관련된 글이 올라왔습니다. 이 글에서 닷넷 팀은 [비주얼 베이직을 더 이상 발전시킬 계획은 없다. 앞으로는 안정성이나 호환성 관련 패치만 할 것이다. 닷넷의 차후 버전에서 제공하는 신기능은 아마 비주얼 베이직에서 지원되지 않을 것이다.]라고 밝혔습니다.
원래 마이크로소프트는 베이직(BASIC) 언어 개발로 시작한 소프트웨어 회사였습니다. 1975년에 빌 게이츠와 폴 앨런이 알테어 8800(Altair 8800)이라는 개인용 컴퓨터를 위한 알테어 베이직(Altair BASIC)을 개발하여 판매하기 시작한 것이 마이크로소프트의 시작이었죠. 그래서인지 빌 게이츠는 베이직에 대한 애착이 많았다고 전해집니다.
마이크로소프트는 베이직이라는 이름이 붙은 여러 종류의 프로그래밍 언어를 다양한 플랫폼에서 선보였으나, 윈도우 시대로 접어들면서 가장 널리 알려진 베이직은 [비주얼 베이직](Visual BASIC)이 되었습니다. 이 언어의 강점은 윈도우 데스크톱용 애플리케이션을 비교적 쉽고 빠르게 개발할 수 있다는 것이었습니다. 소위 말하는 RAD(Rapid Application Developement)가 가능했던 것이지요. 이 중에서도 가장 널리 알려진 버전은 비주얼 베이직 6.0입니다. 닷넷 기반으로 넘어가기 직전의 마지막 버전이기도 하고, 지금도 MS 오피스를 비롯한 여러 프로그램에서 VBA(Visual Basic for Application)라는 이름으로 살아남아 매크로 자동화 기능을 돌리고 있기 때문이기도 하지요.
한편, 21세기에 들어서 마이크로소프트는 Java의 영향으로 C#라는 프로그래밍 언어와 닷넷 프레임워크라는 것을 새로 만들게 됩니다. JVM(자바 가상 머신)을 지원하는 언어(예를 들면 자바)로 작성한 프로그램은 어떤 플랫폼에서도 작동할 수 있듯이, 닷넷 프레임워크를 지원하는 언어로 작성한 프로그램이면 어떤 플랫폼에서든 돌아가게끔 하려는 것이 MS의 목표였지요. 그걸 위해 MS가 만든 것이 바로 C# 언어였고, 여기에 비주얼 베이직과 같은 MS의 다른 언어도 몇몇 끼어들었습니다. 비주얼 베이직이 비주얼 베이직 닷넷으로 바뀐 것이죠.
하지만 닷넷 버전의 비주얼 베이직은 별로 인기가 없었습니다. 가장 큰 원인은 기존 비주얼 베이직과의 호환성이 전혀 없었다는 것이었지요. 아예 언어가 지향하는 패러다임 자체가 절차지향에서 객체지향으로 바뀌었기 때문에, 비주얼 베이직 닷넷은 기존의 비주얼 베이직보다는 차라리 새로 나온 C#에 더 가까운 존재가 되었습니다. 실제로 비주얼 베이직 닷넷과 C#은 자동으로 상호 코드 변환이 가능할 정도입니다. 따라서 기존 VB 6.0의 코드는 닷넷 버전의 비주얼 베이직에서는 사실상 전혀 쓸 수가 없습니다. 이 때문에 수많은 개발자가 닷넷 버전의 비주얼 베이직으로 넘어가는 것을 거부하고 VB 6.0에 머무르게 되었습니다. 그 외에도, VB 6.0은 의존성이 윈도우 내부에 내장되어 있었는데 닷넷에서는 일일히 닷넷 프레임워크를 먼저 설치해야 한다는 점도 비주얼 베이직 닷넷의 인기를 떨어트린 한 원인이 되었습니다.
이후 비주얼 베이직은 점차 사용자가 줄어들었습니다. 닷넷 버전으로 넘어갈 거라면 처음부터 C#으로 코드를 짜는 편이 낫고, 그러지 않는다면 차라리 VB 6.0에 남아 있는 것이 낫다는 개발자들의 판단 때문이었지요. 원래 MS는 C#과 비주얼 베이직을 함께 발전시켜 나가며 비주얼 베이직을 C#을 위한 초보들의 징검다리로 삼을 계획이었지만, 이는 실패하고 말았습니다. 그냥 처음부터 C#을 배우는 게 더 나았던 것이지요.
한편, MS는 닷넷 프레임워크가 애초 목적과는 달리 윈도우 플랫폼에서만 돌아간다는 문제점을 잘 알고 있었습니다. 마침 사티아 나델라가 MS의 CEO가 된 이후로는 리눅스와 같은 다른 플랫폼에도 훨씬 유화적인 입장을 취하게 되었죠. 그래서 MS는 닷넷 코어라는 이름으로 닷넷의 오픈소스 멀티플랫폼을 만들어 왔습니다. 이제 오는 11월 발표될 예정인 닷넷 코어 3.0은 이름이 바뀌어 [닷넷 5](.NET 5)가 되고, 그동안 플랫폼에 따라 몇 종류로 흩어져 있던 닷넷 프레임워크를 하나로 통일하게 될 것입니다.
닷넷이 발표된 지 20년이 지난 지금에서야 MS는 닷넷 애플리케이션이 자바로 만든 것처럼 어떠한 수정도 없이 여러 플랫폼에서 구동할 수 있게끔 한다는 구상을 실현하려 하고 있습니다. 그 와중에 나온 발표가 바로 첫 문단에 나온 것입니다. 이제 닷넷에서 비주얼 베이직은 오직 기존에 개발된 프로그램과의 호환성을 유지하기 위해 지원할 뿐이고, 닷넷 5 이후에 나오는 신기능은 비주얼 베이직에서 지원하지 않을 가능성이 높습니다. 변화 속도가 빠른 IT 업계에서 변화가 없다는 말은 죽었다는 말과 사실상 동의어입니다. 즉, 비주얼 베이직은 이제 끝났습니다.
앞으로 닷넷 기반으로 개발을 하려면 C#을 택하는 것이 가장 좋을 것입니다. 물론 MS에서는 F# 같은 다른 언어도 제공하고 있긴 하지만, 함수형 프로그래밍 패러다임은 아직까지도 널리 보편화되었다고 말하기는 좀 그렇죠. 닷넷을 위한 제1언어는 앞으로도 C#일 것으로 보입니다.