윈도우 세계에서는 마이크로소프트 사의 Visual C++ 과 쌍벽을 이루는 C++ 개발툴이다
(사실 윈도우에는 그외에 C++ 개발툴이 잘 없기도 하지-_-;)
난 MS를 썩 좋아하지 않으면서도 그와는 별개로 윈도우에서 개발할때는
주로 MS의 개발툴들을 써왔는데…
D시의 B 프로젝트를 하면 처음으로 C++ Builder 6.0 이라는 놈을 써보게 됐다.
첫 인상은.. 글쎄… 그닥 나쁘지 않았다. C++을 쓰면서도 4GL 처럼
쉽게 프로그램을 개발할 수 있는 개발툴이니… VB와 C++의 장점을
합쳐 놓은 듯한 느낌이었다. 더군다나, 고유의 VCL 컴포넌트 뿐만 아니라
ActiveX 컴포넌트도 가져다 쓸수 있고, 델파이 같은 다른 언어로 만든
컴포넌트도 끌어다 쓸 수 있고… 암튼 쓸만한 툴이구나 했다.
그. 러. 나.
계속해서 쓰다보니 점차 짜증이 났다.-_-
가장 문제가 되는건 툴이 너무 무거웠다. 예전에 J Builder도 굉장히
무거웠던 기억이 있는데… 이놈도 마찬가지 였다.
개발하던 프로그램 덩치가 좀 커진 탓도 있겠지만…
풀 컴파일을 하려면 10 여분은 족히 걸리고…
개발한 프로그램을 디버거로 실행하고 종료하는 데도 몇분씩 걸린다.
VB로 더 덩치가 큰 프로그램을 돌릴때 보다도 더 느린거 같았다.
이 땜에 개발 시간이 몇 배는 소요되니… 이건 정말 치명적이다;;
당최 예상했던 일정을 맞출수가 없다-_-;
더군다나.. 디버깅을 하다보면 지 혼자 자꾸 죽는다. 툴자체가 말이다.
어떨때는 디버거가 꺼지지도 않는다-_-; 또, 어떨때는 디버거를 띄워도
break point에서 멈추지를 않는다… 이럴땐 리부팅을 해주면 다시 잘된다-_-
또, 4GL 스럽다 보니… 별도의 런타임 환경이 필요하다. RTL이던가…
VB의 VB 런타임에 대응되는 넘인데… C++ Builder의 경우에는 프로그램에
static 하게 링크 할수도 있다.(대신 파일 크기는 좀 더 커진다. 속도는… 잘 모르겠다.)
좀 불편한것 중에 하나는 VC++이나 기타 다른 IDE에서 처럼 프로젝트 설정을 여러개로
둘수가 없다는 것이다. debug용 release용을 구분해 둘 수가 없으니,
릴리즈 할때 설정 바꿔서 새로 컴파일하고, 디버깅할때 설정 바꿔서 새로 컴파일 하고…
정말 귀찮다..-_-(거기다 DLL 여러개로 쪼개나서 일일이 바꿀려면 더 귀찮다-_-)
마지막으로… 결정적으로 내가 이 툴을 싫어하게 된 이유는…
순수 C++이 아니라는 것이다! managed C++이라는 이름으로 C++이 C++이 아니게
만들어 놓은 MS에 치를 떨었었는데… 이넘은 그 보다 앞서 C++을 지멋대로 바꿔놨다.
(나중에 알고 보니 C++ Builder 만들었던 개발자가 MS로 가서 .NET을 만들었드만-_-)
(물론… 이건 그냥 개인적인 취향이고, 개인적인 생각이다-_-)
찾아보면 더 있겠지만… 내가 직접 확인한건…
폼의 이벤트 핸들러가 생성자 보다도 먼저 호출 될수도 있다는것.
(만들어 놓은 폼을 상속한 폼의 경우 이렇다)
도대체 어떻게 객체를 만들지도 않고 이벤트 핸들러를 호출 한단 말인가!
또 한가지는 pure virtual function을 가진 클래스의 객체가
인스턴스화 될수 있다는거다. 대신 해당 function을 호출하면 런타임 에러가 난다-_-
쩝… 아무튼…
C++ Builder를 신봉하시는 분들께는 대단히 죄송한 말씀이지만…
내 개인적인 생각으로는… 좀 ‘아니다’ 싶은 툴이다. 다음 프로젝트 부터는 회피대상-_-
볼랜드에서 개발툴 사업부를 매각한다는 얘기도 있고, 개발퉁에서 손뗀다는 얘기도
있었던거 같은데… 얼마전에 보니 새로운 버전이 나오긴 했던데… 좀 괜찮을 라나 모르겠다.