비주얼 베이직

(Visual Basic에서 넘어옴)

visualbasic.png
(비주얼베이직 6.0 로딩 창)


1 개요

Visual Basic.

쉽고 간편하게 Windows 프로그램을 만들 수 있게 마이크로소프트 사에서 출시한 BASIC 프로그래밍 툴. 비주얼 스튜디오에 종속되어 있으며, 인터페이스가 매우 쉽고 간편하여 짧은 시간 안에 윈도우즈 기반 프로그램을 만들 수 있다. 그리고 API, MFC처럼 코드로만 프로그래밍을 하는 것이 아니라, 도구 상자에 있는 여러 오브젝트들을 드래그 앤 드롭으로 프로젝트 내에 추가할 수 있다. 예를 들어서 API에서 커맨드 하나를 만드려면 긴 코드를 작성해야 하는데, 비주얼 베이직에서는 오브젝트를 끌어다 놓는것 하나만으로 커맨드 하나를 만들 수 있다. 이처럼 쉬운 제작 환경 덕분에 다른 것들보다 훨씬 빨리 프로그램을 만들 수 있다.


2 버전 분류

2.1 Visual Basic 1.0

gammp.png

비주얼베이직 1.0의 인터페이스이다. 매우 후져보이지만 이래뵈도 프로그램 제작 이다. 윈도우즈 3.0 기반에서 실행되었다. 후속작으로 도스 기반에서 실행되는 프로그램이 나오기도 했다. 지금 보는 사진은 도스용 비주얼베이직이다. 그리고 비주얼베이직 1.0은 1991년 5월에 발표되었다. 지금도 네이버에 검색하면 윈도우즈용 파일을 구할 수 있긴 하다. 하지만 아마 (윈도우 10 에서) 실행이 안되는 듯 한다. 더 하위 버전으로 다운그레이드를 하면 아마도 실행될 것이다. 그런데 이거 하나 해보려고 다운그레이드를 하는 사람이 어딨어?[1] 고전 코딩덕후아니면 도스용 비주얼베이직을 구해서 도스박스로 구동시키면 도스용 비주얼베이직 1.0이라도 체험해 볼 수 있다.


2.2 Visual Basic 6.0

visualbasic.png
ree.png

1998년에 등장했다. 이 버전은 아직도 많은 사람들이 이용하고 있으며, (심지어 현재 많은 후속작들이 나왔는데도 6.0만 애용하는 사람들도 있다.) 또한 아직도 인터넷에 쳐보면 파일들이 수두룩 쏟아져 나온다.

이렇게 아직도 VB 6.0 사용자가 많은 건 VB 7.0부터는 VB가 VB.Net으로 바뀌어 버렸기 때문이다. 둘은 아예 호환이 안 되기 때문에 사실상 완벽히 다른 언어이다. VB.Net은 객체 지향 언어이고 VB는 절차 지향이므로 서로 당연히 코딩 패러다임에 어마어마한 차이를 가져왔다. 즉 VB 6.0버전이 다른 버전보다 좋아서 사용한 게 아니라 애당초 VB 6.0이 VB 버전의 끝이기 때문에 다른 선택지 자체가 없다. 그 이후의 버전은 VB이 아니라 VB.Net이라 불러야 한다. 애당초 VB 언어 자체가 마이크로소프트, Windows 플랫폼에 종속된 언어이기 때문에 혼자서 마음대로 바꿀 수 있었다. MS는 시대의 흐름에 맞춰서 VB를 객체 지향으로 바꾸었고 그 결과물이 VB.Net이다. MS는 VB 7.0 이후의 버전이 VB 6.0 버전을 대체하기를 바랐지만 둘의 코딩 패러다임과 장단점이 달랐기에 기존의 VB 유저들은 VB 6.0으로 계속 남거나 자바 등으로 갈아탔다.

