또 약간은 현 게시판 성격에 맞지 않는 글이지만 요즘 제가 GUI toolkit에 맛을 들여서 헤어나오질 못하고 있습니다. 간단하게 두가지를 비교해 보았는데요, 비교는 그나마 객관적으로 하기 위해서 초기 프로젝트를 시작할때 리더가 메일링 리스트에 올린 글을 가지고 비교해 보았습니다.
http://groups.google.com/group/comp.os.linux.misc/tree/browse_frm/thread/4836e257721ab7fb/cb4b2d67ffc3ffce?rnum=1&_done=%2Fgroup%2Fcomp.os.linux.misc%2Fbrowse_frm%2Fthread%2F4836e257721ab7fb%2F10e10a7a9e08943b%3Flnk%3Dgst%26#doc_cb4b2d67ffc3ffce
http://mail.gnome.org/archives/gtk-list/1997-August/msg00123.html
Q. what is NOT a GUI
A. KDE
- X Window System
- widget: motif, athena, ...
- Window manager
A. GNOME
- There is no assumption.
Q. Goals
A. KDE
- A GUI for endusers
A. GNOME
- a free and complete set of user friendly applications and desktop tools
Q. which toolkit to choice to develop
A. KDE
- Qt
A. GNOME
- GTK toolkit
Q. Programming language(base language)
A. KDE
- C++
A. GNOME
- C
사실 두가지 프로젝트의 공통점이 상당히 많은데 그 중 가장 대표적인 것이라고 한다면 모든 것을 다시 만들어가는 방식이 아닌 기존에 만들어져 있는 toolkit을 그대로 이어가가는 방식을 택했습니다. 여기에서 base 언어가 되는 C, C++ 때문에 Qt의 라이센스 보다는 이것가지고 양측의 설전이 아직도 오고가고 있습니다. 개인적인 생각으로는 라이센스 문제를 생각하자면 일반적으로 생각하는 것과는 다르게 KDE 진영이 훨씬 유리하다고 봅니다. Full time으로 Qt 라이브러리에 회사 운명을 건 TrollTech라는 회사가 든든한 버팀목이 되어주는 것에 비해 RedHat은 GNU 라이센스를 오픈 소스에 적용하고 있지만 Fedora, GNOME 에 대한 지원이 많이 부족한 것으로 보이고 프로젝트 역시 조금은 매끄럽게 진행되지 못한다는 느낌이 듭니다. 초기 RedHat 배포본을 만들던 초심을 가지고 GNOME 프로젝트를 지원한다면 하는 아쉬움이 있습니다.
그리고 두 프로젝트의 초기 경쟁자는 KDE도 GNOME도 아닌 Motif로 대변되는 CDE 진영이라는 사실이 조금은 낯설게 느껴집니다. KDE 진영은 위에서 언급한바와 같이 단순한 toolkit은 GUI가 될수없다는 논리를 펴고 있고 프로젝트 처음 공포시 CDE가 존재하긴 했지만 늦은감이 없지않아 그 틈새 시장을 비집고 들어간 것이라봐야 될 것이고, GNOME 진영 역시 KDE 보다 1년 뒤늦게 시작했지만 경쟁자로서 CDE가 존재한다는 것은 모를리가 없었을 겁니다.
Qt vs GTK 라고 하면 조금 이야기가 달라지겠지만 지금은 KDE와 GNOME의 비교를 하는 것이니 한가지 더 짚고 갈 것이 있는데 이는 지향하고자 하는 방향이 사뭇 다릅니다. 이는 enduser뿐만아니라 developer를 두 진영으로 나누게 되는 계기도 되는데 KDE는 Qt라고 하는 단일 toolkit으로 모든 것을 해결하려고 하고 있고 GNOME진영은 가능한 visual element를 잘게 나누어서 서로 공유하자는 방향으로 나아가고 있습니다. 이는 11년째를 맞고 있는 KDE와 올해 10년째를 맞고 있는 GNOME(GNOME 탄생일이 재미있게도 8월 15일 입니다.) 이 한결같이 지켜오고 있습니다. 단적인 예로 Qt는 FTP, TELLET과 관련된 컴포넌트가 존재합니다. 그리고 addon으로 찾아보면 RS-232 통신에 관련된 컴포넌트도 존재합니다. 하지만 GNOME의 toolkit에는 그러한 것이 존재하지 않습니다. UNIX의 초기 철학을 잘 반영하는 것이 GNOME 진영인 것은 확실합니다. 하지만 Qt와는 반대로 너무나도 여러개로 나뉘어 있는 GNOME toolkit(GLib, GObject, Pango, ATK, GdkPixbuf, GDK, GTK) 들이 별개로 업데이트 되고 있는 현실이고 또한 각 toolkit 별로 버전번호도 상이해서 enduser입장에서 meta-package로 설치하는 GNOME toolkit을 생각할 때 이부분은 반드시 해결해야 할 숙제라고 봅니다. 다행히 GNOME 진영의 developer 사이에서 이 부분에 대한 검토가 이루어지고 있는 것으로 보아 조만간에 좋은 소식을 접할수 있을 것으로 기대합니다.
현실적인 문제라고 봐야할지는 모르겠지만 1년 늦게 시작한 GNOME이 KDE에 비해 조금은 뒤쳐지는 것은 저만 느끼는 것인가요. 항상 KDE에서 먼저 소개되고 이후에 같은 것이 GNOME에 소개되는 것을 보면 중앙집중적으로 발전해나가는 KDE의 개발 전술을 따라 잡기는 역부족이 아닌가 싶습니다.
마지막으로 위의 두 프로젝트와는 별개로 BSD License를 가지고 시작하는 프로젝트가 하나 있습니다. E17이라고 명명한 enlightenment 진영의 약진이 그것인데요, 개발의 방향은 GNOME과 비슷합니다. 즉 toolkit의 다양화(diverse)로 기존의 enlightenment를 새롭게 재탄생시키고자 많은 노력을 하고 있습니다. 초기 window manager 의 프로젝트가 현 3세대의 KDE, GNOME, XFCE 진영의 삼국 시대를 사국 시대로 만들어 갈 수 있을지 자뭇 기대가 됩니다.
댓글 없음:
댓글 쓰기