가장 유명한 Emacs Bzr 사가: 이데올로기 vs. 실용주의 교훈
소프트웨어 개발 역사는 종종 기술적 돌파구를 통해 서술되지만, 때로 가장 교훈적인 이야기는 기술적 정체의 사례에서 나온다. GNU Emacs의 "Bzr Saga"는 프로젝트 생태계에 대한 이데올로기적 고집이 도구 성능과 커뮤니티 채택이라는 실질적 현실과 충돌했을 때 어떤 일이 일어나는지를 보여주는 전형적인 예다.
6년 동안 Emacs 개발 커뮤니티는 객관적으로 더 느리고 경쟁자들보다 덜 인기 있는 버전 관리 시스템에 갇혀 있었다. 이 이야기는 정치적 결정이 기술 벤치마크를 무시하고, 실용주의로 돌아가는 길이 얼마나 길고 고통스러운지를 보여준다.
2008: 정치적 선택
2008년 3월, Emacs는 노후된 CVS(Concurrent Versions System)에서 마이그레이션을 시작했다. 커뮤니티는 두 주요 후보 사이로 갈라졌다: 리눅스 커널을 위해 Linus Torvalds가 만든 강력한 Git과 Canonical이 유지하는 GNU 프로젝트인 Bazaar(Bzr).
기술적인 관점에서 보면 경쟁은 거의 경쟁이 아니었다. emacs-devel 메일링 리스트의 개발자들은 벤치마크를 실행해 충격적인 성능 차이를 밝혀냈다. 핵심 개발자 중 한 명인 Andreas Schwab은 bzr log가 "완전히 사용할 수 없을 정도로" 느리다고 언급했으며, David Kastrup은 git log는 거의 즉시 반환된다고 관찰했다.
숫자는 명확했다:
git log | head -1: 0.012초 vs. Bazaar: 21.5초.- 단일 파일 커밋: Git 0.08초 vs. Bazaar 17초.
이러한 결과에도 불구하고 Richard Stallman(RMS)은 Bazaar를 사용하기로 결정했다. 그의 이유는 기술적이 아니라 철학적이었다: "이 문제는 이미 결정되었고, 우리는 GNU Bzr를 사용할 것이다. 왜냐하면 그것은 GNU 패키지이기 때문이다."
Stallman은 GNU 프로젝트가 자체 도구를 지원해야 자유 소프트웨어 생태계가 자립할 수 있다고 주장했다. 비평가들이 이 결정이 모든 기술적 논거를 무시한다는 점을 지적했을 때, Stallman은 GNU 패키지 간 상호 지원 규칙이 전체 시스템을 더 잘 작동하게 만든다고 주장했다. 결정은 최종적이었고, 커뮤니티는 적응할 수밖에 없었다.
2008–2012: 마찰의 긴 꼬리
소프트웨어 세계가 Git으로 이동하고 GitHub가 폭발적으로 인기를 얻는 동안, Emacs 기여자들은 고립된 상태를 유지했다. 그들은 Emacs에 기여하기 위해 어디에서도 사용하지 않는 Bazaar를 배워야만 했다.
이 시기는 끊임없는 마찰로 특징지어졌다. 메일링 리스트는 Bazaar를 "풀어내" 달라는 도움 요청이나 메모리 누수 의심 보고서로 가득 찼다. 결정의 기술 부채는 매일 커졌고, 2012년 Canonical이 Bazaar 개발 팀을 해고하면서 프로젝트 진행이 사실상 정체되었다.
2013: 한계점
2013년 3월이 되자 상황은 더 이상 버틸 수 없게 되었다. John Wiegley는 공식적으로 결정을 재검토해 달라고 요청했으며, Emacs 개발에 영향을 미치는 주요 버그(특히 ELPA 저장소 내)가 수년간 무시되어 왔다고 지적했다.
이후 200개 이상의 메시지가 오가는 스레드에서 "Emacs의 황제"와 유지관리자들 사이의 긴장이 끓어올랐다. Stallman은 Bazaar 유지 상태에 대해 "예"라는 답을 기대했지만, 실제로 메일링 리스트를 모니터링할 시간조차 없었다고 인정했다.
베테랑 오픈소스 개발자 Karl Fogel은 이 접근법에 대해 날카로운 비판을 제시했다:
"솔직히 말해서, Bzr 개발을 충분히 주시할 시간이 없어서 Emacs에 아직도 좋은 선택인지 판단할 수 없습니다... 그렇다면 왜 아직도 이 결정을 제대로 내릴 시간과 정신적 여유가 있다고 생각하나요?"
Stallman의 답변—"Emacs보다 더 중요한 것이 걸려 있기 때문입니다"—는 그의 세계관을 강조한다. GNU 도구를 포기함으로써 보내는 신호가 도구 자체의 비효율성보다 더 위험하다고 그는 믿었다.
2014: 마이그레이션
교착 상태는 실용적 실패와 조용한 준비가 결합되면서 결국 깨졌다. 2013년 말, Stefan Monnier는 Bazaar가 감당하지 못한다는 이유로 ELPA 브랜치를 Git으로 옮겼다. 이로써 프로젝트는 두 가지 도구를 동시에 사용하는 혼합 상태가 되었지만, Git만이 실질적인 앞으로 나아갈 길임을 증명했다.
2014년 8월, Eric S. Raymond(ESR)은 조용히 필요한 변환 스크립트를 개발했다. 2014년 11월, 이 사가는 또 다른 200개 메시지 논쟁이 아니라 ESR의 일곱 마디 선언으로 마무리되었다:
"커밋이 열려 있습니다. 마음껏 하세요."
여파: 시간에 뒤처진 커뮤니티
마이그레이션은 6년간의 우회가 가져온 실제 비용을 드러냈다. 세계에서 가장 영향력 있는 텍스트 편집기 중 하나를 개발해 온 많은 핵심 기여자들은 Git을 한 번도 사용해 본 적이 없었다. emacs-devel 리스트는 갑자기 기본적인 질문들로 넘쳐났다: "Git에 대한 좋은 책?", "머지 충돌은 어떻게 발생하나요?", 그리고 희귀한 git pull 오류에 관한 124개의 메시지 스레드 등이다.
"Bzr Saga"는 프로젝트 리더들에게 경고의 이야기가 된다. 이데올로기적 일관성은 커뮤니티 구축에 강력한 동기가 될 수 있지만, 압도적인 기술적 증거와 활발한 기여자들의 선호를 무시하면 수년이 걸리는 정체를 초래할 수 있다.