2012년 5월 14일 무시당하는 이념, 보답받지 못하는 노력
최근 자유 및 오픈 소스 소프트웨어 동네를 여기 저기 둘러 다니면서 느끼는 점이 두 가지 있다. 하나는 GPL은 너무 순진했다는 점이랑, 다른 하나는 노력이 제대로 보답받는 경우는 (언제나 그렇지만) 드물다는 점이다. 그리고 둘 다 공통적으로 드러나는 악의 축 기업이 하나 있다.
너무 순진한 GPL
GPL의 기본적인 아이디어는 “이 소프트웨어를 쓸 때 당신이 갖게 되는 자유를 다른 사람한테도 보장해야 한다”는 것이다. BSD 쪽에서야 그렇게 생각하지 않는 것 같지만, GPL 입장에서는 자기는 자유를 얻었는데 다른 사람한테 그 자유를 보장시키지 않는 경우를 근본부터 차단할 필요가 있음은 당연한 것이다. GPL이 순진했던 점은 그 다음인데, 보통 사람들은 이런 제약을 걸어 놓으면 그 소프트웨어를 쓰지 않고 그 소프트웨어의 대안을 찾아 나선다. 그래서 거의 모든 GNU 소프트웨어는 그것과 거의 비슷한 일을 하는 비-GNU 소프트웨어가 하나씩 달라 붙어 있다. glibc가 그렇고, GCC가 그렇고, GNU Screen이 그러하며, GMP가 그러하지 아니한가!
GCC/LLVM의 경우를 조금 더 자세히 말하면, 나는 개인적으로 정치적인 문제를 제외하면 GCC와 LLVM 모두 좋은 소프트웨어라고 생각한다. GCC는 오랜 기간 유지된 소프트웨어인만큼 연륜이 묻어 나는(다른 말로 하면, 레거시가 쩌는) 코드 베이스가 문제긴 하지만 그 최적화 패스는 절대 무시할 수 없고, LLVM은 GCC만한 연륜은 없지만 코드 베이스가 깔끔하며 다양한 확장이 가능하다는 장점이 있다. 그런데, LLVM의 시작을 잘 살펴 보면 그 뒤에는 GCC에 울며 겨자먹기로 Objective-C 프론트엔드를 집어 넣어야 했던 애플이 버티고 있다. 물론 XNU/Darwin 자체가 BSD 기반이니 GPL을 좋아할 것 같진 않지만, GCC를 개선하는 게 아니라 LLVM을 지원하는 방향으로 가고 있다는 것은 그 의도가 뻔히 보인다. 아니, 솔직히 까고 말하면 GPL을 기만하는 게 아닌가?
물론, SourceForge가 지고 GitHub이 그 자리를 꿰어 찬 걸 보면 확실히 시대가 바뀌긴 했다. 자유 및 오픈 소스 소프트웨어는 그동안 상호 보완적인(전자는 이념적이고, 후자는 개발 모델에 관한) 개념으로 인식되어 왔다. 하지만 요즘 추세를 보면 귀찮고 코드 공유에 도움 안 되는 이념적인 부분을 완전히 제끼고 오픈 소스라는 개념에만 집중하는 느낌이 많이 든다. 하긴 귀찮긴 하다. 당장 나도 요즘 짜는 취미 코드는 대부분 MIT 라이선스거나 아예 퍼블릭 도메인으로 많이 하니까(사실 그 정도로 가치 있는 코드가 없는 게 사실 더 큰 이유다만). 하지만 Zed Shaw가 통렬하게 지적하듯 이념적인 부분을 무시하면 그 코드의 가치는 무시당한다. 결국 이념은 그런 상황을 막기 위해 존재하는 것이다.
보답받지 못 하는 노력
이번에는 둘 다 (L)GPL인 두 소프트웨어를 살펴 보자. 다른 게 아니고 모질라와 웹킷이다. 모질라는 에릭 레이먼드가 오픈 소스 진영의 커다란 승리라고 자뻑을 했을 만큼 역사적인 의미가 크다. 물론 “모든 제품은 죽어서 오픈 소스를 남긴다”라는 웃지 못할 진실의 첫 사례이기도 하지만…. 여하튼, 모질라 재단은 분명히 오픈 소스에서 출발했으나 그 행보는 자유 소프트웨어 진영을 능가하는 이념적인 부분이 더 많다.1 모르겠으면 모질라가 프라이버시 보호에 얼마나 많은 노력을 쏟아 붓는지 살펴 보면 바로 이해가 갈 것이다.
한편 웹킷은 본래 KDE 프로젝트에서 자체 브라우저를 만들려고 제작한 KHTML에서 그 유래를 찾을 수 있다. 음… 여기까지는 좋았다. 그런데 아까도 언급되었던 그 문제의 기업, 바로 애플이 자기 브라우저를 만들려고 KHTML을 포킹해서 대규모로 뜯어 고치면서 상황이 달라진다. (애플은 한동안 웹킷을 개발하면서 KHTML한테 주요 패치를 보내지 않은 것으로 원성을 들었다. 지금은 애플 혼자서 웹킷을 개발하는 게 아니라서 상황이 달라졌지만.) 이 와중에 구글도 자기 브라우저를 만들기 위해서 웹킷을 또 포킹을 하는 상황이 되면서 졸지에 모질라는 거대 기업 두 개가 뒷받침하고 있는 브라우저랑 경쟁해야 하는 안습한 상황에 처하고 만다.
그 다음은 다들 알고 있는 바이다. 최근 구글 크롬은 전 세계 브라우저 시장에서 인터넷 익스플로러를 거의 다 따라잡고 다른 브라우저의 사용률도 크게 떨어뜨리면서 선전하고 있다(파이어폭스가 이 와중에 피를 많이 봤다). 더군다나 모바일 브라우저에서는 아예 선택의 여지도 없이 사실상 모든 것이 웹킷이다. 상황이 이렇게 되다 보니까 구글 크롬이 새로운 IE가 되는 게 아니냐는 얘기까지 나오는 판이고(구글 크롬을 웹킷으로 바꿔도 논지에는 별 차이가 없다), CSS의 경우 -webkit- 접두사가 표준처럼 받아들여지는 끔찍한 상황도 일어나고 있다.2 물론 이런 상황이 꼭 웹킷 팀 및 구글 크롬 쪽의 책임이라고 할 수는 없지만, 적극적으로 웹 개발자들을 교육시켜서 다른 브라우저도 신경쓰게 만들려는 움직임도 보이지 않는 건 우려스럽다. 반면 모질라는 새 기능이 나와도 개발자 사이트에 웬만한 주요 브라우저 호환성에 대해 서술하고, 크로스 브라우저 개발을 위한 튜토리얼도 많이 갖춰 놓았다.
그래서 어쩌라고
뭐 뻔하지 않겠는가? 아무리 이념이 귀찮더라도 이념을 무시하지는 말고, 아무리 쓰기 편하다 하더라도 노력을 무시하지는 말자고. 그 이념과 노력이 이 세상을 어떻게 바꿔 왔는지 알고 있는 사람이라면 쉽게 그 이념과 노력을 무시할 수는 없을 것이다. 비록 현실은 시궁창일지라도.
-
물론 실용적인 부분도 많이 고려되는 게 사실이긴 하다. APNG와 관련해서 PNG 그룹과 마찰을 빚은 사례를 예로 들 수 있는데, PNG 그룹은 APNG가 PNG와는 달리 실질적으로 영상 포맷이기 때문에 별도의 미디어 타입을 받아야 한다고 주장했던 반면, 모질라는 그렇게 했다가는 하위 호환성이라는 원래의 목표가 사라지는데 왜 그렇게 해야 하냐는 실용적인 접근을 취했다. 결국 모질라는 PNG 그룹을 무시하고 APNG 스펙을 그대로 구현했다. 개인적으로는 PNG 그룹이 MNG의 실패에서 도대체 뭘 배운 건지 의심스럽기만 하다. ↩
-
웹킷이 구현하면 심지어 그게 HTML5에 들어 가지 않더라도 상당한 수의 사용자한테 먹히기 때문에 그렇게 된다. 그런데 현실적으로 말하자면
-webkit-접두사는 실험적인 기능을 위해 사용하는 것인지라 웹킷 개발팀 마음대로 바뀌는 경우도 비일비재하다. 대표적인 예로 그라디언트가 있는데, 대부분의 CSS3 그라디언트 생성기가 뱉어 내는 걸 보면 다른 브라우저 벤더 별로 한 줄씩 있는 반면 웹킷은 두 줄(-webkit-linear-gradient와-webkit-gradient)이 있는 것을 볼 수 있다…. ↩