여기서 대중과 MS가 VB의 지향점을 각각 다르게 생각한다는 증거가 사람들은 일반적으로 VB라고 하면 VB 6.0을 생각한다. 그러나 MS에서는 공식적으로 VB라고 하면 VB.Net을 말한다. 어떠한 Visual Studio 버전에서도 VB.Net이라고 부르지 않고 그냥 VB라고 부른다.

VB 개발 환경의 지원은 공식적으로 2005년에 종료되었고 유료 서비스는 그 후 3년동안인 2008년까지 지원되고 종료되었다. 그 이후 MS는 VB 6.0을 쓰지 말고 VB.net을 써 달라고 간곡히 부탁했지만 현실적으로 힘든 면이 있었던 게 이미 VB의 압도적인 장점인 쉬운 GUI 구축과 Visual Studio 6.0 버전의 장점인 가벼움이라는 무기로 수많은 프로그램들이 만들어졌기 때문에 유지 보수에 VB.Net을 사용할 수 없었다.[2]

VB 6.0이 워낙 걸작이었기 때문에 VB를 아직도 사용하는 사람이 많다. 이는 언어 점유율에서도 확인할 수 있다. 지원이 빵빵한 다른 언어들과도 크게 꿀리지 않는데 매년 VB를 지원해 달라고 MS에게 꿋꿋이 진정서를 넣지만 MS에서도 꿋꿋이 VB.Net을 쓰라고 뻐긴다… 점점 OS 차원에서도 VB의 지원을 줄이고 있지만 그럼에도 불구하고 편법을 써서 꿋꿋하게 사용하는 사람들이 많다… 결국 MS가 VB를 공식적으로 인정하고 VB를 지원해 줄지 아니면 계속해서 줄여나가는 탄압을 이기지 못하고 코볼같이 레거시용 언어로만 남게 될지 앞으로 지켜봐야 할 것이다.[3]

만약 VB 6.0을 Windows XP가 아닌 Windows 7에서 사용하려고 하면 가능하면 IE 10이상으로 업그레이드 하지 말자. IE 9 까지는 괜찮지만 IE 10.0 이상으로 업그레이드 하면 기존 IE 8/9 기반 콘트롤(*.ocx) 중 일부를 사용할 수 없게 된다. 따라서 IE 9를 지원하지 않는 Windows 8 이상의 운영체제에서는 개발을 권장하지 않고 Windows 10 에서는 아예 동작되지 않는 것으로 알려져 있다. ( 호환성 설정을 하면 구동은 가능하다.)

VB 6.0 에서는 VC++ 6.0과 다르게 마우스 휠이 제대로 동작하지 않는 버그가 있다. [#1] [#2] IntelliPoint 소프트웨어가 버전 4.9 이상에서는 동작하지 않으므로 IntelliPoint 소프트웨어 버전 4.12 이전 드라이버를 사용하는 방법도 있다.

VBA도 VB.net이 아닌 VB 6.0 기반이다.


3 VB 지원종료 이후


Visual Studio.Net (2002) 부터 VB는 사라지고 VB.NET(Visual Basic .NET)으로 대체하게 된다.
  1. 이하 버전이라도 64비트 윈도우라면 실행이 안된다. 저 시대 애플리케이션은 16비트 애플리케이션인데, 64비트 애플리케이션은 아예 실행이 안되기 때문. 만약 32비트 윈도우라면 이론상으론 실행이 가능하다.
  2. 누누이 말하지만 아예 다른 문법이라 호환이 안 되므로 코드를 갈아 엎어야 한다. 그런데 몇천줄 몇만줄 되는 코드를 함수, 변수 수정 같은 방식이 아니라 코딩 패러다임에 맞게 모두 갈아 엎기보다는 그냥 옛날 버전으로 프로그래밍 하는 게 낫다.
  3. 근데 시대적 흐름을 생각해 봤을 때 절대 지원해줄 이유가 없다. C언어 조차도 제대로 지원 안 해주는 걸 보면 알 수 있다.