드디어 만들어졌군요.
사실 미리 많은 준비를 하고 시작하면 처음부터 많은 관심을 모을 수 있겠지만... 현재 상황은 그렇지 못합니다. 그러나 언제까지나 준비만 하고 있다가는 아무것도 되지 않을 것 같아서 일단 프로젝트 게시판을 요청한 것이었고... 아주 더디긴 하지만 조금씩 진행하고는 있습니다.
처음 시도할 프로젝트인 PXL의 경우 이전 회사에서 작성한 코드는 있습니다만 공개에 대한 허가를 받지 못했기 때문에 공개할 수는 없습니다. 대신 그 코드보다 더 좋게 새로 만들면 되겠죠? ^^
드디어 어제 도쿄전력으로부터 광인터넷 설치 일정을 조정해 달라는 연락이 왔습니다. 날씨가 추워져서 다들 창문 닫고 셔터 내려서인지 요즘 집에서는 무선 인터넷이 거의 연결되지 않아서 별로 돌보지 못했습니다만... 조만간 광인터넷 설치되면 본격적으로 시작하도록 하겠습니다.
PXL은 이전에 밝힌 바와 같이 VC를 주 타겟으로 하는 VCL의 Minimum Clone버전입니다.
물론 전체 VCL을 VC에서 사용하도록 만드는 것은 기술적으로 불가능합니다. 하지만 일반적으로 우리가 C++ Builder에서 각종 라이브러리를 만들때 자주 사용하는 클래스들은 사실 몇개 안됩니다. 이들 클래스들을 C++로 재구현하는 것이 이 프로젝트의 목표입니다.
PXL은 두가지 목적에 의해 시작했습니다.
1. C++Builder를 주력 개발툴로 쓰면서 회사에서의 강압에 의해 어쩔 수 없이 VC++로 개발해야 하는 불쌍한 개발자들을 위해...
2. 1번의 개발자들이 마침내 회사의 주력 개발툴을 C++ Builder로 바꿀 수 있도록 돕기 위해...
제 경험에 의하면 VC로 개발된 각종 라이브러리들을 C++Builder에서 컴파일 할 때 걸림돌이 되는 것은 몇 안되는 MFC클래스들 때문입니다. 그리고 그 클래스들은 대부분 대체가 가능합니다. 또한 그 몇 안되는 MFC클래스들 중 대부분을 차지하는 것은 CString입니다. 성능이 그리 좋지도 않죠. 제 경험상 String객체 성능은 AnsiString이 짱입니다. 그럴 수 밖에 없는 이유가 있죠. 그건 나중에 설명하기로 하고...
원래 계획했던 것은 이 CString을 빌더에서 VCL과 함께 쓸 수 있게 하는 것이었는데... CString이 가진 기능이 별로 없는데다가 이렇게 할 경우 오히려 VC사용을 고착화 시키는데 도움이 될 것이라 생각했기 때문에 VCL의 핵심 클래스들을 이식하는 쪽으로 방향을 정했습니다.
1번에 해당하는 개발자들이 회사의 핵심 코드들을 C++Builder에서도 컴파일할 수 있게 지속적으로 수정해 나간다면 결국엔 주력 개발툴 교체라는 것도 요원한 일은 아니리라 생각합니다. PXL은 이러한 용도로 쓰이게 하고 싶습니다.
PXL의 1차 개발범위는
1. 기본 Memory관리자
2. AnsiString
3. TDateTime
4. TStrings / TStringList / THashedStringList
5. TList
여기까지입니다만... 이전에 개발한 경험을 말씀드리자면... AnsiString은 개발해야 할 범위가 비교적 좁은 반면 TDateTime은 장난 아닙니다. 거의 System.pas의 모든 함수들을 다 사용하더군요. 특히 동아시아지역의 '연호'를 지원하기 위해 TDateTime에 딸려오는 함수의 수는 장난이 아닙니다. 그러나... 다 만들 수 있습니다.
문제는 TList, TStrings같이 property를 지닌 클래스들입니다만... 이것도 일단 VC에서는 비슷하게 구현할 수 있는 방법이 있습니다.
좀 더 자세한 내용은 인터넷 설치되면 제가 정식으로 작성해서 올리도록 하겠습니다.
이 글은 제 인사말 정도로... ^^
순식간에 만들어버리겠다는 약속은 드리지 못합니다.
그리고 최고의 것을 만들겠다는 약속도 드리지 못합니다만...
더디게 가더라도 계속 가겠다는 것은 약속드릴 수 있습니다. 많이들 도와주시고, 많이들 참여해 주시고, 많이들 즐겨주세요.
|
마음만 굴뚝 같을 뿐 하지 못하고 있었는데 ㅡ.ㅡ;;
부럽습니다 ^^
파이팅입니다!!