우리네 틀딱 선배님들이 젊은 시절에 열심히 만들어둔 운영체제의 틀은

수많은 수정요구에 의해서 타협하고 수정되고 버려지고 대체되면서 시궁창이 되어버렸다.


물론 정리가 잘 된 운영체제의 개발환경도 있고,

Unix 를 바탕으로 만들어진 ( 사실상 운영체제의 표준격인 ),

POSIX 정의를 잘 따르는 인터페이스들도 있다.


하지만 우리가 주로 사용하는 Windows 의 API 란건 쓰레기도 이런 쓰레기가 없을 정도다.

그걸 조금 편해 보겠다고 객체같지도 않은 MFC 로 싸버렸으나 노답인건 매한가지,

상대적으로 진보적인 프레임웍이었던 VCL 의 개발 책임자를 사 와서 .Net 을 만들었으나

.Net 환경 프로그래밍 또한 그렇게 매력적이진 않다. ( 물론 MFC 보다 나은건 인정 )


우리가 가장 큰 데스크탑 시장의 개발환경을 과감히 포기할 용기가 없다면,

이 그지 발싸개 같은 운영체제를 우리는 써야 하고 배워야한다.

아~~주 잘못 만들어져 있다는걸 깨닫는데 오랜시간이 걸리지 않겠지만 말이다.

다행스럽게도 당신이 좋은 프레임웍을 선택한다면,

그지 발싸개랑 대화하기 위해 그지 발싸개를 이해하는데 필요한 시간을 줄일 수 있다.


여기서 여러분은 선택해야 한다.


1. 여러 운영체제용으로 포팅이된 프레임웍을 이용해 조금 더 상위 레벨에서 프로그래밍 할 것인가?

   그를 통해 여러분은 다른 운영체제에서도 쉽게 돌아갈 수 있는 프로그램을 만들 수 있다.


2. 그지 발싸개 ( Windows API )를 공부해서 "난 빌게이츠를 사랑해요"를 외칠 것인가?

   미안하지만 이 공부는 최소화 하는게 낫다.

   윈도우 디바이스 드라이버나 자유자재로 만들면서 먹고 살 틈새를 기대하는게 아니라면.

   ( 그나마도 꽤 비싼 드라이버 인증 비용을 물어야 최신 Windows 운영체제에서 실행해 줄 것이다 )


3. .Net 기반환경에서 개발할 것인가?

   CLI 라는 인터페이스가 있으나 이건 C++ 이 아니라고 보는게 맞다.

   그럴거면 차라리 C# 을 써라. MS 도 Windows 전용을 포기한것 같던데.


4. 윈도우즈 버려!

   축하한다. 너 금수저.


다시한번 말하지만 Windows 는 쓰레기다.

하지만 제법 두꺼운 콘크리트 기반을 깔고 산다면 지하가 쓰레기 매립지인줄 모르고 살 수 있다.

가끔 우물 파는 사람들은 경악하겠지만.


그러니 정신건강을 생각한다면, Windows API 를 대체할 무언가를 선택하는게 좋다.

컴파일 시간을 부스팅 시켜주는 boost 도 좋은 예이고,

poco 같은 프레임웍을 쓸 수도 있다.


GUI 가 필요하다면 OpenGL 기반의 여러 프레임웍들이 준비되어 있다.

크로노스 그룹에서 지원하는 OpenXXX 프로젝트들은

여러분이 그 기반위에서 작성한 프로그램들이 여러 운영체제에서 돌아갈것을 약속해준다.


조금은 더 편하고 조금 더 진보적인 프레임웍을 선택하라는 이야기다.

MS 너무 까서 MS 빠들에게 미안하다만,

까일만 하다.


앞으로 이 강좌 씨리즈가 어떻게 흘러갈지 나도 모르지만,

일단은 OOP 와 TMP 위주로 진행할 것 같다.

그게 좀 더 범용성을 띤다고 생각되어서 말이다.


초보자들이 사용하기에 편리한 프레임웍들이 있다면 여러 사람들이 추천해줬으면 한다.