1월 062007
요즘에 만들고자 하는 프로그램이 있어서, 여러가지 구상을 해봤습니다.
- 2D 그래픽이 가능해야하고, (언젠가 3D도…)
- 가능하면 플랫폼에 독립적일 것.
- 빠른 응답/처리 속도 (왜냐하면 계산을 많이 할 것이니..)
- 언젠가 상용화를 위한 일관된 지원과 깔끔한 Look & Fell 필요
내가 구사할 수 있고 무료로 구할 수 있는 언어와 라이브러리조합이 대충 아래와 같이 나옵니다.
- GCC + wxWindows
- Python + wxWindows
- IronPython
- Python + PyWin32
- Java2 SE V6
- Java + RCP + SWT/JFace
개인적인 경험과 관점에서 보자면….
GCC + wxWindows
장점: 플랫폼 독립적, 빠른 실행속도, 잘 구현된 GUI라이브러리.
단점: 낮은 생산성, 초기 노력이 많이 투자됨, 무거운 GUI라이브러리 (11MB) Python + wxWindows
장점: 생산성 높은 언어, 플랫폼 독립적, 잘 구현된 GUI라이브러리.
단점: 낮은 성능, 무거운 GUI라이브러리 (11MB) IronPython
장점: 생산성 높은 언어, 플랫폼 독립적(Mono Project), 가벼운 GUI.
단점: 낮은 성능, 사용자는 별도로 .NET을 설치해야 함. Python + PyWin32
장점: 생산성 높은 언어, 가벼운 GUI (개인적으로 익숙한 GUI 환경)
단점: 낮은 성능, 플랫폼에 독립적이지 않음. Java + RCP + SWT/JFace
장점: 개인적으로 가장 익숙한 언어, 일관된 제품화를 위한 프래임워크, 플랫폼 독립적, 비교적 가벼운 GUI. 괜찮은 성능
단점: 그럭저럭한 생산성, RCP/SWT 공부를 많이 해야함. Java2 SE V6
장점: 대폭 향상된 GUI성능 (아직 테스트 해보지 않았음). 플랫폼 독립적. 괜찮은 성능.
단점: 바닥부터 시작해야 됨. Swing에 관한 아픈 기억이 있음.
이런 저런 상황을 고려하여, 개인적으로 사용하기 익숙한 언어와 비교적 만족할 만한 성능을 보여줄 것이라 기대가 되는 Java + RCP + SWT/JFace를 사용하기로 결정하였습니다. 가장 큰 이유랄까…. RCP를 통한 일관된 제품화 공정을 사용할 수 있을 것이라 기대되기 때문입니다. RCP: http://www.eclipse.org/home/categories/rcp.php SWT/JFace는 Java Swing에 대비되는 GUI라이브러리입니다. 자바개발자들이 흔히 사용하는 Eclipse IDE를 제작하는 데, 사용된 라이브러리이기도 하죠. 물론 이클립스 없이도 라이브러리만 따로 사용할 수 있습니다. Swing과는 달리 SWT는 OS 고유의 GUI기능을 이용하기 때문에 성능이 좋고, 각 고유 OS의 Look&Feel을 가지고 있어 사용자는 별 거부감없이 사용할 수 있다는 장점이 있습니다. 어쨌거나 지금으로선 많이 가지고 노는 길밖에는 뾰족한 수가 없을 듯 합니다.
잘 읽고 가효.~~
방문해 주셔서 너무 감사합니다. ^^