위키 발명자 워드 커닝햄 × 존 게이지
- 출처: Computer History Museum, "Wiki Inventor Ward Cunningham with John Gage" (2008-01-25, 1:43:47)
- www.youtube.com/watch?v=bx6nNqSASGo ↗
- 자동 생성 영어 자막을 한국어로 옮긴 것. 화자 표시는 자막에 없어 대화 흐름으로 추정했다.
- JG = 존 게이지(Sun Microsystems 공동창업자, 진행), WC = 워드 커닝햄(위키 발명자), Q = 청중 질문
- 번역: Claude Opus 5 (Claude Code), 2026-07-25
- 오역 대조를 위해 문서 하단에 영어 자막 원문을 파트별로 함께 실었다.
개회사
데이브 앤더슨: 박물관 이사 중 한 명입니다. 오늘 처음 오신 분이 얼마나 되는지 궁금하네요 — 와, 예비 신규 회원이 많군요. 저희는 늘 회원을 모집합니다. 박물관 회원이 된다는 건 훌륭한 기관을 후원하는 일일 뿐 아니라, 솔직히 말해 하나의 사교 모임(social institution)이 되었습니다.
이런 행사야말로 제가 이 박물관에서 가장 좋아하는 점을 잘 보여줍니다. 우리는 역사를 포착(capture)해 왔고, 영원히 보존되어 역사의 위대한 전환점 중 하나로 여겨질 무언가를 붙잡아 왔습니다. 그런데 우리는 그것을 매일 포착하기도 합니다. 오늘이 바로 그렇습니다. 역사가 지금 위키(wiki)라는 주제 위에서 벌어지고 있고, 우리는 그것을 이미 일어난 일로서가 아니라 펼쳐지는 그대로 보게 됩니다. 그러니 여러분은 고고학 탐사(archaeological expedition)에 오신 셈이죠 — 다만 시간 폭이 아주 짧은 탐사입니다.
시작하기 전에 미리 말씀드리면, 끝날 때 비회원께는 회원 가입을, 회원께는 더 많은 기부를 부탁드릴 겁니다. 그리고 이 방에 계신 분들이 서로를 조금 더 알게 되었으면 합니다. 여기엔 이미 유명한 분들과 앞으로 유명해질 분들이 함께 계십니다. 오늘 밤엔 저희 펠로우 중 한 분인 더그 엥겔바트(Doug Engelbart) 께서 함께하십니다. 진짜로 유명해지면 일어설 필요도 없나 봅니다. (웃음)
모든 행사에 오시는 또 한 분을 소개합니다. 제가 1978년 암달(Amdahl)에 있을 때 컴퓨터 보안 주제로 자문을 해주신 돈 파커 씨입니다. 그때만 해도 오늘날 같은 문제가 생길 줄은 아무도 몰랐지만, 그 시절에도 이미 그분은 이 분야의 전문가였습니다.
회원 인사
돈 파커: 짧은 소개 감사합니다. 컴퓨터 역사박물관을 후원하는 건 정말 좋은 일이고 혜택도 큽니다. 회원의 미덕을 칭송하라고 평범한 회원 하나를 올려보내신 모양이군요.
우선 우리 모두 동의할 수 있는 게 있습니다 — 와인과 음식이 정말 훌륭합니다. (박수) 그리고 강연 시리즈는 이 박물관의 큰 자산입니다. 강연이 시작되기 전, 우리 늙은 괴짜(old geezers)들과 젊은 풋내기(young whippersnappers)들이 박물관의 역사적 보물과 유물, 전시물 사이에서 좋은 교류와 대화를 나눌 기회를 갖게 됩니다.
저는 언젠가 박물관이 열어주길 바라는 새 전시가 하나 있습니다. 컴퓨팅의 어두운 면(the dark side of computing) — 실리콘밸리 출신 악명 높은 컴퓨터 범죄자들의 수감자 머그샷까지 포함해서요. 꽤 근사할 것 같지 않나요.
Sun Labs가 후원하는 이 강연 시리즈는 지난 50여 년 동안 실제로 무슨 일이 있었는지 보여준다는 점에서 매우 중요합니다. 마운틴 와이너리의 좋은 와인과 훌륭한 음식까지 곁들여서요. 이 모든 게 말도 안 되게 저렴한 회비에 딸려 오니, 기본 회비 이상으로 더 내야 마땅합니다. 와인과 음식 얘기는 이미 했던가요.
오늘 밤 '위키에 따른 세계' 프로그램이 기대됩니다. 사실 오늘 아침에 스도쿠(Sudoku)의 위키 항목을 읽고 있었습니다. 불행히도 스도쿠에 중독됐는데, 혹시 같은 처지인 분 있으면 전략을 나누고 싶습니다. 특히 6월 프로그램이 기대되는데, 옛 친구 밥 프라이스(Bob Price)가 52년 전 컨트롤 데이터(Control Data Corporation) 경험을 이야기할 예정입니다. 밥과 저는 샌디에이고 콘베어(Convair)에서 유니박(UNIVAC) 1103으로 함께 프로그래밍을 배웠고, 8진법(octal) 으로 작업했습니다. 그 탓에 지금도 소득세 계산을 하다 8진 산술로 빠져서 곤란합니다. 스도쿠를 풀 때도 숫자 8과 9에서 애를 먹고요.
훌륭한 박물관 스태프와 존 툴(John Toole), 캐런 터커(Karen Tucker)의 지휘 아래 일하는 자원봉사자들, 그리고 Sun Labs의 후원에 건배합니다. 좋은 전시, 좋은 교류, 좋은 강연 시리즈 계속 부탁드립니다. 와인과 음식 얘기는 했던 것 같군요. 감사합니다. (박수)
오늘의 두 사람 소개
데이브 앤더슨: 회원의 가장 큰 혜택은 좋은 와인, 좋은 음식, 그리고 동료애죠.
오늘 밤에는 존 게이지가 위키를 주제로 워드 커닝햄을 인터뷰합니다. 이 자리가 만들어진 경위가 재미있습니다. 몇 달 전 Sun 창업자 패널을 준비하면서 존 게이지가 "모든 걸 위키로 정리하자"는 말을 도무지 멈추지 않았습니다. 결국 캐런이 그를 돌아보며 "알겠어요, 위키로 세션을 하나 하죠"라고 했고, 그래서 오늘 밤이 있는 겁니다. 역사는 때때로 이렇게 흥미로운 방식으로 만들어집니다.
참고로 존은 오늘 오시는 길에 언론과 잠깐 이야기를 나눴습니다. Sun 창업자 중 한 사람으로서, 오늘 있었던 Sun의 변화 때문이죠. 모든 회사는 앞으로 나아가니까요. 흥미로운 변화가 될 겁니다.
여기 존의 이력을 적어 왔는데, 읽다 보면 "내 인생은 뭘 했나" 싶어 좀 민망해집니다. 미국 국립의학도서관(National Library of Medicine) 이사회, FMI Labs, 수리과학연구소(MSRI), 넷데이(NetDay), 스쿨스 온라인… 더 읽지는 않겠습니다. 우리 환경에 깊이 관여하고 지금 세상에서 무슨 일이 벌어지는지 제대로 이해하는 분이며, 커닝햄 씨에게 좋은 질문을 던져줄 겁니다.
반면 워드 커닝햄은 제가 여태 본 것 중 가장 흥미로운 직함을 갖고 있습니다. 이클립스 재단의 커미터 커뮤니티 개발 디렉터(director of committer community development) 입니다. 커미터 담당 디렉터라는 사람은 처음 만나 봅니다만, 오늘 그게 정확히 무슨 뜻인지 배우게 되겠죠. 위키가 뭔지 조금 아는 입장에서 보면 꽤 중요한 자리일 것 같습니다.
그는 주로 소프트웨어와 소프트웨어 개발을 중심으로 다양한 일을 해왔습니다. 컨설팅 회사 커닝햄 앤드 커닝햄(Cunningham & Cunningham)을 공동 창업했고, 마이크로소프트 패턴 앤드 프랙티스(Patterns and Practices) 그룹의 아키텍트를 지냈습니다. 본인 표현으로는 "여러 가지를 굴러가게 만들어 놓고, 결실을 보기까지 머물지는 않았다"고 하더군요. 조직을 영원히 바꿔놓았다고 믿는 듯한데, 아마 사실일 겁니다. 와이엇 소프트웨어(Wyatt Software) R&D 디렉터, 텍트로닉스(Tektronix) 수석 엔지니어를 거쳤고, 익스트림 프로그래밍(XP) 작업으로도 잘 알려져 있습니다. 여기 신봉자도 여럿 계실 겁니다. 하지만 오늘 그를 모신 진짜 이유는 위키위키웹(WikiWikiWeb) 입니다. 워드, 무대로 나와 주세요. (박수)
대담 시작
존 게이지: 마이크 잘 들리나요? 좋습니다. 저는 늘 이렇게 말하곤 했습니다 — 미국 통신의 토대는 모든 미국 십대가 아파트 건물의 작은 전화 단자에 악어 클립을 물릴 수 있는 능력이었다고요. 도청의 시작이었죠.
더그 엥겔바트가 이 자리에 계시다는 게 저는 정말 기쁩니다. 왜냐하면 오늘 우리가 이야기할 주제가 바로 더그가 평생 이야기해온 것이기 때문입니다. 인간 지능의 증강(augmenting human intelligence) — 다수의 인간 지능이 새로운 방식으로 함께 모이도록 하는 일 말입니다. 어떻게 마음들의 공동체(community of minds)를 만들고, 그들에게 표현의 장을 찾아주는가. 어떻게 그들의 사고를 집중시키는 방식으로 그 일을 해내는가. 그래서 그들이 쓰는 도구가 그들의 사고방식 자체를 바꾸게 되는가.
워드와 저는 스몰토크(Smalltalk) 이야기를 나눴습니다. 그것이 어떻게 당신을 사로잡았고, 어떤 사고방식과 아이디어가 당신을 움직여 왔는지에 대해서요. 그 얘기로 들어가기 전에 — 오늘 한두 시간 동안 아드님과 함께 컴퓨터 역사박물관을 둘러보셨죠. 무엇을 보셨습니까?
워드 커닝햄: 세상에, 뒷방(back room)까지 봤습니다. 거기엔 훨씬 더 많은 것들이 있더군요. 역사박물관을 걸어 다니면서 "저거 내가 프로그래밍했지, 저것도, 저것도" 하고 말할 수 있다는 건 좀 무서운 일입니다. 아들이 웃고 있었으니 아주 끔찍하진 않았나 봅니다.
유산(legacy)이 정말 엄청납니다. 뒷방에 들어갔을 때 인상적이었던 건, 각 시대의 기계마다 전시된 것 말고도 열 대씩 더 있다는 점이었습니다. 다른 설계자들이, 다른 열망과 희망으로 — 사람들이 컴퓨터를 설계하도록 만드는 그 무엇이 무엇이든 간에 — 만들어낸 것들이죠. 지난 50년간 기계를 만드는 데 투입된 인간 지성의 총량은 어마어마합니다. 저는 그걸 보고 흥분했습니다. "내가 이 분야를 사랑할 만하지" 싶었어요.
물론 저는 새 기계가 곧 새 아이디어이던 시대에 자랐습니다. 기계를 보면서 그것이 구현한, 이전엔 본 적 없는 아이디어가 무엇인지 알아내려 애썼죠. 그러다 사람들이 컴파일러를 더 잘 만들게 되면서, 새 아이디어는 새 언어에 담기게 됐습니다. 그래서 모든 컴퓨터를 다 시도해보는 게 말이 됐습니다. 그게 아이디어를 배우는 방법이었으니까요. 아이디어가 거기 있었으니까요.
존 게이지: 당신 웹사이트를 봤는데, 당신은 그야말로 컴퓨터 역사박물관 그 자체인 사람이더군요. 하이퍼카드(HyperCard) 스택이 아직도 사이트에 올라가 있던데요.
워드 커닝햄: 맞습니다. 오늘날 실행할 수 없는 기술에 참 많이 투자했죠. 그것도 그중 하나로 치겠습니다.
존 게이지: 하이퍼카드 얘기를 해봅시다. 그 이야기는 더그가 평생 해온 작업, 그리고 당신이 해온 작업으로 이어지니까요. 당신은 애플이 만든 것에 링크를 하나 더했습니다 — 링크를 생성하는 버튼을요.
워드 커닝햄: 하이퍼카드에는 '카드' 은유가 있었는데, 그건 당시 화면이 인덱스카드만 했기 때문입니다. 요즘 화면으로는 상상하기 어렵죠. 하이퍼카드는 내가 소유한 컴퓨터에서 돌아가는 최초의 세련된 하이퍼 시스템이었습니다. 자기가 소유한 컴퓨터에서 돌아간다는 게 중요합니다. 그래야 거기에 노력을 쏟을 마음이 생기니까요. 그리고 꽤 귀여운 그래픽과 애니메이션이 있었습니다.
저는 이걸 가지고 놀면서 하이퍼카드가 무엇이 되고 싶어 하는지 알아내려 했습니다. 그것이 구현한 아이디어가 무엇인지 이해하고 싶었어요. 그래픽도 분명 일부였지만, 그 이상의 무언가가 있었습니다. 그래서 데이터베이스를 만들어보기로 했습니다 — 하이퍼카드에는 데이터베이스 기능도 있었으니까요. 저는 울퉁불퉁하고 불규칙한(ragged and irregular) 대상의 데이터베이스를 만들고 싶었습니다.
그래서 제 지론 하나를 다뤄보기로 했습니다. 당시 저는 매우 엔지니어링 중심적인 회사 텍트로닉스에 있었는데, 제 생각에 대부분의 엔지니어는 이전에 작동하는 걸 본 적이 없으면 시도조차 하지 않는다는 것이었습니다. 자기 설계가 걸린 문제니 진짜 보수성이 있었죠. 그래서 저는 우리 회사를 거쳐 간 모든 아이디어를 추적하는 데이터베이스를 만들었습니다 — 어떤 프로젝트에서 그 아이디어가 쓰였고, 어떤 엔지니어가 참여했으며, 그것을 어떻게 이어갔는지.
재미있는 건 그다음입니다. 사람들이 제 사무실에 들러 데모를 청했습니다. "워드, 다들 얘기하는 그 하이퍼카드라는 거 있다며? 어떻게 생겼는지 보여줄래?" 그래서 그래픽과 애니메이션을 보여주면 "귀엽긴 한데, 그래서 어디에 쓰는 건데?"라고 합니다. 그러면 제가 만들던 작은 애플리케이션을 보여줬죠. 회사 프로젝트 설명을 이리저리 둘러보다가 — 자기가 참여한 것도, 아닌 것도 나오죠 — 사람들은 늘 이렇게 말했습니다. "이건 좀 틀렸는데. 그때 그런 일이 있었던 게 아니야. 그 프로젝트를 그 이유로 한 게 아니야. 그 매니저가 하려던 건 그게 아니었어."
그러면 저는 "그럼 고치세요"라고 했습니다. "아, 그래도 돼요?" 하면서 사람들은 카드의 정보를 고쳤습니다. 그리고 그걸 정말 좋아했습니다. 자기가 관심 있는 무언가에 대한 서술이 있는 공간을 돌아다니다가, 뭔가 틀린 걸 발견했을 때 바로 그 자리에서 고칠 자유가 있다는 것 — 그건 마법 같았습니다. 심지어 사람들이 제 책상을 떠나려 하지 않았죠.
한 가지 요령을 부린 게 있습니다. 하이퍼카드에서 링크를 만들려면, 대상 카드로 가서 "링크 만들기"를 한 다음 그걸 원하는 위치로 가져와야 했습니다. 즉 이미 존재하는 카드로만 갈 수 있었습니다. 그런데 제 주제는 '텍트로닉스의 모든 아이디어, 영원히'였고, 이건 제 능력보다 훨씬 컸습니다. 완결될 수 있는 게 아니었죠. 그래서 저는 그 기능을 쓰지 않았습니다.
대신 검색 기능을 썼습니다. 어떤 단어를 클릭하면 그 단어를 검색합니다. 못 찾으면 그냥 삑 소리가 나고, 찾으면 그 카드로 갑니다. 그런데 누르고 있으면, 그 카드가 없더라도 카드를 생성합니다. 그래서 이런 식이 됐습니다 — 단어를 클릭하면 "삑, 그건 모르겠는데." 그럼 "나는 그것에 대해 알지" 하며 더 세게 누르면 카드가 나타납니다.
여기서 위키를 만들어봤거나 다뤄본 분? 이거 익숙하지 않나요? 정확히 그 메커니즘입니다.
1995년 월드와이드웹에서 사용할 수 있는 위젯만으로 그 느낌을 재현할 방법을 찾아야 했습니다. 결국 이렇게 했습니다. "마우스 누르고 있기" 같은 요령은 못 쓰니, 페이지를 렌더링해 화면에 올릴 때 링크가 될 수 있는 모든 단어를 조회해서, 그 페이지로 가는 링크로 만들거나 편집 페이지로 가는 링크로 만드는 겁니다. 위키백과에서는 이걸 빨간 링크(red link) 라고 부르죠. 페이지로 가느냐 편집 페이지로 가느냐에 따라 빨강 또는 파랑으로 칠합니다. 요컨대 "나는 모르니 당신이 말해달라"는 뜻입니다.
이 방식은 하향식 편집(top-down editing) 을 가능하게 하는데, 경계가 어디인지 모르는 대상 — 계속 뻗어나가서 결국 자기 관심으로 어디서 멈출지 정해야 하는 대상 — 을 서술하기에 잘 맞습니다.
존 게이지: 표현 하나가 걸리는군요. 공영 라디오에서 소설가 폴 오스터(Paul Auster)의 인터뷰를 들었습니다. 새 소설이 나왔다고 하니 그가 말하길, "네, 20년 전에 쓰기 시작했는데 인물들이 너무 흥미로워져서 그들이 되고 싶어 하는 존재가 되도록 놔둘 수밖에 없었습니다." 당신도 하이퍼카드에 대해 같은 말을 했습니다 — 하이퍼카드가 되고 싶어 하는 것이 되게 해야 했다고요. 어떤 의미에서 텍트로닉스 엔지니어들을 책상에 불러 링크의 틀 안에서 텍트로닉스의 지식이 떠오르는 걸 보여줬을 때, 당신은 텍트로닉스가 될 수 있는 모습으로 떠오르게 하고 있었던 겁니다.
워드 커닝햄: 그리고 그건 제 예상과 많이 달랐습니다. 제가 알던 것보다 정치가 훨씬 많더군요. 사실 그 스택은 묻어버린 것 같습니다.
그런 믿음 — 어떤 시스템이든 특정한 방식이 되고 싶어 하며, 설계자는 그것이 무엇이 되고 싶어 하는지 알아차려야 한다는 믿음 — 은 온갖 컴퓨터를 공부하면서, 인덱스 레지스터를 넣은 사람들이 우리가 그걸로 무엇을 하길 기대했는지 알아내려 애쓴 데서 왔습니다. 그들에겐 기대가 있었고, 일단 그걸 파악하고 나면 "자, 인덱스 레지스터로 뭘 할 수 있는지 보여주지" 하게 됩니다. 창의성은 거기서 나옵니다. 하지만 먼저 시스템이 작동하고 싶어 하는 방식을 이해해야 합니다. 그걸 이해하고 나면 마음껏 몰아붙일 수 있습니다.
이건 설계(design)를 요구할 만큼 충분히 풍부한 모든 것에 해당한다고 생각합니다. 우리 삶에는 너무 단순해서 "설계한다"고 말할 수 없는 것들이 많지만, 컴퓨터는 그런 것이 아닙니다.
존 게이지: '설계(design)'라고 하셨는데 '아키텍처(architecture)'라고 해도 됩니까? 두 단어를 섞어 쓰시나요?
워드 커닝햄: 저는 그럽니다. 제가 부주의해서요. 저는 아키텍처와 요구사항과 설계가 어디서 끝나는지 구분하기 어렵고, 사실 그 사이를 계속 오갈 수 있는 편이 좋습니다. 코딩을 하는데 잘 안 풀리면 설계에 뭔가 잘못이 있다고 봅니다. 설계가 혼란스러우면 아키텍처에 문제가 있다고 봅니다. 아키텍처가 어려우면 요구사항에 문제가 있고 이제 그걸 바꿀 때가 됐다고 봅니다. 그래서 그냥 이리저리 옮겨 다닙니다.
저는 모든 프로그램이 쓰기 쉬웠던 것처럼 보이길 원합니다. 실제로는 아니었더라도요. 쓰기 쉬웠던 것처럼 보인다면, 마치 이 프로그램을 쓰라고 그 언어가 설계된 것처럼 보인다면, 그때 언어를 잘 쓴 겁니다. 저는 그걸 추구합니다.
존 게이지: 예술가가 여기 있군요. 좋습니다. 하지만 그건 예술입니다. 정말 예술이죠.
당신이 만든 또 다른 장치가 있습니다. 객체지향 언어로 개발하는 사람들을 위한 일종의 인덱스카드 — 어떤 객체가 있고 어떤 클래스가 있는가.
CRC 카드 — 클래스, 책임, 협력자
JG: 세상에는 온갖 웅성거리는 현실과 복잡성이 있는데, 그것이 단순화됩니다. 당신은 다시 한번 도구를 만들었죠 — 이 클래스가 무엇인지, 그 인스턴스가 무엇을 할 수 있는지, 다른 것들과의 관계에서 무엇을 하는지 적는 작은 칸을요. 그 카드 시스템을 가지고 놀면서 구조가 떠오르게(emerge) 했습니다. 맞습니까?
WC: 아주 좋은 설명입니다. 그건 CRC 카드라고 불리게 됐습니다. Class(클래스), Responsibilities(책임), Collaborators(협력자) 의 약자죠. 객체를 설계할 때 알고 싶은 건 이것입니다 — 이건 어떤 클래스인가, 무엇을 하려고 존재하는가, 그 일을 해내도록 누가 도와줄 것인가.
제가 객체지향 프로그래밍에서 가장 중요하다고 — 아니, 가장 중요하다기보다 가장 독창적이라고 느낀 게 그것이었습니다. 80년대 중반쯤이었고, 저는 그 점을 진짜로 강조하는 표기법을 원했습니다. 같은 시기 많은 사람이 객체지향 설계 방법을 궁리하고 있었는데, 그들이 내놓은 방식들은 제가 스몰토크에서 가장 인상 깊게 본 종류의 객체지향 설계를 아예 허용하지도 않았습니다.
저는 그 무렵 몇 달, 어쩌면 1년쯤 스몰토크를 같은 방식으로 공부했습니다 — 이것은 무엇이 되고 싶어 하는가, 여기 담긴 아이디어는 무엇인가. 마치 창조의 현장에 있었던 것처럼 그 코드 안에서 살아보려 했습니다. 실제로 그 자리에 있었더라면 좋았겠지만 아니었죠. 그래도 그게 어떤 느낌인지는 느꼈습니다. 그런데 사람들이 "객체를 찾으려면 이렇게 저렇게 하라"고 말하는 걸 보고 저는 생각했습니다. "저런 방법으로는 내가 흥미롭다고 생각하는 객체는 못 찾는다."
당시 사람들은 객체지향의 핵심은 분류(classification) 라고 했습니다. 계층구조를 어떻게 짤 것인가, 듀이 십진분류법 같은 이야기를 했죠. 저는 "잠깐만, 이건 계층구조에 관한 게 아니다"라고 했습니다. 이건 객체들이 일을 해내기 위해 어떻게 분담하느냐에 관한 것입니다. 하나를 빼고 다른 걸 꽂아 넣으면 다른 일을 하되 어떤 의미에서는 같은 계산이 되도록, 그런 식으로 분담하는 것 말입니다.
무엇이 이상적인 분담인가에 대한 감각은, 컴퓨터 전문가가 아니어도 사람들이 직관적으로 꽤 잘한다고 생각했습니다. 그래서 컴퓨터에서 벗어나 인덱스카드로 하기로 했습니다. 인덱스카드의 좋은 점은 테이블 위에 펼칠 수 있다는 것, 그리고 실제로는 10장만 필요한데 150장을 늘어놓을 수 있다는 것입니다. 그러다 카드를 밀어서 테이블 밖으로 떨어뜨리다 보면, 모두가 고개를 끄덕이는 10장이 남습니다. "이건 이걸 하고, 이건 저걸 하고" 하며 이야기를 들려주면, 카드는 작은 인형(puppet) 같은 역할을 합니다. 실제로 인형극을 할 필요는 없으니 전문가답게 보이고요.
제가 프로그래밍을 배울 때는 의인화하지 말라고 배웠습니다. "컴퓨터가 이렇게 할 거야"라고 말하지 말라고요. 실제로는 프로그래머나 관리자 탓인데 너무 많은 잘못이 컴퓨터에 전가됐으니까요. 하지만 저는 협업이나 일의 분담을 눈으로 보게 해주는 수단을 쓰는 게 정말 중요하다고 생각합니다. 인간은 그런 행동을 이해하니까요. 그 능력을 전부 테이블 위로 끌어와야 합니다.
JG: 그러니까 테이블이 있고, 곧 10장이 될 150장의 카드가 있고, 사람들이 둘러서 있습니다. 당신은 어떤 객체를 가리키며 "이 친구는 이걸 하고 싶어 하고, 저 친구는 저걸 하려 하고"라고 말하며 이야기를 만듭니다. 그런 언어인가요?
WC: 정확합니다. 제가 하려는 건 클래스 이름에서 벗어나는 겁니다. "이건 순서 있는 컬렉션이고, 이건 다형적 디스패치이고" — 그런 말은 사람들을 테이블에서 쫓아냅니다. 그렇다고 도메인 이야기를 하려는 것도 아닙니다. 저는 컴퓨터 프로그램에 대해 이야기하고 싶습니다. 다만 도메인을 아는 사람들 앞에서 "우리가 이것을 어떻게 전산화할 것인가"를 이야기하고 싶은 겁니다. 그래야 그들의 표정이 좋은지 아닌지 볼 수 있으니까요.
'하루'가 사람마다 다른 이야기 — 금융 트레이딩 시스템
JG: 언젠가 업무 프로그램 사례를 드셨죠. 한 달(month)의 정의가 사람마다 다른 의미였다는 이야기요.
WC: 흥미로운 사례였습니다. 금융 소프트웨어, 정확히는 트레이딩 시스템을 개발 중이었습니다. 고객이 가장 원한 건 백오피스로 넘길 때 정보를 다시 입력하지 않는 것이었습니다. 그래서 한 번에 잡아서 백오피스 처리까지 동시에 하려 했죠.
그런데 버그가 잔뜩 나왔습니다. 추적하며 여러 사람과 이야기해 보니, '하루'가 언제인가에 대해 서로 다른 답이 돌아왔습니다. 과학자라면 하루는 지구의 공전과 관련된 무엇이라 하겠지만, 비즈니스에서 하루는 퇴근할 때 끝납니다. 그게 하루의 경계이고, 그들은 하루 단위로 일합니다.
그런데 프런트오피스는 온종일 거래를 하니 "내 하루는 미수이자(accrued interest)를 포함하지 않는 시점까지"라고 합니다. 반면 백오피스 회계 담당자는 "나는 미수이자를 반영해야 하므로 이자가 발생한 날에 넣겠다"고 합니다. 지금 제가 생각하는 방식으로는, 거래하는 기간이 있고 거래하지 않는 기간이 있는데, 거래하지 않는 그 기간이 미수이자 구간입니다. 이게 반복되는데, 이걸 두 가지 다른 방식으로 짝지어 자를 수 있습니다. 두 부서는 서로 다르게 자르고 있었고, 그 사실조차 모르고 있었습니다.
JG: 객체를 옮겨가며 "이건 저것과 상호작용한다"고 말하는 과정에서 언어가 명확해진 건가요?
WC: 그랬다면 좋겠지만 아닙니다. 이 경우엔 실제로 프로그램을 짜야 했고 버그를 사냥해야 했습니다. 출시하고 나서 1년쯤 지나서였을 겁니다.
문제는, 매일 이자액이 동일한 채권이면 차이가 드러나지 않는다는 점입니다. 국채가 그렇죠. 여러 요소가 변해야 차이가 보입니다. 그래서 복잡한 증권을 다루기 전까지는 우리가 제대로 했다고 믿었습니다. 고객이 요구한 그대로 했고, 프런트오피스도 백오피스도 만족했습니다. 그런데 더 복잡한 상품을 다루기 시작하자 불만이 나왔습니다. 우리가 잘못 넣었나 싶어 확인했지만 이상이 없었습니다. 깊숙한 곳에 오해가 있었던 겁니다. 고객에게 물어도 설명하지 못했습니다. 하지만 포기하지 않고 계속 파고들었습니다. 뭔가 잘못됐다고 확신했으니까요.
결국 알아낸 것은, 두 부서가 서로 제대로 소통하고 있지 않았다는 사실입니다. 그런데 본인들은 알 수가 없었습니다. 특히 고정금리 증권에서는 혼란이 생기지 않을 만큼은 소통이 됐으니까요. 하지만 컴퓨터가 — 수십억 단위를 거래하면서 1센트까지 정확할 것을 요구하니 — 우리는 그들 자신도 몰랐던 것을 발견하는 상황에 내몰렸습니다. 그리고 멋진 건, 우리가 그걸 고쳤다는 겁니다.
제가 강하게 느끼는 게 이겁니다. 통찰이 프로젝트의 어느 시점에 찾아올지 알 수 없습니다. 고정금리 때문에 오해가 드러나지 않았던 이유를 지금은 다 설명할 수 있지만, 모든 사람을 인터뷰해서 그걸 알아낼 방법은 없었습니다. 인터뷰로 알아내는 것들도 있긴 한데, 대개는 사람들이 무엇을 중시하는가에 관한 것입니다.
좋은 요령을 하나 알려드리면 — 고객이 여럿 있을 때 정말 어려운 질문을 던지면 모두가 프레드를 쳐다봅니다. 그러면 곧 프레드만 주목하게 되죠. 진짜로 아는 사람이 그니까요. 사람들은 사회적으로 그런 신호를 많이 보냅니다. 그 시스템을 실제로 쓸 사람들 앞에서 설계하면 실제 사회적 의사결정 과정이 어떤지 알게 되고, 거기에 맞춰갈 수 있습니다.
위키의 사회적 설계 — 익명성 문제
JG: 위키를 만들 때의 발상은 그런 사회적 상호작용이 일어날 수 있는 구조를 만드는 것이었죠. 그리고 익명성 같은 문제와 씨름해야 했습니다. 어떻게 전개됐습니까?
WC: 하나씩 부딪히며 나아갔습니다. 솔직히 저는 운이 아주 좋았습니다. 목표가 단순했고, 하이퍼카드에서 그것을 이미 봤고, 하이퍼카드가 제 무릎에 떨어졌고, 그걸 잘 활용했고, 꽤 구체적인 야심이 있었습니다. 그러다 기회가 생길 때마다 "이것을 쓰는 옳은 방식과 아닌 방식에 대해 안내를 좀 해야겠다"고 판단했습니다. 그 안내는 사람들이 무엇을 하는지 반쯤 지켜보면서 만들었습니다. 예전에 컴퓨터를 관찰하던 방식 그대로 이제는 사람을 관찰한 겁니다. 사람들은 실제로 어떻게 행동하고 싶어 하는가.
한편 우리 업계에는 권위에 대응하는 방식에서 상당한 역기능이 있다고 봤습니다. 그래서 누군가 논쟁적인 말을 하고 싶을 때 — 예컨대 "내 경험상 설계에 시간을 많이 쓰는 건 전혀 도움이 안 된다" 같은 말 — 걱정 없이 말할 수 있어야 한다고 생각했습니다. 그래서 익명이 되는 게 매우 중요하다고 봤습니다. 요즘은 문제가 많아져서 "대체 누가 저 포르노 사이트를 올렸나" 알고 싶어지죠. 그러니 익명성의 시대는 끝나가는지도 모릅니다.
하지만 소프트웨어공학 교과서에 적힌 것과 다른 방식으로 소프트웨어를 이야기하면서도 진지하게 받아들여지는 것 — 그게 그 사이트의 아주 중요한 부분이었습니다. 누군가 어떤 발언을 하고 그것이 진지하게 받아들여질 때마다, 다음 사람이 자기 프로그래밍 경험에 대해 더 진실한 말을 하도록 부추기고 싶었습니다. 많은 사람이 프로그래밍에서 기대했던 것보다 훨씬 못한 것을 얻고 있다는 걸 알았기 때문입니다. 일이 즐겁지 않고, 자기가 쓴 프로그램이 자랑스럽지 않았습니다. 저는 그걸 바꾸고 싶었습니다. 프로그래밍은 훌륭한 일이고, 저는 모두가 그 기쁨을 누리길 바랐습니다.
패턴은 어떻게 나왔나 — 크리스토퍼 알렉산더
JG: 패턴에 대한 관심은 어떻게 생겼습니까? 스몰토크 경험과, 객체의 경계와 상호관계를 이해하려던 시도에서 자라난 건가요?
WC: 가장 단순한 답은 이렇습니다. 카드에 책임(responsibility)을 적다 보니 같은 책임을 계속 반복해서 쓰고 있다는 걸 알았습니다. "한 열 개쯤 되겠구나, 그걸 목록으로 만들면 설계가 훨씬 쉬워지겠다." 그런데 목록을 만들려고 할 때마다 미끄러져 나갔습니다. 간단해 보이는데 안 됩니다. 마치 "당신은 단어를 몇 개나 아느냐"고 묻는 것과 비슷합니다. 많이 알고, 필요할 때 떠오르지만, 알파벳순으로 적어낼 수는 없죠.
그러다 옛 친구 빌 크로프트(Bill Croft)가 몇 년 전에 보내준 책이 다시 떠올랐습니다. 크리스토퍼 알렉산더(Christopher Alexander)의 『패턴 랭귀지(A Pattern Language)』 였습니다. 처음엔 뭔지 몰랐지만 흥미로웠는데, 다시 꺼내 보니 바로 그것이었습니다. 제가 책임 목록을 원할 때, "이 객체는 무엇을 할까"를 말하고 싶을 때 원했던 것 — 알렉산더는 그것을 나열하는 방법을 발견했고, 단순한 목록보다 복잡한 형태였습니다. 그러자 갑자기 말이 됐습니다.
"좋아, 알렉산더가 한 그대로 하면 되겠군." 심지어 그는 어떻게 했는지 설명하는 또 다른 책까지 썼습니다. 그래서 그것도 읽었습니다. 쉽게 들리더군요. 그리고 앉아서 해봤는데 — 아무것도 안 나왔습니다. 알렉산더가 패턴이라 불렀으니 우리도 패턴이라 불렀고, 저는 그것을 원했습니다.
재미있는 건 이겁니다. 초기에 얻은 최고의 패턴들은 남이 망치는 걸 볼 때 나왔습니다. 누군가 형편없는 설계를 하고 있으면 "아니, 그러면 안 되고 이렇게, 이렇게, 이렇게 해야 해"라는 생각이 듭니다. 제가 설계 상태에 들어가 있으니 상대가 놓친 정보가 보이는 겁니다. "당신이 알아야 할 걸 말해줄게. 이것, 이것, 이것, 이것, 이것." 그러다 멈추고 생각합니다. "방금 그 다섯 가지가 뭐였지?" 그리고 이름을 적습니다. 그다음 그것들을 알렉산더식 형식 — 문제, 해법, 맥락 등 — 으로 옮깁니다.
결국 필요한 건 설계하려는 욕구, 혹은 설계의 맥락을 표현하려는 욕구입니다. "당신에게는 이 설계를 완성하는 데 필요한 경험이 없다"고 말하고 싶은 그 충동이 지식을 끌어올립니다. 제 경험 속으로 손을 뻗어 "이봐, 이게 자네가 알아야 할 거야"라고 말하게 되는 거죠.
지금까지도 저는 속을 쏟아내고 싶은 충동이 있을 때가 아니면 좋은 패턴을 쓰지 못했습니다. 그리고 그건 대개 남의 설계를 볼 때입니다. 제 설계에 대해서는 무의식적으로 계속 하고 있어서 그 불협화음(dissonance)을 눈치채지 못합니다. 남의 것을 볼 때는 — 제가 위대한 설계자라는 뜻이 아니라 — 그 불협화음이 느껴지고, 만들어내야겠다는 욕구가 불쑥 튀어나옵니다.
그래서 저는 사람들에게 설계를 볼 때 자기 기분에 주의를 많이 기울이라고 권합니다. 이 설계에 흥분되는지, "이걸 익히면 나는 더 강력해지겠구나" 싶은지, 만든 사람이 존경스러운지 — 그 감각은 어떤 의미에서 자기 카탈로그 안의 패턴과 일치하는 것을 알아보는 것입니다. "아, 이 패턴들이 들어맞는구나." 반대로 전혀 들어맞지 않는 걸 보면, 그것이 반드시 틀렸다는 뜻은 아니고 내 경험과 맞지 않는다는 뜻일 뿐입니다. 다만 아마도 틀렸을 겁니다.
스몰토크, 그리고 프로그램을 '모델'로 보기
JG: 스몰토크를 처음 만났을 때의 그 느낌을 좀 더 설명해 주세요.
WC: 스몰토크 영업사원처럼 들리겠군요. 여기 스몰토크 프로그래머 몇 분 계신가요? 몇 명 있네요.
저를 정말 뒤흔든 건 도널드 커누스(Donald Knuth)의 엘리베이터 시뮬레이터를 읽은 것이었습니다. 대학 때였는데, 프로그래밍을 배우는 중이었죠. 엘리베이터 시뮬레이터를 읽으면서 저는 이벤트 큐가 돌아가는 것이 보였고, 엘리베이터가 오르내리는 것이 보였습니다. 그 뒤로 제가 줄 서서 기다린 모든 엘리베이터에서 그 그림이 떠올랐습니다. 저에게 그것이 현실이 된 겁니다.
그걸 이렇게 표현할 수 있습니다. 저는 컴퓨터 프로그램을 하나의 메커니즘, 실제 무언가에 대한 모델로 생각했습니다. 실물이라고 생각하지 않고 모델이라고 생각했습니다. 사용자 인터페이스로도, 데이터베이스로도 생각하지 않고 모델로 생각했고, 그런 식으로 프로그램을 쓰려 했습니다.
그런데 스몰토크에서는 그것이 유일한 작성 방식이었습니다. 초점이 있었고 강렬함이 있었습니다. "모델을 만들어라. 인터페이스를 만들고 싶다고? 인터페이스도 또 하나의 모델일 뿐이다." 컴퓨터는 본질적으로 이산 사건(discrete events) 을 통해 모델링하기 위해 존재한다는 이 전체 관점 말입니다. 게다가 책이 "참고로, 이게 근사한 이산사건 시뮬레이터에서 어떻게 작동하는지 보여주겠다"고 하니 더 와닿았습니다. 프로그램이 어떻게 작동하는지에 대한 그 태도가 저에게는 아주 매력적이었고, 제게 말을 걸어왔습니다.
리스프 — 언어가 아니라 건축 자재
JG: 당신이 배운 각 언어는 저마다의 이유로, 어떤 순간에, 어떤 설계 문제에 대해 말을 걸어왔습니다. 리스프(Lisp) 세계, 사람들이 만든 그 훌륭한 심볼릭스(Symbolics) 환경, 추상화 계층들, 프로그래머가 추상화 수준에서 사고하도록 돕는 능력 — 리스프에 대한 당신의 감정적 이력은 어떻습니까?
WC: 리스프는 늘 제 손이 간발의 차로 닿지 않는 것 중 하나였습니다. 다 배웠다고 생각했는데, 읽고 나서 깨달은 건 리스프에는 하나의 패턴 집합이 없다는 겁니다. 인용할 만한 말이 있죠 — "리스프는 언어가 아니라 건축 자재(building material)다." 그래서 자기 프로그램에 착수하기도 전에 새로운 컴퓨팅 패러다임을 발명해 버리기가 너무 쉽습니다. 저는 그 패러다임들 사이를 충분히 빠르게 옮겨 다니지 못했습니다.
여전히 잘하고 싶은 것 목록에 남아 있습니다. 컴퓨팅에서 만들어진 가장 본질적이고 완결적이며 우아한 것 중 하나라고 생각하니까요. 하지만 사실은 이렇습니다 — 그리고 이게 좋은 연결고리가 될 텐데 — 학습자들의 공동체 안에 있지 않고서는 리스프를 정말 잘 배우는 게 불가능하다고 생각합니다. 무엇을, 어디서에 대한 노출이 충분하려면 공동체 안에 있어야 합니다. 혼자서는 코드를 충분히, 충분히 빨리 읽어낼 수 없습니다. "오, 이거 봐, 이거 해봐", "그건 나도 막혔어", "사실 그건 나쁜 코드야" 라고 말해주는 사람들이 있는 공동체가 필요합니다.
공동체가 언어를 가르친다 — 리스프에서 APL/J로
WC: 위대한 리스프 코드는 모두 공동체에서 나왔습니다. AI 연구소 같은 곳들, 사람들이 그 스타일에 물들 수 있었던 곳들이죠. 스몰토크도 그런 면이 있었지만 조금 달랐습니다. 스몰토크는 "스타일을 발명하지 말고 우리 것을 써라" — 메시지 디스패치, 객체지향 — 라고 했고, 꽤 좋은 스타일이었습니다. 당신 문제에 그 정도면 충분하다고 이미 결론 내렸다면, 리스프에서 원할 만한 특성을 다 갖고 있었습니다. 그래서 생산성을 확인하기가 쉬웠죠. 리스프는 여전히 제겐 숙제입니다.
다른 언어를 물으셨죠. 프롤로그(Prolog) 도 리스프에서 쉽게 되는 것을 특정 언어로 정제한 사례입니다. "그것 하나만 잘하는 언어를 만들자"는 식이죠. 그리고 저는 처음엔 APL, 나중엔 J에 들인 노력을 늘 즐거워했습니다. (J 프로그래머 계신가요? 네, 몇 분.)
APL이나 J는 3~5개, 많게는 10개짜리 기호 묶음을 하나의 완결된 패턴으로 보지 않고서는 프로그래밍할 수 없습니다. 더 정확히는 관용구(idiom) 라고 불러야 할 텐데, 대단히 관용적입니다. J는 특수 폰트가 필요 없는 APL 계열이고, 그 패턴 구조화를 언어의 자연스러운 일부로 만드는 의미론이 한층 더 정교하게 발전해 있습니다.
가장 놀라운 점은 변수가 하나도 없는 사소하지 않은 서브루틴을 쓸 수 있다는 겁니다. 연산자가 연달아 이어질 뿐이고, 입력과 출력은 암묵적입니다. 그런데 정말로, 그걸 보고 무엇을 하는지 알아보도록 자기 자신을 훈련시킬 수 있습니다.
직관이란 무엇인가
JG: 그건 직관을 기르는 것이군요. '직관'이라는 단어를 이 논의에 받아들이시겠습니까? 설계를 볼 때 "아니, 다섯 가지를 말해줄게"라고 하는 그 직관 말입니다.
WC: 저는 제가 직관적인 사람이라고 믿습니다. 그 때문에 양자물리학을 통과하기가 어려웠습니다. 그런데 실은 — 두 번째로 훑을 때는 직관적으로 느껴지기 시작했습니다.
직관에서 실제로 벌어지는 일은, 보고 있는 것이 자기 경험과 들어맞는다는 것, 더 중요하게는 다음에 필요한 것이 자기 경험에서 제공된다는 것입니다. 경험 속으로 손을 뻗어 "무슨 일이 벌어지는지 알겠다, 여기 패턴이 보인다, 다음 단계는 이것이다"라고 말할 수 있으면 많은 것을 직관적으로 해낼 수 있습니다.
물론 직관이 실패할 때 기댈 다른 것 — 조심스러운 유도(derivation) 같은 것 — 이 있으면 좋습니다. 과학이 기분 좋은 철학에 빠지지 않으려고 의지해온 것들 말이죠. "조심스럽게, 아주 작은 걸음으로 나아가자." 하지만 직관은 도약하게 해줍니다. 잘 작동할 때는 밀고 나가라고 말합니다.
이건 사람들을 겁먹게 하는 면이 있습니다. 예컨대 위키에는 직관적인 글이 많이 쓰입니다. "누구나 쓸 수 있고, 당신의 아이디어는 시작점에서 누구의 것 못지않다"고 하면 사람들이 쓰기 시작하는데, 자기가 믿는 것을 쓰게 됩니다. 위키백과에서는 믿는 것을 쓰면 안 되고 출처를 인용해야 하지만, 어떤 출처를 고르느냐에는 직관이 많이 개입합니다.
그런데 규모 때문에 — 수천 명 단위로 이걸 할 수 있기 때문에 — 사실상 사람들의 의견을 집계하는 것에 가깝더라도, 그 의견들이 통계적으로 유의미한 표본이 되면서 갑자기 중요해집니다.
저는 이 설명을 좋아합니다. "모차르트가 훌륭하다는 걸 우리는 어떻게 아는가?" 사람들이 연주회에서 박수를 쳤기 때문이죠. 그런데 당신이 별로라고 생각했는데 주변이 다 박수를 치면, 곧 당신도 박수를 치고 있고, 곧 "괜찮은가 보네"라고 생각하게 됩니다. 인간의 경험과 감상과 판단을 관통하는 피드백 루프가 무엇이 좋은지를 실제로 골라냅니다. 그리고 그것은 모차르트를 골랐고 스몰토크는 고르지 않았습니다. 그래서 저는 다른 데서 프로그래밍합니다. 스몰토크나 리스프, J가 가치 없다는 뜻은 아닙니다. 다만 업계의 움직임은 인간 활동이며, 어떤 의미에서 그것을 정당한 것으로 존중하는 게 합당하다는 뜻입니다. 동시에 자신이 중요하다고 보는 방향으로 그것을 밀어보는(nudge) 것도 합당합니다.
참여의 문턱을 낮추기 — 재즈 즉흥연주처럼
JG: 당신이 만든 환경의 밀어붙임 중 하나는, 청중 중 모차르트를 전혀 모르는 사람도, 아주 잘 아는 사람도 들어올 수 있게 한 것입니다. 가능한 한 낮은 참여 장벽. 1악장 전체를 대체할 안을 내놓아야만 참여할 수 있는 게 아니라, 음 하나를 바꿔볼 수 있게 하는 것 — 참여의 기울기(gradient) 를 만들어 사람들이 계속 걸어 들어와 청중이 되고 참여자가 되고 피드백에 가담하게 하는 것이죠.
WC: 당신이 말하는 건 즉흥 재즈에 가깝습니다. 연주자들이 일정 수의 패턴을 알고, 그날 밤 연주하고 싶은 걸 연주합니다. 그리고 연습실에서는 무대에서처럼 되지 않습니다. 아주 실질적인 의미에서 청중과 소통하고 있기 때문입니다.
위키에서 그렇게 하는 건 조금 더 원격적입니다. 몇 주 몇 달을 지켜봐야 사람들이 어디로 가는지 감이 옵니다. 제 위키에 처음 뭔가를 올렸을 때, 누군가 정중하게 "여기서는 그런 식으로 하지 않습니다"라고 알려주더군요. 제가 한 걸 다시 보니 그 말이 맞았습니다. 여기서는 그렇게 하지 않는 게 맞구나 싶어 사과했습니다.
중립적 관점(NPOV)과 토론 페이지
JG: 가장 놀라웠던 것 중 하나가 중립적 관점(neutral point of view) 이라는 목표, 그리고 그 뒤편의 코멘트·논쟁·모욕이 오가는 페이지였습니다. 그런데 정말 놀라운 건 토론 페이지에서 싸울 때조차 사람들이 서로에게 보이는 정중함이었습니다.
WC: 늘 정중했는지는 확신할 수 없죠. 누군가 정중하지 않은 부분을 지워버렸을 수도 있고요.
토론 페이지(talk page) 는 제 발명이라고 말하고 싶지만 아닙니다. 그것을 만든 사람을 만난 적이 있는데 — 이름이 기억나지 않아 아쉽습니다 — 초기 위키백과 참여자였습니다. 사람들이 쓰인 내용에 대해 이야기하고 싶어 하는데, 위키 스타일로도 백과사전 스타일로도 그 이야기를 할 수 없다는 걸 알아차린 겁니다.
제 위키에서는 저는 상관하지 않았습니다. 저는 백과사전을 만드는 게 아니라 프로그래밍의 경험에 관한 새로운 문학(a new literature) 을 발명하고 있었으니까요. 자기 경험에 대해 정직하게 이야기하는 한 그걸로 충분했습니다.
위키백과는 같은 메커니즘을 가져다 다른 목표를 세웠습니다. 지구상 모든 사람에게 그들의 모국어로 백과사전을 제공한다는 목표였죠. 좋은 목표이고, 해낼 거라고 봅니다. 그러려면 난장판이 되지 않도록 좋고 나쁨을 판단할 기준이 필요한데, 그 기준은 어느 정도 열려 있어야 합니다. 저는 "당신의 실제 경험을 반영할 것"이라고 했고, 그들은 "중립적 관점에서 쓸 것" 이라고 했습니다.
기자들과 이야기하면 수도 없이 듣는 질문이 "중립적 관점이라는 게 어떻게 가능하냐"입니다. 답은 불가능하다는 것입니다. 정말로 까다로운 문제에 중립이란 없습니다. 하지만 할 수 있는 건 이겁니다 — 이상(ideal) 으로 두고 "만약 중립적 관점이라는 게 있다면 어떤 모습일까, 그것에 더 가까워지도록 해보자"라고 하는 것. 그래서 "너는 이렇게 말하고 나는 저렇게 말하는데 누가 맞나" 하는 싸움이 벌어지면 제3자가 와서 "당신이 쓰는 이 단어 용법은 중립적이지 않다"고 지적할 수 있습니다.
그리고 정말 잘하게 됐습니다. 위키백과에서 중립적 관점으로 쓰는 법을 안내하는 페이지들을 읽어보면, 지난 5년간 쌓인 경험이 짙게 배어 있습니다. 자기가 열정을 품은 대상에 대해 쓰되 그 열정을 얼마간 묻어두고, 참이라고 알려진 것에 충실하도록 사람들을 어르는 법 말입니다. 훌륭한 작문 안내서입니다.
(음향 문제로 잠시 중단)
마이크에서 울림이 생겨 잠시 조정. "반파장 거리를 유지하고 목소리를 낮추면 괜찮겠다"는 농담이 오간 뒤 대담 재개.
논쟁이야말로 학습 과정이다
JG: 위키백과가 백과사전 편집자를 대량으로 길러내고 있다면, 소프트웨어 개발자도 그렇게 길러낼 수 있을까요?
WC: 어려운 질문과 씨름하는 것 — 많은 사람이 논쟁을 보기 싫어합니다. 특히 양쪽 모두에게 급여를 주고 있을 때 그렇죠. 상사 입장에서 두 엔지니어가 다투고 있으면 "그냥 하나 정해서 진행하면 안 되나" 싶습니다.
그런데 그 씨름은 더 나은 해법에 도달하려는 시도인 동시에 엄청난 양의 경험을 굳히는 과정입니다. 그게 학습 과정입니다. 정말 훌륭한 소프트웨어를 만들려면 그에 필요한 천 가지를 배워야 합니다. 사람들이 문제와 씨름하고 선택지를 모두 거쳐 결과를 보게 하지 않으면 — 라이브러리에서 가져다 쓸 수 있는 것을 굳이 직접 써보고 무슨 일이 일어나는지 보게 하는 것까지 포함해서 — 통찰은 생기지 않습니다. 그렇게 해야 뇌 뒤편이 쓸모 있는 직관을 만들 만큼 채워집니다.
JG: 그건 덮개를 좀 걷어내자는 논변이군요. 흔히 객체지향의 위대한 아이디어는 구현을 감추는 것, 메서드를 어떻게 구현했는지는 중요하지 않다는 것이라고 하는데, 당신은 사람들이 그걸 볼 수 있어야 한다고 말하는 거죠. 더 나은 방식과 더 나쁜 방식이 있으니까요.
WC: 맞습니다. 객체지향의 진짜 성취는 메서드를 읽을 때 그 안에서 보내는 메시지의 구현을 읽지 않아도 된다는 것입니다. 즉 아주 빠르게 읽을 수 있습니다. "아, 이 메시지를 보내는군, 뭘 하는지 알 것 같다. 나머지를 읽고 말이 되는지 보자." 말이 되지 않을 때, 혹은 다른 게 걱정될 때 — 메서드가 뭘 하는지 안 봐서 실수로 n³ 알고리즘을 만들었다든가 — 그때는 들여다봅니다. 메서드를 작성할 때는 그것이 무엇을 할지 정말로 알아야 하고, 어떻게 동작하는지 깊이 이해해야 합니다. 하지만 코드를 읽을 때는 그럴 필요가 없습니다. 여러 번에 나눠서(in passes) 읽으면 됩니다.
위키에서도 정확히 똑같습니다. 위키백과보다 제 위키에서 더 그렇습니다. 위키백과는 역사에 관한 것이 많아 굳이 날짜를 찾아볼 필요는 없지만, 제 위키에서 다루는 프로그래밍은 실무자들 사이에서 매우 복잡한 경험이라 자기가 하는 일을 말할 새로운 단어가 필요했습니다. 사람들은 새 단어를, 늘 어구(phrase) 형태로 정의했습니다. 자기가 중요하게 여기는 것을 담은 어구를 정의하고, 그 어구에 대한 짧은 토론이 붙고, 그러면 그 어구가 어휘(vocabulary)로 편입됩니다. 그래서 그 사이트에서 글을 쓰는 사람들에게는 대화에 관한 어휘가 생기고, 한동안 읽어온 사람은 그런 단어들을 그냥 지나쳐 읽습니다.
예를 들어 YAGNI(You Aren't Going To Need It, "당신은 그게 필요하지 않을 것이다") 가 있습니다. 다음 프로그래머를 위해 기능을 미리 넣지 말라는 주장이죠. 오래 논쟁된 이야기라, 글을 읽다가 "잊지 마, 어차피 필요 없을 거야…"라는 링크가 나와도 아무도 클릭하지 않습니다. 이미 논의된 것이고 그 단어는 어휘 안에 있으니까요.
다만 새로 온 사람은 다릅니다. "이게 무슨 뜻이지? 필요 없을 거라니? 이 사람은 설계에 반대하는 건가?" 하고 그 링크를 클릭해 그 역사를 가져갑니다.
만약 링크를 클릭했더니 "당신은 레벨 2 마스터가 아니므로 알려주지 않겠다"고 한다면 — 그러면 영원히 레벨 2 마스터가 되지 못할 사람만 잔뜩 생길 뿐입니다.
JG: 목표는 가능한 한 많은 사람이, 특히 이름 없이 들어오는 사람들이 — 이제 인터넷에서 온갖 곳으로부터 이 새로운 세계로 들어오는 사람들이 — 레벨 2 위저드가 되는 경로를 갖게 하는 것이겠죠. 저기 위저드들이 있고, 나도 되고 싶은데, 어떻게 하면 되는가.
참여의 기울기를 어떻게 만들 것인가
JG: 위키백과 환경에서는 수십만~수백만 명의 기여가 있지만, 꾸준한 기여 패턴은 아마 수천 명 수준일 겁니다. 일부는 아주 많이 하고, 나머지는 잠깐 들렀다 나가며 소수의 문서에만 손댑니다. 프로그래밍 분야에서는 가능한 한 많은 사람이 어느 정도라도 참여하고 기울기를 따라 올라가길 바랍니다. 어떤 방향이 좋을까요? 지금 도구는 갖춰져 있나요?
WC: 어려운 질문입니다. 제 인생 대부분은 이미 스스로를 전문가라고 여기지만, 복도 저쪽의 존경하는 그 사람만큼 생산성이나 창의성이 나오지 않는다고 느끼는 사람들과 함께 보냈습니다. 문제는 "저 사람은 대체 어떻게 저렇게 잘하게 됐는가"입니다. 자기 칸막이 안에서 조용히 앉아 "나는 재능이 없나, 나는 부족한가" 생각하게 되죠.
실제로 벌어진 일은 단순합니다. 그 사람은 지금 당신이 하는 것과 같은 프로그램을 당신보다 더 많이 써봤다는 것. 그러니 답도 단순합니다. 지금 하는 것을 끝내는 것입니다. 그러면 그 구루에 한 발짝 가까워집니다.
다만 "작업은 했지만 이해는 못 했다"로는 부족합니다. 작업하고 이해해야 합니다. 모든 결정의 결과를 봐야 합니다. 좋았는지 나빴는지, 고객 A에게 유리했는지 고객 B에게 유리했는지. 그 공간의 풍부함은 너무나 방대해서 인간의 정신이라야 파악할 수 있습니다. 교과서에 넣을 수 있는 공식 같은 게 아닙니다. 복잡한 컴퓨터 프로그램, 그리고 복잡한 공동체와 상호작용하는 경험의 풍부함을 보는 일은 모두가 할 수 있는 만큼 많이 해야 한다고 생각합니다.
오늘 누군가와 이야기하면서 안타깝다고 한 게 있는데 — 우리 PC가 프로그래밍 언어 없이 출하된다는 사실입니다. 모든 컴퓨터는 출하 상태 그대로 프로그래밍 가능해야 합니다. 지나치게 복잡한 방식이 아니길 바라지만, 어쨌든 그냥 프로그래밍입니다. 컴퓨터가 있으면 그것을 프로그래밍할 수 있어야 마땅합니다. 사람들은 "프로그래밍은 지루한데 왜 하고 싶겠느냐"고 하는데, 제가 바꾸고 싶은 게 바로 그겁니다. 지루해서는 안 됩니다.
요즘 무엇으로 프로그래밍하나
JG: 요즘은 무엇으로 씁니까?
WC: 자바(Java) 입니다. 스몰토크를 사랑하지만, 스몰토크로 할 수 있는 건 자바로 합니다. 자바로 프로그래밍하지 않을 때는 — 고백하자면 펄(Perl) 에 중독돼 있습니다. 펄을 많이 씁니다.
저는 15년간 객체 광신자(object zealot) 였습니다. 아무 객체나 받아들이지 않고 스몰토크 객체만 원했습니다. 그것만이 유일하게 순수한 객체라고 봤으니까요. 제 공간의 모든 것이 아름다운 구조로 잘 나뉜 객체들이었습니다. 훌륭한 환경이었고 큰 힘을 주었습니다.
그러다 그 흐름이 시들해지고 인터넷이 왔습니다. 인터넷을 보면서 저는 "와, 인터넷은 텍스트를 선호하는구나. 객체를 주고받고 싶어 하지 않고 텍스트를 주고받고 싶어 하는구나"라고 생각했습니다. 그리고 "여기 유닉스 박스가 있는데, 이건 텍스트 기계구나. 온통 텍스트투성이구나" 싶었습니다. 저는 그것을 이미 떠나왔다고 생각했는데, 다시 평가해야 했습니다. 낡은 방식이라고 여겼던 것이 바로 이것이었습니다.
최초의 위키는 펄로 쓰였다
WC: 객체 대신 제가 가진 건 계층적 파일 시스템 속의 텍스트였습니다. 그러면 메서드 대신 가진 건 무엇인가를 물어야 했죠. 1995년이었고 펄(Perl)이 한창 건강할 때라 펄로 프로그래밍하기 시작했는데, 꽤 괜찮았습니다. APL에 만족했던 사람이니 — 흔히 "라인 노이즈처럼 보인다"고 하죠, 실제로 그랬지만 저는 파싱할 수 있었습니다.
"펄로 프로그래밍했다"고 말하지만 실제로 한 일은 이렇습니다. 작동하는 파일 시스템, 작동하는 웹 서버, 작동하는 CGI 메커니즘, 작동하는 브라우저 — 각각 방대한 역사를 지닌 네 개의 거대한 조각이 있었습니다. 제가 진짜로 한 일은 그것들을 뜯어보는 것이었습니다. 브라우저는 무엇을 브라우징하고 싶어 하는가, 웹 서버는 무엇을 서빙하고 싶어 하는가, 파일 시스템은 무엇을 저장하고 싶어 하는가, 그리고 펄은 이 모두를 어떻게 붙들고 싶어 하는가. 펄은 그 일을 아주 잘했고, 저는 중독됐습니다.
최초의 위키는 펄로 작성됐습니다. 지금은 거의 모든 언어로 쓰였죠. '가장 작은 위키' 대회 우승작은 파이썬 다섯 줄이었던 걸로 압니다. 파이썬 열성분들께 실례가 됐다면, 파이썬도 대단하다는 걸 인정하겠습니다.
펄을 보고 오픈소스를 이해하다
WC: 펄을 보면서 뭔가 달라졌습니다. 저는 리처드 스톨먼(Richard Stallman) 초창기부터 오픈소스를 알고 있었지만 "흥미롭긴 한데 나는 필요한 소프트웨어를 다 갖고 있고 값도 이미 치렀다"며 신경 쓰지 않았습니다. 그런데 펄이 얼마나 잘 조립돼 있는지, 얼마나 빨리 컴파일되고 얼마나 빠르며 버그가 얼마나 적은지 보고 놀랐습니다. "이걸 누가 썼지? 어떤 공동체가 이걸 썼지?" 그때 오픈소스가 제가 보기에 진정으로 창조적인 무언가를 이뤘다는 걸 깨달았습니다.
유닉스가 잘 설계됐다는 건 알았고 디바이스 드라이버 몇 개를 만드는 게 큰일이라는 것도 알았지만, 그건 좋은 엔지니어링이었습니다. 반면 언어를 만들고 공동체 전체가 그 뒤를 받쳐 펄 4에서 펄 5로 나아가는 것 — 좋아하든 아니든 내부적으로 대단히 자기 일관적입니다. 이건 훌륭한 작업물이라고 생각했습니다. 저는 긴밀하게 상호작용하는 작은 팀을 사랑했는데, 이건 인터넷 위에서 긴밀하게 상호작용하는 거대한 팀이었습니다. 그게 머릿속 한켠에 있었고, 위키를 밀고 나가자고 마음먹는 데 도움이 됐습니다.
혼동이 늘 있었는데, 저는 위키를 만들 때 오픈소스 신봉자가 아니었습니다. 하지만 위키는 열려 있었고 오픈소스였습니다. 다만 내주는 일을 꽤 서투르게 했습니다. 오늘도 어떤 분에게 "책에는 이렇게 적혀 있는데…" 하는 이메일을 받았습니다. 제대로 된 라이선스를 붙이지 않았기 때문입니다. 라이선스들을 훑어봤지만 라이선스 읽기만큼 하기 싫은 게 없어서, 대충 영어로 몇 줄 적어놨습니다. 좋은 생각이 아니었습니다. 요즘 세상에서는 라이선스를 읽고 이해하고 무엇을 원하는지 정하십시오.
팁을 하나 드리면, 라이선스를 읽다 보면 비싼 변호사의 도움을 받고 싶어집니다. 하지만 걱정 마세요 — 그냥 라이선스를 쓰십시오. 소프트웨어가 성공하면 비싼 변호사들이 알아서 찾아와 이야기를 나눠줄 겁니다.
JG: 젊은 프로그래머에게 하는 조언과 비슷하게 들리네요. 일단 쓰기 시작하라, 그러면 배우는 게 놀랍고, 그들이 알아서 찾아온다.
청중 질의응답
Q1. 펄의 유지보수성
Q (도미닉): 펄에 만족한다고 하셨는데, 직접 쓰지 않은 펄 코드는 해독하기 매우 어렵지 않나요? 유지보수성 측면에서는 어떻게 보십니까?
WC: 저는 펄을 워낙 많이 써서 제 옛 코드를 읽을 수 있는 스타일을 발전시켰습니다. 예전에 아이콘(Icon)이라는 아주 영리한 언어의 팬이었는데, 변수 이름을 신중히 고르고 기호도 많이 쓰지 않았는데도 옛 프로그램을 읽을 수 없었습니다. 아이콘의 평가 의미론(evaluator semantics) 때문에 한 번에 너무 많은 것을 머리에 담아야 했거든요. 반면 펄은 꽤 직설적입니다. 강력하면서도 직설적이라, 잡음처럼 보이는 기호들을 지나쳐 읽는 법을 익히고 나면 계속 굴려갈 수 있습니다.
다만 사실입니다 — 리스프에 대해 제가 했던 것과 같은 비판인데 — 펄을 기교적으로 쓰는 스타일을 택하면 제가 결코 쓰지 않았을 모양의 코드가 나오고, 저는 아마 읽지 않을 겁니다. "저건 모르겠으니 넘어가자" 하겠죠. 그래서 팀이 있는 상업적·공동체적 환경에서 펄을 쓰려면 아주 엄격한 코딩 표준이 있어야 하고, 아니면 자바 같은 다른 것을 고려하는 게 낫습니다.
JG: 루비는 보고 계신가요?
WC: 루비도 훌륭합니다. 루비에도 빠져들 수 있는 작은 웜홀들이 있긴 하지만, 그걸 그렇게까지 쓰는 전통은 아직 없는지도 모르죠. 제 머릿속에서 루비, 파이썬, 펄, 심지어 PHP는 공동체에서 나와 공동체에 봉사하는 언어들의 집합입니다. 가족 유사성이 많습니다 — 패턴 매칭 사용, 해시 테이블 같은 것들. 가족 간 차이도 있죠 — "중괄호를 쓰기 싫으니 탭으로 하겠다" 같은 식으로 각 공community가 한두 가지 다른 점을 골라 가진 셈입니다. 저는 그런 걸 좋아합니다. 그러니 네, 루비도 대단합니다.
(Tcl 언급이 나오자) Tcl을 빠뜨렸군요. 사실 Tcl이야말로 사람들에게 그렇게 할 수 있다는 것을 가르쳐준 언어라고 생각합니다.
APL 코드는 며칠이나 읽을 수 있나
JG: 오랜 APL 프로그래머인 존 길모어(John Gilmore)에게 도전한 적이 있습니다. 길모어는 거의 어셈블러처럼 보이는 코드를 쓰는 경향이 있죠. "당신이 쓴 코드를 보여줄 텐데, 며칠까지 이해할 수 있습니까?" 하루? APL 코드는 하루 지나면 아웃이었습니다. 이틀도 안 됐죠. 한 달 뒤에도 돌아가 읽을 수 있는 게 있었냐고 물었더니 없었습니다. 그래도 그 시절 연습은 기억납니다 — 알려진 통계학 전부를 한 페이지에, APL로.
WC: APL에는 흥미로운 현상이 있었습니다. 문제를 풀다가 3차원 배열을 처리하고 있는데 막히면 "그냥 차원 하나 더 붙이자" 해서 4차원이 됩니다. 또 문제가 생기면 뭔가를 더 얹어 5차원이 됩니다. 그러면 읽을 수가 없습니다. 머릿속에 그려지지 않으니까요. 그러다 5개의 외적(outer product) 을 만들고 — (JG: 해보셨군요) — 거듭제곱 연산자 하나를 쓰면 전부 무너져 내리듯 정리됩니다. 너무나 잘 맞아떨어지고 눈부십니다. 그리고 20분 뒤엔 무슨 소린지 모르게 됩니다.
Q2. 중립적 글쓰기 안내서가 무엇인가
Q: 열정을 품은 주제에서 감정 실린 언어를 쓰게 된다고 하셨고, 더 중립적으로 쓰는 안내서를 언급하셨는데 그게 무엇입니까?
WC: 위키백과의 저자 안내(guide to authors) 섹션입니다. 신규 저자인 경우, 해당 분야 전문가인 경우, 분쟁의 자원 조정자인 경우 등으로 잘 나눠 놓았습니다. 페이지 이름은 기억나지 않지만 위키백과 안에서 찾기 어렵지 않았습니다. 위키백과에 기고할 사람들을 위해 쓰인 글인데, 조언의 질에서 그들의 경험이 뚝뚝 묻어납니다. 매일 새로운 경험을 쌓는 거대한 공동체이고 글쓰기에 익숙한 사람들이라 아주 좋습니다.
Q3. 크리스토퍼 알렉산더의 책들
Q: 초기에 영향을 받았다는 패턴 관련 책이 무엇이었나요?
JG: 저자는 크리스토퍼 알렉산더이고 시리즈로 여러 권을 냈습니다. 버클리의 건축가였고 옥스퍼드 대학 출판부에서 세 권이 나왔죠. 하나는 오리건에 관한 것입니다. 아름다운 책들이고 안에 위계가 있습니다. 건물을 잘 지으려면 먼저 "방에 무엇이 있었으면 하는가"로 갑니다. 아마 여러 방향에서 들어오는 빛이겠죠. 한쪽에만 창이 있는 방은 어딘가 아쉽습니다. 그런 패턴들이 있고, 알렉산더는 버클리의 아름답게 설계된 옛 주택들을 둘러보며 아이들이 숨기 좋아하는 작은 구석(nook) 을 찾아냅니다. 그것도 하나의 패턴입니다 — 늘 아이의 은신처가 되는 자리가 있다는 것. 위험한 책입니다. 읽고 나면 건물을 예전처럼 볼 수 없게 되니까요. 제목은 『패턴 랭귀지(A Pattern Language)』 입니다. 이후 『질서의 본질(The Nature of Order)』 시리즈도 다시 시작했는데 일부는 수학적이고 일부는 철학적입니다.
WC: 저에게 가장 도움이 된 책은 『영원의 건축(The Timeless Way of Building)』 이었습니다. 패턴 랭귀지 내용도 조금 있지만, 주로 그가 왜 『패턴 랭귀지』를 그런 방식으로 썼는지를 설명합니다. 그게 아주 유용했습니다. 선(禪) 철학 같은 대목이 꽤 있는데, 그쪽에 관심 없으면 그냥 지나쳐 읽으면서 "이 사람 말투가 그렇구나" 하면 됩니다.
Q4. 위키의 상업화, 그리고 애플리케이션 협업 도구로서의 위키
Q: 두 가지 질문입니다. 첫째, 기업들이 위키를 상업화하는 것을 어떻게 보십니까? 둘째, 스타트업이나 기업이 위키를 단지 텍스트 협업이 아니라 실제로 애플리케이션을 만들고 협업하는 데 쓰는 것에 대해서는요?
WC: 좋다고 생각합니다. 위키 위에 사업을 세우는 회사가 하는 일은 위키를 발명하는 게 아닙니다. 그건 제가 했으니까요. 그들이 하는 일은 제가 무시해온 고객층에게 이것을 가져가는 것입니다. 어떤 고객군을 이해하고 "당신이 이 위키라는 것의 가치를 얻도록 돕겠다"고 나서는 것 — 그게 바로 회사가 존재하는 이유입니다.
직감을 갖고 그것을 끝까지 따라가 인터넷에 발표하고, 함께 실험할 천 명을 찾아내는 창의성과 독창성 — 그게 인터넷의 존재 이유입니다. 그 능력이 우리에게서 빼앗기지 않기를 기도할 뿐입니다. 그 위에서 특정 고객층을 위해 가치를 만들어내는 것은 전적으로 적절합니다.
다만 오픈소스 대 — 뭐라고 부를까요 — 은닉된 소스(concealed source) 를 연구하면서 이런 생각을 합니다. 저는 이해를 위해 소스를 읽는 것을 매우 중시하기 때문에, 재사용 라이선스는 주지 않되 공개된 소스가 더 많아지길 바랍니다. "이해해도 좋다, 다만 이건 우리가 만들었고 우리가 판매한다"는 식으로요. 기계어로 암호화해서 우리 의지를 강제하지는 말자는 겁니다.
소스 코드와 기계어가 따로 있다는 사실 자체가, 프로그램 전체를 한 번에 담을 만큼 크지 않았던 — 이 건물 1층에 있는 — 그 시대 기계들이 낳은 거의 우연에 가까운 일이라고 생각합니다. 그리고 그 소스 코드의 역사에는 프로그래머가 프로그래밍이 어떻게 이뤄지는지 볼 기회를 박탈해온 역사가 상당히 들어 있습니다. 재사용을 허용할 의도가 전혀 없더라도 더 많은 소스를 공개해야 합니다. 어느 정도 재사용이 일어난들 어떻습니까. 업계를 계속 굴러가게 하려면 그렇게 합시다. 인터페이스를 여십시오.
이메일 vs 토론 그룹 vs 위키
JG: 이메일이라는 도구, 토론 그룹이라는 도구, 위키라는 도구가 각각 다른 목적에 봉사한다고 이야기하셨죠.
WC: 이메일은 너무 성공한 나머지 남용되고 있습니다. 너무 많은 것이 이메일에 얹혔고, 그래서 우리는 그냥 과부하 상태입니다.
위키에서 처음부터 제가 정말로 원했던 것 하나는 일주일 자리를 비웠다 돌아와도 길을 잃지 않는 것이었습니다. 앞서 사이트에 새로 온 사람이 대화를 이어받을 수 있어야 한다고 했는데, 그 사람이 휴가에서 돌아온 저 자신일 수도 있습니다. 무슨 일이 벌어지는지 이어받을 수 있어야 하고, 뒤처졌다고 느끼고 싶지 않습니다.
이메일은 그렇지 않습니다. 돌아오면 받은편지함에 천 통이 있고, 하나하나 주의를 기울이는 게 아니라 그저 헤치고 나가려 애쓸 뿐입니다. 순서가 정해져 있기 때문입니다. 우리는 사람들이 읽고 싶어 하는 순서가 곧 쓰인 순서라고 가정하는데, 전혀 그렇지 않습니다. 읽고 싶은 순서는 자기 경험에 맞는 순서입니다. "이건 지금 이해할 수 있겠다, 이게 딱 맞으니 이걸 읽자." 즉 사람마다 다른 순서가 필요합니다.
JG: 그렇다면 위키로 시작하는 작은 회사들은 각기 어떤 고객군이나 문제 유형에 맞는 순서를 고안하고 있는 셈이군요. 남들이 아직 생각해내지 못한 순서를요.
WC: 아주 통찰력 있는 생각이고, 사실이길 바랍니다. 저는 수많은 회사가 생기는 걸 보고 싶습니다.
JG: 거기에 거대 기업의 역할은 별로 없겠군요. 거대 기업은 모두가 같은 것을 하게 만든다는 발상 위에 서 있으니까요.
WC: 그렇습니다.
Q5. 학교에서의 위키 — 관리자에서 학부모, 그리고 교실로
Q (모리스 길, 마운틴뷰 휘즈먼 학군): 저희는 유치원부터 8학년까지 담당합니다. 6개월 전 소셜텍스트(Social Text)의 한 학부모 킴 피어가 연락해, 근무 시간 일부를 무보수로 학군에 쓰며 위키가 무엇인지 설명해주겠다고 했습니다. 그때 저는 위키가 뭔지 전혀 몰랐고, 방금 말씀하신 이메일 과부하로 고생하고 있었습니다. 그 회사의 관대함 덕에 위키를 도입할 수 있었고, 경영진과 학교 관리자부터 시작했습니다. 기술 수준이 높지 않은데도 프로젝트와 콘텐츠 관리가 금세 가능해졌습니다. 오늘 함께 온 주디 크레이츠 박사는 마운틴뷰 카스트로 초등학교에서 학부모들과의 토론에 위키를 쓰고 있습니다.
이제 교실로 확대할 준비가 됐습니다. 학생들이 교실에서 위키를 어떻게 쓸 수 있을지, 교사가 교수법과 학습 개선에 어떻게 쓸 수 있을지 의견을 듣고 싶습니다.
JG: 답을 듣기 전에 — 가장 어려운 대상부터 시작하셨군요. 관리자와 교직원, 늘 "안 된다"고 말할 사람들. 그리고 그게 통했고요. 아이들은 훨씬 빨리 빠져들 겁니다. 학부모 쪽 경험은 어땠습니까?
Q: 학부모는 막 시작했습니다. 여러 프로그램을 한 학교로 통합하는 중이라 2주 전에 교육을 시작했습니다. 마운틴뷰에는 기술에 밝은 학부모가 많아서 금방 이해합니다. 소통이 아주 잘될 것 같습니다. 학생들도 마찬가지로 잘 받아들일 것 같고요. 학부모에게는 우리가 이것을 어떻게 쓰고 있는지 무엇을 말해야 하고, 교사에게는 이 도구를 어떻게 쓰고 어떻게 더 잘 협업해 더 강력한 학습에 이르는지 무엇을 말해야 할까요?
WC: 반가운 소식입니다. 전 세계 학교 시스템이 이것을 조금씩 시도하고 있다는 걸 압니다. 워낙 많은 아이가 위키백과를 근거로 숙제를 내니까요. 그리고 행정 업무 — 교사들은 이미 할 일이 너무 많습니다. 그 짐을 덜어주고 싶습니다. 위키가 그 부담을 10%만 줄여준대도 그보다 자랑스러운 일은 상상하기 어렵습니다. 지치지 않은, 영감에 찬 교사가 아이들 앞에 서 있는 것만 한 게 없으니까요.
교육이나 학습 기회를 이야기할 때, 저는 위키가 애초에 그런 것이 되도록 의도했습니다.
학교에서의 위키 (이어서)
WC: 저는 위키를 전문가들을 위한 협업 학습 환경 — 결코 배움을 멈추지 않을 사람들을 위한 배움의 장소 — 으로 의도했습니다. 다른 사람에게서 배우는 곳이죠.
제 위키에서 익스트림 프로그래밍(XP) 이야기를 했을 때 많은 사람이 "말도 안 된다, 그게 될 리 없다"고 했습니다. 그런데 토론하고 두들겨 맞다 보니 어느 순간 사람들이 "알 것 같다, 한번 해보겠다"고 했습니다. 가서 시도했고, 꽤 잘 됐고, 돌아와 보고했습니다. 쟁점을 찾고 → 실험해보고 → 돌아와 보고하는 이 순환 — 이게 과학이 하는 일입니다.
초등학교에서도 그것을 촉발할 수 있다면, 아니면 우선 고등학교, 그다음 중학교에서라도 할 수 있다면 좋겠습니다. 다만 학년이 내려갈수록 방법에 대해서는 제가 아는 게 줄어듭니다. 저는 다 큰 사람들이 이걸 익히게 하려 애써온 사람이니까요.
그래도 이건 있어야 한다고 봅니다. 어떤 사람들이 학교 신문에 글 쓰는 걸 사랑하게 되듯이 — 다만 지면은 한정돼 있죠 — 핵심은 쓰면서 알아내는 것(finding out in writing) 입니다. 그리고 얼마나 잘 쓰였는지가 아니라 얼마나 잘 읽히는지로 판단하는 것입니다. 선생님이 어떻게 생각했는지가 아니라 몇 명의 아이가 읽었는지로 평가하는 것이죠. 아이들이 읽고 싶어 하는 방식으로 쓸 수 있다면 — 좀 지저분한 말장난을 쓴 덕분이든 뭐든 — 그 깨달음은 교육의 심장에 아주 깊이 놓여 있다고 생각합니다. 어떻게 되는지 꼭 알려주세요.
JG: '지저분한 말장난'이라는 표현이 걸리는데, 아이들을 보면 늘 인상적인 게 있습니다. 2학년에 머무는 농담이 있습니다. 아이들은 농담들을 흘려보내는데, 농담은 각 학년에 딱 고정돼 있습니다. 그러니 농담의 지형, 교실 전체를 뒤집어 놓는 것들을 탐색하게 되죠. 아이들 사이에는 그들을 사로잡는 어구와 시와 관찰이 있고, 맞히면 알게 될 겁니다 — 무엇이 그들을 움직이고 기여하게 만드는지.
익명성 문제도 있습니다. 수줍은 아이는 익명 기여자일 때 더 안전하다고 느낄까요? "내일까지 모두 뭔가 해야 한다"고 말할 수는 있지만, 위키의 어떤 구역은 완전히 익명이고 다른 구역은 완전히 실명이어야 할까요?
WC: 전부 어려운 질문입니다. 소셜텍스트가 위키를 깊이 이해하고 있으니, 어떻게 되어가는지 주의 깊게 보고, 어려운 질문을 주저 없이 그들에게 되던지십시오. 그 방면에서 진짜로 발명해낼 역량이 있는 사람들입니다.
이 질문에 시간을 많이 쓰는 이유는 그만큼 도발적이기 때문인데, 한 가지 생각나는 게 있습니다. LA 타임스가 위키를 올렸다가 실패했습니다. "될지 모르겠지만 일단 올려보자"고 했고, 안 됐죠. 그러니 그 실수에 빠지지 마십시오. "올려놓고 애들이 뭘 하는지 보자"고 하면 실망하게 됩니다. 공동체의 구축은 반드시 조율(orchestrate) 해야 합니다. 순서대로 도입하고, 지원을 충분히 제공해야 합니다.
정말 중요한 것 하나 — 언젠가는 당신을 겁먹게 하는 글이 올라올 겁니다. 살해 협박 같은 건 아니길 바라지만, 학교에서는 별별 일이 생길 수 있고 어떤 학부모는 폭발할 겁니다. 그래서 해야 할 일은 공동체 규범을 학부모·교사·학생과 함께 만드는 것입니다. 최선을 기대하되 실망하지 않고, 그러면서도 최근 바뀐 글(recent changes) 을 계속 확인해서 시스템을 시험해보고 싶어 하는 그 한 아이가 최대한 빨리 시험을 그만두게 하는 것. 그리고 그 일을 하는 건 공동체이지 위키 기술이 아닙니다.
JG: 마지막 관찰 하나. 마운틴뷰 학군은 아니었지만 4~5년 전 이 근방에서 있었던 일입니다. 위키 메커니즘은 없었고 이메일 교환 정도였는데, 사회경제적 배경이 아주 다른 학교의 같은 나이 아이들이 글을 주고받았습니다. 그런데 샌프란시스코에서 야구에 대해 가장 해박한 아이가 흑인 여학생이었습니다. 백인이 많은 학교의 아이들과 흑인 아이들이 만났을 때, 서로에 대해 갖고 있던 전제들이 산산조각 났습니다. 정말로 눈이 트이는 경험이었습니다.
컴퓨터 쪽 '유유상종(birds of a feather)' 모임도 마찬가지죠. 방에 들어가면 그동안 소통해온 그 사람이 있는데, 전혀 다른 모습을 상상하고 있었던 겁니다. 하지만 그런 소통 형식을 거쳤기 때문에 지울 수 없는 유대가 생깁니다. 그리고 사람이 어떠하다는 다른 모든 관념이 도전받습니다. 그러니 당신이 다루고 있는 건 아주 강력한 것입니다.
WC: 그러니 우리는 그 생각이 좋다고 말할 수 있겠군요. 훌륭한 아이디어입니다. 해보십시오.
Q6. 위키백과의 다국어는 어떻게 굴러가나
Q (허버트 캐너): 위키의 목표 중 하나가 아주 많은 언어로 문서를 갖는 것이라고 하셨는데, 그걸 어떻게 하고 있는지 궁금합니다.
WC: 그건 위키백과의 목표였고 저는 그 점을 존경합니다. 제가 세운 목표는 아니었고, 제 위키에서는 영어의 압제가 지배합니다.
위키백과에서는 처음부터 그 목표가 있었던 것 같습니다. 왜 그렇게 정했는지는 모르지만 방식은 이렇습니다. 특정 언어로 위키를 운영하려는 사람에게 인프라를 제공합니다. 태평양의 어느 섬에서 사라져가는 언어를 쓰는데 백과사전 문서를 정말로 쓰고 싶은 사람이 50명 있다면, 위키를 만들어주고 전체에 연결해 줍니다. 그러면 해보는 겁니다. 문서가 200개, 500개, 1,000개인 언어가 아주 많고, 상당수는 다른 언어 문서를 희귀 언어로 번역한 것일 겁니다.
반면 공동체가 워낙 강하게 붙어서 자기만의 궤적으로 뻗어나가는 언어도 수십 개, 아마 20~30개쯤 됩니다. 예컨대 독일어판이 컴퓨터과학 분야에서는 영어판보다 훨씬 잘 다룬다고 들었습니다. 그러니 문서 대 문서 번역의 문제가 아니라, 아주 많은 언어에서 사람들이 각자 하고 있다는 뜻입니다.
핵심은 인프라가 동일하다는 점입니다. 프랑스어판을 편집할 줄 알면 독일어판도 편집할 줄 압니다. "이 문서는 독일어로도 있습니다"라고 말하기 쉽습니다. 그래서 문서를 보면 여백에 이 문서가 쓰인 다른 언어 10~20개의 목록이 보입니다.
안타깝게도 저는 영어만 하지만, 여러 언어를 — 특히 희귀한 언어를 — 읽는 사람들이 양쪽 언어를 오가며 읽고, 서로 어긋나면 언어를 초월한 중립적 관점에서 그 불일치를 해소하는 습관을 갖길 바랍니다. 언어는 문화와 결부돼 있고, 한 문화에 중립적인 것이 다른 문화에는 편향적입니다. 그러니 중립성이라는 목표는 불가능해 보입니다 — 다만 그것이 성공하길 바라는 공동체가 있다는 점만은 예외입니다. 저는 그것이 오랜만에 떠올릴 수 있는 세계 평화를 위한 가장 강력한 힘이라고 생각합니다.
JG: 지미 웨일스(Jimmy Wales) 쪽에서 위계를 세워놨습니다. 한 언어에서 문서 10만 개에 도달해야 비로소 '백과사전'으로 칩니다. 순위 페이지가 있는데 흥미롭습니다. 현재 위키백과가 있는 언어가 약 120개입니다.
저는 예컨대 키냐르완다(Kinyarwanda) 에 관심이 있습니다. 아프리카에는 자기 언어를 쓰면 매를 맞고 영어나 프랑스어를 써야 했던 나라들이 있습니다. 르완다에서는 모두가 키냐르완다를 씁니다. 그래서 제가 말했습니다 — 약 2,500만 명이 쓰는 키냐르완다를 상위 10~15위 언어 근처까지 도약시키려면, 모든 아이에게 자기 마을이나 가족에 대해 쓰게 하십시오. 그러면 순식간에 수천, 어쩌면 1만 개의 문서가 생깁니다. 영어·프랑스어·독일어 수준까지는 아니어도 한 단계에 도달합니다. 중국어판은 그야말로 로켓처럼 올라가고 있습니다. 하루 제출량을 보십시오.
그런데 두 번째, 더 미묘한 문제가 있습니다. 여러 언어를 하는 사람은 압니다. 저는 영어 원어민이지만 프랑스에서 오래 지냈습니다. 프랑스어 문서를 읽고 나서 영어 문서를 읽으면 더 풍부하고 뉘앙스를 더 잘 이해합니다. 그리고 그것이 다시 프랑스어 문서를 더 잘 이해하게 해줍니다. 그 왕복이 모두를 풍요롭게 합니다.
언어학자들의 예측대로 전 세계 6,000개 언어가 10~15년 안에 3,000개로 줄어들고 있습니다. 할머니들이 세상을 떠나면서 언어를 잃고 있습니다. 그러니 위키백과에 지식과 문화를 담아두는 일은 근본적으로 중요합니다.
WC: 한 가지 덧붙이면, 이 많은 것이 가능한 이유는 위키백과 텍스트가 재사용 가능하도록 미리 라이선스되어 있기 때문입니다. 지금 이 순간에도 여러분은 그것을 가져다 복사하고 다른 무언가를 만들 권리를 이미 갖고 있습니다. 크리에이티브 커먼즈였는지 다른 것이었는지 정확히는 기억나지 않지만, 어쨌든 라이선스가 그것을 허용합니다. 즉 여러분이 구사하는 모든 언어의 자원을 끌어다 희귀 언어로 가져올 수 있다는 뜻이고, 그것이야말로 세상에 대한 기여입니다.
Q7. 시맨틱 위키와 온톨로지
Q (피터, IM3): 저희는 위키를 중요한 축으로 하는 협업 작업 환경을 호스팅하며 연방정부와 학교 등을 지원합니다. 또 온토로그(Ontolog) 라는 커뮤니티를 공동 운영하며 온톨로지를 주류로 끌어오려 하고 있습니다. 시맨틱 위키(semantic wiki) — 의미 계층을 더하는 방향 — 에 대해 어떻게 보십니까?
WC: 저는 저절로 떠오른 의미론(emergent semantics) 에 만족했습니다. 온톨로지를 공들여 설계했을 때 얻을 정밀도에는 못 미치더라도요. 그렇다고 제가 온톨로지에 반대한다는 뜻은 아닙니다. 저는 더 빠른 승리를 원했을 뿐입니다.
한 가지 사례가 있습니다. 중국어에는 버전이 워낙 많아서, 위키백과는 각 지역에서 쓰이는 방언으로 제대로 출력하려면 글자(glyph)가 말해주는 것보다 더 정밀하게 단어를 이해해야 한다는 걸 알아가고 있습니다. 그래서 정교한 사전 시스템, 번역 사전을 개발하고 있습니다. 어쩌면 위키백과는 아주 높은 품질의 번역 의미론을 밑에 깔고 쓰이게 될지도 모릅니다. 이는 온톨로지와 똑같지는 않지만 밀접한 관계가 있고, 그것을 정말 가치 있게 만드는 일은 1만 명이 매달려 있을 때 훨씬 상상하기 쉽습니다.
Q8. 공동체가 임계질량에 도달하지 못할 때
Q (라이자 루프): 저는 컴퓨팅과 교육의 역사에 관한 가상 박물관을 시작하려 합니다. 6개월 전 위키를 열어 컴퓨팅을 교육의 필수 요소로 만든 선구자들의 기여를 모으려 했는데, 공동체 구축에 성공하지 못하고 있습니다. 공동체를 길러내는 방법에 대해 조금 더 말씀해 주시겠습니까?
WC: 시간 관계상 짧게 답하면 — 임계질량(critical mass) 이라는 것이 분명히 있습니다. 충분히 많은 사람이 충분히 많은 글을 쓰도록 만들어야 합니다. 뇌물을 주든 뭘 하든 사람들을 올려놓아야 합니다. 그게 되지 않을 때, 기술에는 사람들이 그것을 하게 만드는 요소가 전혀 없습니다. 이건 정말로 사회적 현상입니다.
제가 늘 해온 방식은 그냥 위키를 하나 띄우고 셋 중 하나만 성공해도 만족하는 것이었습니다. 열심히 노력한다면 그 답이 마음에 들지 않을 수 있고, 한 주 동안 사람들이 한꺼번에 글을 쓰도록 유도하는 캠페인을 고안해 임계질량에 도달하게 만들 수도 있겠죠. 그러면 "이거 또 하자"는 말이 나올 겁니다.
Q9. 통제하려는 기업 안에서 위키를 어떻게 전도할 것인가
Q (리 커츠): 저는 노트카드(NoteCards) 를 만든 회사에서 일합니다. 하이퍼카드가 거기서 나왔다고 할 수 있으니 한 바퀴 돌아온 셈이네요. 이번 주에 기업 환경에서 위키를 전도하는 방법에 대해 발표합니다. 숙제를 대신 해달라는 질문인데 — 사람들에게 필요한 일을 할 만큼의 자유는 주되, 승인된 메시지만 나오도록 옥죄지는 않게 하려면 무엇을 말해야 할까요? 통제를 걱정하는 기업에서 사람들을 위키에서 충분히 자유롭게 놓아주는 것에 대해 어떤 조언을 하시겠습니까?
WC: 아주 좋은 질문입니다. 위키에는 분명 상향식(bottom-up), 사람에게 힘을 주는 유기적인 성격이 있습니다. 통제가 강한 조직, 혹은 통제가 강하진 않아도 더 통제해야 한다고 믿는 조직에서는 위키를 받아들이기 어렵습니다.
제가 보통 하는 일은 한번 해보겠다는 부서를 찾아내서 성공하게 두는 것입니다. 그러다 경영진이 당황할 정도로 회사 전체를 잠식하게 되죠. 하지만 아마 이 방법도 그만큼 좋습니다 — 들어가서 "지금 겪고 있는 관리상의 문제가 무엇이고, 지식 노동 환경에서 그 해법은 어떤 모습인지 이야기해 봅시다" 라고 하는 것. 물질 노동이 아닌 지식 노동으로 생각하게 만들고, 관리 관행이 어떻게 바뀌어야 하는지 생각하게 만들 수 있다면, 그때 "그럼 테스트 케이스를 하나 해보죠 — 사람들이 자기 글을 직접 편집하는 것"이라고 말할 수 있습니다.
참고로 노트카드는 그 아이디어를 받아 더 멀리 밀고 간 아름다운 사례라고 생각합니다. 제가 이해하기로 거기엔 의미론적 처리가 많이 들어 있었는데, 위키는 그것을 그냥 넘기거나 다른 사람들이 남긴 흔적에 의존합니다. 더그(엥겔바트)도 여기 계시니 하이퍼카드 얘기로 한번 논쟁해야겠군요.
블로그와 위키의 차이 — 인과의 방향
JG: 지금 이 순간 변호사들은 사람들이 쓰는 블로그 문제를 다뤄야 한다는 걸 알게 됐습니다. 이제 블로그가 뭔지 알고 논의합니다. 방송국은 어떻게 해야 하는가, 앵커가 블로그를 써야 하는가.
WC: 써야 합니다. 오늘 마침 사례가 있죠. Sun에서 블로그를 쓰던 사람이 지금 CEO가 됐고, 맥닐리는 블로그를 쓰지 않았으니 물러났습니다.
JG: 얼마 전 웨이드가 한 말이 있습니다. 블로그는 공동체입니다 — 블로그권(blogosphere)은 공동체에 의해 지탱되고, 그것이 곧 공동체입니다. 반면 위키는 하나의 작업물(work) 입니다. 위키는 존재합니다. 만들고 있는 것이 백과사전이라면 그것은 백과사전입니다. 물론 그 백과사전도 공동체에 의해 지탱되지만, 그 자체로 홀로 섭니다. 그 점을 기억하는 게 중요합니다.
인과가 서로 다른 방향으로 흐릅니다. 블로그의 경우 공동체가 먼저 있고 사람들이 블로그를 썼으며 그 결과가 문서입니다. 다른 경우엔 문서, 즉 위키가 공동체를 형성합니다.
조직 안에는 막 생겨나려는 공동체(nascent communities) 들이 있습니다. 지식을 나누고 소통하고 싶어 하는 사람들이죠. 이메일로는 안 됩니다. 조직이 원하는 것을 포착해주지 않으니까요. 블로그는 나름의 구조가 있지만, 이 다른 지형은 조직 내부에서 태동하는 공동체의 거품이 떠오르게 해줍니다. 거기서 창의성과 혁신이 나오고, 그것이 조직이 살아남게 하는 원천입니다.
마무리
데이브 앤더슨: 워드, 존, 정말 감사합니다. 매혹적이었습니다. 앉아서 생각했는데 — 세상에 이런 대화가 오갈 뿐 아니라 청중이 몰입해 앉아서 듣고, 게다가 말한 내용을 거의 다 이해하는 곳이 몇 군데나 될까요. 참고로 저는 리스프를 포기했습니다. 당신은 아직 리스프를 향해 가고 있을지 모르지만, 저는 은퇴하면서 포기했습니다. 골프만으로도 충분히 어렵습니다. 정말 훌륭했습니다. (박수)
English Transcript (원문)
YouTube 자동 생성 자막 원문. 화자 구분·문장부호가 없는 원자료이며, 위 번역의 파트 1~5에 그대로 대응한다.
Part 1
[Music] hi I'm Dave Anderson I'm uh one of the trustees the the museum um out of curiosity how many people are here for the first time wow new members to be we're always recruiting members uh you know me membership in the museum is not only about supporting a wonderful Institute but frankly it's also become a social institution I think these these events are an excellent example of what I like most about this Museum and that is yes we've captured history yes we've captured something that um is really I think going to be preserved forever and be seen as one of the great turning points in history but we also capture it every day and that's really what today is all about is history is just happening on the topic of wiks and we're going to get to see it really as it unfolds not just as it occurred so archaeologically you're here on an archaeological Expedition it just has a pretty short time frame before we uh before we launch into that and and by the way I will uh I will at the end of this ask you who aren't members to become members and ask those of you who are members to contribute even more heavily but be before we launch in one of the things that we want to do is get the people in this room to know each other uh a little bit better uh you know we've we've got a bunch of people who are famous and a bunch of people who are going to be famous in this room uh you know some that are famous tonight we have have one of our fellows with us Doug engelbart Doug you could I guess when you're really famous you don't even have to stand [Laughter] up but we have we have another gentleman who comes to every event uh is someone that I think everyone ought to get to know I get to know uh Don when he actually did some Consulting on the subject of computer security for me at amdall in 1978 um you know you we had no idea that the problems were going to get to be what they are today but in that time frame he was even the expert at that time so if you would a few minutes from uh Don Parker [Applause] thank you for the short introduction it's uh great to uh support the Computer History Museum and there are certainly great benefits and so I think they got an ordinary member up here to extol the uh virtues of uh Museum membership to begin with I think we can all agree Among Us uh there are members uh that we have really great Wine and Food [Applause] and uh the speaker series is certainly uh an attribute of this U Museum a great attribute and before the speakers come on we have a wonderful opportunity to um uh have good fellowship and conversation among all of us old geers as well as the young whipper snappers maybe you haven't heard that term for a while but it fits amid the the historical treasures and Relics and Exhibits that we have in the museum I'm looking forward actually to a new exhibit that I hope someday that the museum will have it's on the dark side of computing uh complete with Prison inmate mugs of Infamous uh computer criminals from Silicon Valley I think that'd be kind of neat this uh see this uh speaker series uh sponsored by Sun Labs is very important and it gives us an idea of what has really happened in the past uh 50 years and also of course with great wine from the Mountain Winery and great food along with that um and all of this for the ridiculously low price of membership that should encourage enourage us all to give even more than the basic membership fee and I think I mentioned the Good Wine and Food um but I look forward to tonight's program uh on the world according to Wiki I was um in fact reading the wiki history of Sudoku just this morning and uh I've become addicted to Sudoko unfortunately and be happy to discuss strategies with anyone else here who is uh addicted but I especially look forward to the program in June when uh my old friend Bob Price will be here to talk about his experience with uh Control Data Corporation 52 years ago uh Bob and I learned computer programming together at conver San Diego on the univ ER 1103 computer and we worked in octal which even today bothers me when I'm doing my income tax and I fall into the octal arithmetic but uh it also bothers me as well working on Sudoku uh because I have trouble with the numerals eight and nine well here's to a great staff at the Museum a great volunteer PE who work here under the wonderful direction of John tulle and Karen Tucker and of course with sun Labs sponsorship so keep up the good work good exhibits good Fellowship good speaker series and uh I think I did mention uh Wine and Food that's great thank you [Applause] and the primary benefit of membership is good wine and good food and camaraderie well tonight John Gage is going to essentially interview Ward Cunningham on the the topic of wikis now the reason this is happening is there was a sunf Founders panel that that quite a bit of preparation was done uh for uh some month some months ago John Gage would not shut up about using a Wiki to organize everything and put all of this together I mean it got to the point that finally Karen turned to him and said okay we'll do a session on wikis thus tonight history is sometimes made in some interesting ways uh um John by the way did you actually talk to the Press on the way in oh yes okay uh John being one of the founders of sun got to uh do a little do a little talk with the the Press uh because of of today's uh today's changes at Sun every every company moves on um should should be an interesting change uh in any event uh you know I I've got a list of things here that you know this is one of those things that embarrasses you a little bit gee maybe I haven't done enough in my life um he's on the Board of Trustees of the United States National Library of Medicine fmy Labs the mathematical Sciences Research Institute net day schools online I'm not going to continue uh this is a guy that is clearly engaged in uh our environment and really understands uh what's going on in this world and I think we'll do we'll do an excellent job of querying m Mr Cunningham as we go so Mr Gage now back Ward on the other hand has the most interesting title I have ever encountered that is he is director of committer community development of the eclipse Foundation now I can't say I've ever met a director of committer before for but I'm I'm sure I'm going to learn tonight exactly what that means having some idea of what wik are about I can actually imagine that might be quite important you think we'll we'll see um yeah he's done a a variety of very interesting things uh you know mostly focused around software and software development he co-founded a uh consultancy Cunningham and Cunningham served as the architect for Microsoft's patterns and practices group I believe the way he stated that was uh I put a bunch of things in motion I just didn't hang around to see them come to fruition I think he believes he's changed the organization forever probably a true fact uh director of R&D at Wyatt software principal engineer at tectronics and actually is very well known for his work in extreme programming which uh a number of you may may well be adherence to extreme programming in any event it was really the wiki wiki web that uh caused us to want to hear from Mr Cunningham tonight and Ward please come to the stage [Music] [Applause] [Music] we have power good and I'm War how do I sound you got to move the mic a little bit closer over maybe yeah it's getting folded under the yeah yeah it's good good and how do I sound now good good I like this I used to say the foundation of American telecommunications was the ability of every American Teenager to put alligator clips on those little phone Connections in every apartment building that was the beginning of the fire tap well it's delightful for me to realize I hope that stays that Doug engelbart is here because what we're going to talk about is what Doug's been talking about forever and this is going to be augmenting human intelligence by allowing lots of humans intelligences to come together in new ways which is what you've been working on forever and ever and ever how do you make a community commity of Minds allow them to find a field of expression how do you do this in some way that focuses their thought and so the tool they use changes the way they think and I we you and I were talking about small talk and how that captured you in a way of thinking about the methods and uh ideas that have been driving you in some sense but before we launch into all of that you spent the last hour or two with your son probing the Computer History Museum what did you see tell me what you thought oh my goodness well I got I got to see the back room you know and in the back room there's a lot more stuff and uh you of course it's a little scary when uh when uh when when when you can walk through a history museum and say yeah I program that and I program that and I program that and uh and and and my son's smiling so it wasn't too terrible but uh uh oh you know the the legacy is is is phenomenal and the thing that struck me when we went to into the back room was for every machine of every era you can see in the visible storage uh there's 10 more by different designers uh done for a different uh you know aspiration or hopes or whatever drives people to design computers like that but the the amount of human intellect that's been invested in uh making machines in the last 50 years is uh uh I actually you know was excited by it I thought you know no wonder I love the field and and and I love the machines of course I look came up in an a I grew up in an era where you know every new machine was a new idea you know you would you would look at the machine and you would try to figure out what the idea that it embodies that uh that we'd never seen before and and uh then as people got better at writing compilers then every every new idea was captured in a new language and so uh you know it just made sense to try to every single computer because that's how you learned what the ideas were that's where they uh that's where the ideas were and then you I I noticed your website you are an absolute Computer History Museum person you have a hypercard deck still sitting on your website oh yeah oh yeah I I invested in a lot of uh a lot of technology that uh that I can't run today and I guess that counts but in the hypercard story because I think the hypercard story goes back to what Doug has been working on forever you've been working on you added to what Apple did a link you added a button that created a link oh and and my experience with uh uh you know and gosh you know the that hypercard had this card metaphor and that's because the screen was about as big as an index card you know it's it's kind of hard to imagine that today with screen but uh uh the when hypercard came out it was the first hyper system that was polished that ran on a computer I owned and uh that running on a computer that you own is is something that's important because you know you're willing to invest effort into it but it had you know kind of cute graphics and animation and so forth and I played with this and tried to figure out what hypercard wanted to be you know I I wanted to understand what the idea was that it embodied and and uh you know certainly the graphics was part of it but there was something more so I decided Well let's see if I can build a database and because there was a database too I think and I wanted to make a database of something that was ragged and irregular so I thought well how about my pet theory that uh most engineers and I worked at tectronics at the time a very engineering focused company that most Engineers wouldn't attempt to do anything if they hadn't seen it work before there was this real sense of you know conservatism uh when you know your design is on the line so I set out to make a database that tracked all the ideas that had floated through our company and what projects they were done on and what Engineers had worked on them and How They Carried that forward now the funny thing is that once I did this people would come by my office and they'd ask for a demo they say hey Ward I understand you have this new hypercard thing that every everybody's talking about can you show me what it looks like so I'd show them a little graphics and some animation and they said well that's cute but what's it good for and I said well let me show you this little application I'm building and and uh they could browse around and it would see a description of the projects in the company maybe some they worked on and once they didn't and they'd always say well this isn't quite right that's not what happened here or that's not why they ran that project or that's not what that manager was trying to do and I'd say well just correct it and they say oh okay and they would correct the information in the car and they loved it you know this idea of moving around a space where you have a description of something that you care about and finding something that's not quite right and just having the freedom to correct it right then and there was magical and you know seeing that work well not only that the people wouldn't leave my desk right I did do one trick I have to talk about and that is is uh the way you would make a link in hypercard is you'd go to the card and you'd say make a link and then you'd take that back to where you wanted it to be so you could only go to a card if it already existed and you know I had this subject you know all of ideas at tectronics Forever that was much bigger than my ability I couldn't expect it to be complete so I didn't use that feature I use the search feature whenever you clicked on a word it did a search for it and if it didn't find it it just beeped but if it did find it it went to that card and if you pushed and held even if it didn't have that card It Go create it and so the effect was you'd click on a word and say beep don't know anything about that and you say well I know something about that and you'd push harder and the card would appear now that now how many people here have built a Wei or play around with Weis does this sound familiar is that exactly the mechanism I had to find something that that felt like that using the widgets that were available in the worldwide web in 1995 and what I ended up doing is saying well I'm not going to do this mouse still down trick well instead what I did is I said as I'm rendering the pages putting them up on the display I'll look up every word every word that could be a link and I'll either make it link to the page P or I'll make it linked to the edit page and that U on Wiki on Wikipedia it's red links they call it they they color red or blue depending upon whether it's going to go to a page or go to a edit page which is basically its way of saying okay you tell me you know I can't tell you you tell me but but it makes for a top down editing which is a good fit with describing something where you're not sure where the boundary is something that just keeps going and keeps going and you really have to use your own interest to decide where to stop you you used a phrase I was listening to U public radio Paul auster the novelist people are saying we've just come out with a new novel and he said yes because I began to write this 20 years ago and the characters became so interesting I had to let them become what they wanted to be and you said the same about hypercard we had to let hypercard become what it wanted to be and in some sense when you brought tectronics Engineers by your desk and showed them tectronics knowledge emerging in this framework of links you were allowing tectronics to emerge as it could be the the tectronic story yeah and it turned out to be a lot different than I thought you know there's a lot more politics than I was aware of that was for sure I uh I actually think I buried that stack and I you know I don't think uh but no see that that came from I mean that belief that that any system wants to be a certain way and and that is designed designers we should be aware of what it wants to be comes from studying you know all these different computers and trying to figure out what the guys who put the index registers in there expected us to do with index registers and uh you know they had some expectations and once we figure that out then we say well let's show them a thing or two what we can do with index registers and that's where the creativity happens but you have to sort of understand the way the system wants to work and once you understand the way the system wants to work then you can uh put it through his paces and I I think this is true of anything that is Rich enough to De to to demand what we could call Design you know I there's plenty of things we work in our Liv that are so simple that you can't say you design with them but a computer is not one of them now you say design you could say architecture do you use those interchangeably those words well I do because I'm careless you know I have trouble telling where architecture or requirements or design stops and I actually like to be able to uh to move move back and forth all the time you know I mean if I'm if I'm even coding and the coding isn't going so well I figure there's something wrong with the design and if the design is confusing I figure there's something wrong with the architecture and if the architecture is hard I figure there's something wrong with the requirements and about time to change those so I'll just you know move around I want every program to look like it was easy to write even if it wasn't if it looks like it was easy to write if it looks like the language was designed to write this program then I know I've used the language well and and I search for that hey some artists out there great all right but it's art it is Art there was a uh another mechanism you created uh essentially an index card for those writing in an object-oriented programming language what are the objects what are the classes yes well
Part 2
there's all of buzzing buzzing reality and all the comple the complexity of the world and it will be simplified so you created a tool again a a small field in which you'd say what this class was what instances the class might do and then what it did in relationship to others and you played with this card system so that it would emerge the structure it would emerge is that oh that that's a very good description and and and it's been dubbed CRC cards which stands for classes their responsibilities and their collaborators in other words you know when you're designing an object you want to know what class it is what it's there to do and who's going to help it get that job done and that's what I felt was most important about well most important maybe not what was most important but what was most original about objectoriented programming in uh oh I guess that was the mid 80s and I wanted a notation that really emphasized that now a lot of people at the same time were trying to figure out about how to do object-oriented design and they would come up with schemes that didn't didn't even really allow the object-oriented designs that I thought were most impressive in small talk I had spent uh a number of months maybe even a year at that point I can't remember again studying small talk with the same you know what does it want to be what are the ideas there trying to to uh uh you know kind of live in this code as if if I were there at the creation which I wish I were and I weren't but I felt what it was like and then when I looked at what people were saying oh you do this and you do that to find the objects and I says well that's not going to find the objects that I think are interesting so I wanted something different I wanted something that really focused on the aspect of objectoriented programming that I felt when I looked at this great code and uh I don't know if if people remember but back then people said well the key to object orent programming is classification being able to say what is the hierarchy and they talked about the Dewey Decimal System and stuff like that and I said no wait a second it's not about the hierarchy it's about how these objects share to get the job done how they share in such a way that you could pull one out and plug in another one but that and it would do something else but it would be the same calculation in a sense and that feeling of what is the ideal sharing was uh something that I thought people were pretty good at doing intuitively even if they weren't computer experts so I just tried to get away from the computer do it on index cards the nice thing about index cards is you can spread them over a table another nice thing is you can get about 150 of them out there when you really only needed 10 but then you start you know kind of pushing them until they fall off the table and and and you get the 10 that everybody nods when you're when you're holding you say this one and this and this is going to do this and you tell a story and the cards are like little puppets but you don't have to do the puppet thing so it's professional and but but it it relates to you know I mean when I was in programming we were taught not to personify you know not to say the computer's going to do this you know because too many bad things were blamed on the computers when it was really the computer programmers or their managers that uh but but you know I think that that's really important for us to use the facilities that we have to see a collaboration or the sharing of work because I think we are as humans we understand that behavior and uh you know we want to bring all those faculties to the table so there's the table yes and there are the 150 cards soon to be 10 yes and there other people standing around and you point to that object and you say now he wants to do this or this guy wants to do that and this is the other ones and you tell a story is that the kind of language oh exactly exactly and and what I'm trying to do is get away from uh the names of classes this is going to be an ordered collection or this is going to be a polymorphic dispatch or whatever because that just drives people away from the table what I do want to do though is I want to talk about the computer program not about you know the domain I want to talk about how we're going to computerize it in the presence of people who know the domain so that I can see whether they're feeling good or not ah well now there we are because there's an object and at one point you used an example about a business program in which the definition of a month in healthc care meant different things to different people oh yes tell that story oh did I tell that story well at some point you told that okay well that that was an interesting one because uh we were developing it was Financial software and and it turns out we were doing a trading system and you know the number one thing they asked for is let's not rekey the information to go into the back office so we wanted to capture it and then do the back office stuff all at the same time and it turns out we had lots of bugs and we'd track down the bugs and we'd talk to different people and we got a different story about when a day is you know you think I mean the the first thing you have to realize as scientist would say a day is you know something about the orbiting of the Earth but you know in in business it's when you go home right that marks a boundary of a day and so they work in whole units of days but it turns out the front office uh because they were trading all day long they said my day is everything up to but not including AC crude interest but the accountants in the back office say well I have have to take the acred interest and so I'm going to put the acred interest in the day that it accured so there's you know the way I think of it now is that there's a some period where you're trading and then there's some period where you're not and that period where you're not is acrude interest and then that repeats over and over and you can chop that up into pairs two different ways and they were just different and they didn't even know it so by moving the objects around and saying this would interact with that it clarified the language you're moving oh I wish I wish I could say that were true no in in this case we actually had to program it and we had to hunt those bugs and and and it was it was probably uh a year into shipping that uh well well one of the problem is is is if you're if you have a bond where the amount of interest is the same every day you can't tell the difference and that's what government bonds all you know you have to have all kinds of things varying to even see the difference so it wasn't until we we had fancy security you we thought we did it right we did exactly what the customer asked for and both the front office and back office were happy but then we started doing fancier instruments and they started complaining and we thought well it must be what we put in but we checked that that was all right there was some deep seated misunderstanding and we went to the customers they couldn't explain it but we didn't give up we kept looking we kept looking we said there's something wrong and when we figured out that they weren't talking to each other correctly they weren't communicating but they couldn't tell because they were communicating well enough that there was no confusion especially with fixed rate Securities but the computer the the the the insisting that it be right to the penny when trading billions forced us into the situation of discovering something that they didn't even know and so um the other neat thing is that we fixed it you know and that's and that's something that I think is something I feel strongly about is you don't know when in a project Insight is going to happen here I could tell you all the reasons why the fixed rate the misunderstandings and whatever that prevent people from knowing everything they need to know there's no way we could have interviewed all the people and and found that out although I have found things in interviewing and it's usually about what people care about by the way a good technique is is you got a bunch of customers and uh when things when you ask really kind of hard questions and everybody look over to Fred well pretty soon you know Fred's the only one you ever pay attention to because he's the guy who really knows and uh you know I think that people do that socially a lot and so you get to pay attention to I mean if you design in the presence of people who are going to use these systems you begin to realize you know what the social decision making processes really is and you can adaptt to it in building a Weeki the idea was to build a structure in which that social interaction could take place and you struggled with these issues of anonymity or is it Fred I mean all these things go on so how how did that evolve well kind of you know just working my way into it uh you know I think I to be honest I I have to be you say I was extreme lucky you know that that I had a simple goal I had seen this thing in hypercard hypercard fell in my lap I made good use of it uh I had a pretty specific ambition but then as things presented themselves as opportunities happened I said oh well I need to provide some guidance on what is or isn't the right way to use this and I I provided that guidance by you know kind of half watching what people were're doing you know in the same way now I'm inspecting people the same way I inspected computers you know how do people really want to behave uh but there was also things where I think there was a lot of you know sort of dysfunction in our industry the way people uh respond to Authority and so forth that I that I thought it was very important where if somebody wanted to say something that was controversial if they want to say in my experience a lot of time spent in design doesn't help at all they had to be able to say that and not worry about it and I thought that it was very important to be an anonymous now anymore we suffer a lot of problems and we'd like to know who the heck posted that you know pornography site and so forth so I think we're going to see maybe the end of anonymity but the uh the the idea that we were going to talk about software in a way that didn't match what was written in software engineering text and we wanted to be taken seriously was a very important part of the site and I wanted every time somebody made a statement and was taken seriously to encourage the next guy to make a more truthful statement about his own experience her own experience programming because I knew that uh a lot of people expected a lot more out of programming than they were finding they weren't enjoying their work they weren't feeling proud of the programs they wrote and uh I wanted to change that I thought programming was great and I wanted everybody to have that Joy so how did your interest in pattern emerge did it build from this this experience with small talk and with attempting to understand what exactly the objects should incompass what where were their boundaries and how they interrelated into patterns of inter relationship yeah it's it's uh the simplest answer is I had this idea of writing all these responsibilities on cards and and then I thought well gee I keep writing the same responsibilities there must be you know like 10 and if I could just list them then it would make design a lot easier but then every time I tried to make the list you know it was a little elusive it seemed simple you know but it's kind of like asking somebody you know how many words do you know you know well you know a lot of words and they come to mind and you need them but you know you just can't write them out in alphabetical order so I was having this trouble and uh uh came across it was actually uh uh old friend Bill Croft had sent me a book this pattern Language by Christopher Alexander sent it to me years ago and uh I wasn't sure what it was but it was interesting and that came back up and we're looking at that we said well that's that is what I wanted when I wanted a list of responsibilities when I wanted to say what would this object do Alexander discovered a way to list them and it was more complicated than a simple list and that then all of a sudden it made sense so then I thought well okay all I have to do is exactly what Alexander did he did it I'll do the same unfortunately he wrote another book where he explained how he did it so I just read that and he made it sound simple and and we down to do it and and still nothing came out nothing came out I but I knew and and we called it patterns because Alexander called it patterns and uh I wanted them now here's the funny thing the best patterns I got early were when I saw somebody screwing up when somebody was doing a terrible design and I'm thinking oh no you don't want to do that you want to do this and this and this and this and this because I was in this design state I saw something where somebody missed some information and I was like oh well let me tell you what you need to know you need to know this and this and this and this and this and then I just stopped and I said what were those five things and I just wrote down their names and then I said okay now let me go cast those things into alexandrian form is you know what is the problem and the solution and the context and all that stuff but it took that need to design or that need to express uh context of design or what whatever that knowledge is that need to say you don't have the experience that you need to complete this design to bring up the knowledge you know to reach into my experience and say hey buddy this is what you need to know and and to this day I haven't written good patterns except when I've had that that urge to spill my guts and it's usually on somebody else's design because when I do it to my own design I'm doing it subcon iously all along so I don't ever notice that dissonance but if I'm looking at somebody else's I'm not saying I'm a great designer but I'm just saying that I feel the dissonance and the need to produce suddenly comes out like that so I encourage other people to pay a lot of attention to how they feel when they look at design because that that feeling of whether you're excited by the design if you feel like boy when I master this I'm going to be more powerful uh I really respect the people who did it uh that that is in a sense recognizing patterns that match what you have in your own catalog and you say oh these patterns fit in but when you see stuff that just doesn't fit at all that doesn't mean that it's necessarily wrong it just means that it doesn't match your experience but it probably is wrong describe a little bit more this the feeling you you when you first encountered small talk you had a feeling about yeah Small Talk salesman huh how many small talk programmers here uh a couple hold out small small small talk I'll tell you I thought of what what really set me off was was reading uh don Cano's elevator simulator and I did this in college and you know I was learning all this programming but when I read about the elevator simulator I could see that event queue operating and I could see that elevator going up and down and every elevator I've ever stood in line waiting for you know I've just imagined that elev you know I mean it became real to me so I I a a a way to think about that is I thought of a computer program as a mechanism as a model for something real I didn't think of it as a real thing but it's a model I didn't think about it as a user interface I didn't think of it as a database but I thought of it as a model and I tried to write my programs that way but in small talk that was the only only way to write it there was a focus there was an intensity it says you make a model everything's you want to make an interface the interface is just another model you know this whole thing that the computer is there to model by what is essentially discreete events uh and it helped that the book said oh and by the way we'll show you how this works with a nice discrete event simulator just brought it home but I think that's an attitude about how programs work that uh I I found very attractive and it spoke to me now each language you learned spoke to you for a reason for a moment for a design problem the lisp world that wonderful symbolics environment that people created these levels of abstraction the ability to enhance the programmer to think in levels of abstraction what were other experiences what's your emotional history about Lis and and and uh lisp is one of those that has always been just beyond my reach I mean I think I learned it all but then I read and now I think I understand what it is is that there isn't one set of patterns for lisp you know that that everybody you know and I I think the the the the quotable quote is that lisp isn't a language it's a building material you know and it it is too too easy to invent the new paradigm of computing before you get to work on your program and list and it was it was hopping around between all those paradigms that I couldn't do fast enough so I wish I you know and it's still in my list of things to get good at you know because I think it's you know one of the most you know essential complete and elegant things made in Computing but uh the fact of the matter is and and this will get us to you know a nice segue here I don't think it's possible to learn list really well without being in a community of Learners you have to be in a community to have enough exposure to the what and the where you can't read the code enough of it fast enough to really get lisp deeply unless you're in a community where people are saying oh yeah look at this and try this now and oh that one stumps me too I think that's actually bad code you know and and this be
Part 3
because that's where all the great all the great Lis code came out of communities these Labs AI Labs where people could get indoctrinated into this in this style Small Talk was like that but not like that it was said oh don't invent the style use ours message dispatching objectoriented and it was a pretty good one it had all the characters of lisp that you would want if you had already decided that was good enough for your problem so it was the the easy way to see the productivity of that U Lis is still a challenge oh I would say that uh you asked what other languages uh certainly prologue is a again kind of a taking something that's easily done in lisp and refining it in a in a specific language let's make a language that's only good for that uh I've always enjoyed uh the effort I've put into at first APL and and later J is a uh J programmers all right yeah and I'll tell you the you know when I talk I mean you cannot program an APL or J without seeing strings of 3 to five to 10 symbols as complete patterns you know I think more properly they'd call them idioms but it's very idiomatic and uh J is a a version of APL that you don't need a special font for that has an even even more carefully developed uh semantic for making that that pattern structuring just a natural part of the language the the the most outstanding thing is that you can write non-trivial subes that don't have any variables you know it's just operator after operator after operator after operator and there's an implicit input and an implicit output and and honest to God you can train yourself to look at that and see what it does now that's an intuition you're building an intuition would you this would you accept the word intuition into this uh discussion of of training yourself to see when you're looking at a design and you've said oh no no let me tell you the five things you have an in intuition about that is it capturing some some aspect of behavior I'd like it to capture or is it missing it I I I do believe that uh I am an intuitive person and and it was difficult to get through quantum physics because of it but but really what it was I'll tell you the second time through it actually started to seem intuitive that's notation each that's that's right it it so I think what's really going on in intuition is that what you're looking at fits with your experience or or more importantly what you need next is provided by your experience when you reach into your experience when you say okay I see what's going on I see the pattern here the next step is this then you can do a lot intuitively of course uh you know it's great when that fails you to have something else to fall back on like you know a careful derivation or something like that all the things that uh science is relied on to keep from getting stuck in you know Feelgood philosophy you know and say oh well let's just be careful and move in Tiny Steps and whatever but but in intuition really lets you jump and and I I say when it's working for you go for it you know use that intuition uh I think that it's it's something that uh scares people I think there's a lot of intuitive stuff written on on on on wikis for example you know I say hey anybody can write you're your idea starts out as good as anybody's and people just start writing and they're writing about what they believe or they're writing in a way that they think you know even even on Wikipedia where you're not supposed to write about just what you believe you're supposed to site sources but how you choose sources in that is there's a lot of intuition there and it's one of those things where uh because of the numbers involved because we can do this with thousands of people uh even if we're you know we're really just polling people's opinions when we watch them right all of a sudden those opinions become important because they're of a statistically significant sample in fact in fact I love this description you know someone asks you know how do we know Mark moart was good you know well people know Mozart was good because people clapped at the concerts right but you know if you went and didn't think it was good and everybody around she's clapping pretty soon you're clapping and pretty soon you say well maybe it is good right so there's this this uh cycle uh there's a a feedback loop that goes through our human experience and appreciation and judgment that actually chooses what's good and what's good and it picked Mozart and it didn't pick small talk you know so now I go elsewhere to program and but uh that doesn't mean small talk or List point value or even J but it it does mean that uh that the movement of the industry you know is is a human activity and that uh uh it makes sense to honor it as valid in some sense but it also makes sense to try to it in directions that you think are important part of your nudging in building an environment your so the audience can have someone Eder that doesn't know about Mozart others know a great deal you allow entry lowest barrier to participation possible so anybody canate you don't need to come up with a replacement for the entire first movement if you didn't like it you can add change a note there I didn't like that maybe sound pretty good you're allowing a gradient of involvement so that Community people can keep walking in joining the audience participating in the feedback that seems to be what the Wei well well I think I think what you really are is talking about you know improv Jazz there you know I mean where the musicians know a certain number of patterns and just play what they feel like playing that night and they can't do it in the the practice room like they conf front of an audience because they are communicating with an audience in a very real sense now doing that in Wiki is a little more uh remote you know you have to watch Wiki for you know weeks or months to really kind of feel where people are going but I'll tell you when I first time I posted uh something on my own Wiki and uh uh someone politely came along and explained that's not how we do it around here right then I I looked at what I'd done and I said well I guess they're right you know that isn't how it's done around here and I apologize you well now now in but one of the most startling things for me is there is the neutral point of view yes a goal and behind it the page of comments and battles and insults and and and but startling to me the politeness people exhibit to each other when they're battling on the comment page on the uh uh what's the problem we can't be sure that they were always polite somebody might have just taken out that yeah you know that's uh I wish I could say that was my invention but I met the fellow who invented the talk page who who oh gosh I wish I remember his name but he was early wikipedian who realized that people wanted to talk about what was written and they couldn't talk about it in the style of a Wiki or in the style of an encyclopedia and on my Wiki I said I don't care I'm not making an encyclopedia I'm inventing a new literature which is about the experience of programming so as long as you're talking about your experience and you're honest then that's enough but but Wikipedia took the same mechanism and says we want to set a different goal we want to be an encyclopedia for well I think it was every every person on Earth in their native language you know that's a nice goal and and uh and I think they're going to make it so uh but they they said you you need you know to to keep it from being a free-for-all you need set some sort of criteria to judge good and it has to be kind of open-ended so I said well it reflects your real experience they said that it's written from a neutral point of view and I can't tell you how many times I'm talking to journalists and they say well how can there possibly be a neutral point of view well the answer is there can't I mean there is no neutrality on anything that's really a challenging question but what you can do is you have this ideal you can say well what if there were a neutral point of view what would it be like and let's try to be more like that so when you have a fight when you say you say this I say that who's right a third party can come along and say here is the word usage which you're using which is not neutral and boy I'll tell you they've gotten good at it if you if you go up and read their Pages where they have advice to how to write in a neutral point of view it is it is so steeped with experience gained in the last five years in how to coax people into writing about things that they're passionate about while burying a little bit of that passion while sticking to what's known to be true it's a it's a great writer's guide it's it's manufacturing a bunch of Encyclopedia editors now is it helping manufactur software developers let me just quick ask a logistical are you guys hearing a ringing in the audio no if we is there something we can do to this we're getting more in the field of the speakers but it may just be we're getting a bounce off here better if we disappear we move too far yes that's right all right testing testing is the ringing better it's better is it me it might be that I talk too softly what if I move this I think the Ring's gone is it gone it's better acoustical engineer hey wait a go halfway wavelength all right so keep your voice down at about a meter wavelength and we'll be just fine so I feel you know whenever I look over this way I turn away from the mic and it makes me want to turn this way it's it's not just John it's but but maybe I'll turn this so that I can uh talk to this side of the room a little bit hey well talk to that side of the room talk to Doug angelart now now now now you just asked me an interesting question and and I forgotten what it was oh no I forgot have to play it back what was the question oh yes oh program okay you know the the uh uh I think grappling with difficult questions I mean a lot of people hate to to to see arguments they especially when they're paying both sides right you know if you're the boss and you're paying both engineers and they're arguing it's like why can't you guys just pick something and go with it well it turns out that that that grappling you know in in addition to trying to come to a better solution is cementing so much experience it's what it's it's it's the it's the learning process if we want to do really great software we have to learn you know the thousand things that are necessary to do it and if we don't let people grapple with the problems and and go through all the choices and and see how they play out including writing stuff that you could probably pull out of a library but writing it and seeing what happens that's when you get the Insight that's when you fill the back of your brain with enough stuff that you have intuition that's useful and so we have to keep doing that now um so this is an argument for pulling back the covers a bit so you can see what people often say oh the great idea in object-oriented programming is to hide the implementation the method the me how you implement a method doesn't matter but you're saying you should allow people to see that because there are better and there are worse ways the yeah right so so I believe the real the real achievement in object-oriented programming is that you don't have to read the implementation of what the message is being sent when you're reading the method in other words you can read it very quickly because you say oh he's sending this message I bet I know what that is let me read the rest of the method and see if it makes sense and when it doesn't make sense or when you're worried about something else like maybe accidentally doing a n cubed algorithm because you didn't look at what the method did I mean that when you're writing the method you really do need to know what it's going to do you know you need to understand deeply how it works but you don't have to read it as you're reading the code you can read it in in passes and and it's exactly like this in Wiki uh and and more so on my Wiki than Wikipedia because Wikipedia is more about history and you know you don't necessarily want to look up the date but on mine where we're talking about programming which is a very complicated experience among practitioners that needed new words to talk about what they were doing they would Define new words always phrases they would Define phrases that that spoke to what they cared about and then there'd be a little discussion of that phrase but then that phrase just enters the vocabulary so there's this vocabulary that the people authoring on the site have which is about the conversation and when you read a page and you've been reading it for a while you just read past all those words oh one is uh you aren't going to need it that's an argument for not building in features for the next programmer well you say you aren't going to need it that's been argued for a long time but you could be going along and reading something that says yeah well don't forget you aren't going to need it blah blah blah blah and that'll be a link and nobody's going to follow it because that's always been discussed that word is in the vocabulary except except for the new guy who's coming along and reading and says what does this mean what do you mean you're not going to need it this guy's arguing against design and he's going to go click on that link and go get that history so uh this idea that that I mean it would be like saying uh I mean if if you clicked on the link and says well we aren't going to tell you because you're not a level two Master you know then then uh well then you're going to have a lot of people who will never be a level two Master is what you're going to have that seems you know the goal to to to allow as many people particularly those that are entering names unknown they're on the net they're now Hing this brand new world they're coming from everywhere they want to have a pathway to understand understand how to become a level two wizard they want to there are Wizards there I'd like to become one how do we build the the weaky in the literary or historical the Wikipedia environment has brought sometimes contributions from I'd say hundreds of thousands or Millions a steady pattern of contribution from maybe a few thousand I don't think it's a hundred thousand I think it tails off the the amount of contribution that individuals make in this some people do a lot yes and then others dip in and dip out and make a work only in a small number of articles in the field of programming we' like as many people to participate to some degree as possible and move up the gradient what do you think is a good direction to take to encourage that do we have the tools at hand oh that that's a that's a challenging question and uh I think that that most of my life has been spent with people who I think are already already consider themselves professionals but don't find that they have the productivity or the creativity or whatever of the guy down the hall that they really admire and the question is how did that guy down in the hall get so good you know and you know in the quiet of your own cubicle you know you sit there and you think well maybe I don't have it maybe I'm not good enough to do it when really all that's happened is you know he's written more programs like the one you're working on now than you have and the simple answer to that is to get in there and finish this one because that'll make you one closer to being that Guru but it's not enough to say oh I worked on it but I didn't understand it you have to work on it and you have to understand it you have to see the consequences of all the decisions whether they're good or bad or in favor of customer a or in favor of customer B I mean the richness of the space is so huge that it takes a human mind to grocket you know it's not some formula that can be put in a textbook you know so so seeing the richness of the experience of interacting with a complicated computer program and a complicated Community is something that I think everyone should do as much as they can and oh gosh I was talking to some guy today about how sad it is is that you know that our PCS Ship Without programming languages you know it should be there you know that there that every computer ship should be programmable as shipped you know and I don't care whether it's I mean hopefully it wouldn't be a terribly complicated way to program but it's should it's just programming if you have a computer you should be expect to be able to program it and that that I mean people look at me and say well programming is a terribly boring thing why would people want to do that and I said well yeah but see that's what I want to change it's it just shouldn't be boring now what are you program in what are you writing in these days off Java you know I uh uh you know I love small talk but anything I can do in small talk I do in Java and when I'm not programming in Java I am I have to admit addicted to Pearl you know L write a lot of pearl now I have to say that I spent 15 years as an object Zealot you know and and I wouldn't settle for just anybody's objects I wanted Small Talk objects because they were the only true pure objects and that was a world where I had everything in my space was in these nicely parched out objects that had this beautiful you know structure and nicely Divi I mean it was great environment it was very empowering and it was kind of waning and the internet came along and I got to looking at the internet and I said wow the internet really favors text it doesn't want to send objects around it wants to send text around and uh I said well gosh you know I got this Unix box here and it's like it's a text machine it's got all these text in it and you know and I thought I'd walked away from it and I said well I got to I got to read reevaluate I said well you know I thought I thought that was the old school and I said well man this is this is it but then I said well I got to have you
Part 4
know so the text in the hierarchical file system was what I had instead of objects and then I had to say okay so what what do I have instead of methods and that's when I you know well this was 1995 and pearl was pretty healthy then and so I started programming in Pearl and I discovered it was pretty nice you know and I'm a guy who was pretty happy with APL so you know having that you know the saying is it looks like blind noise and it and it did but I could parse it the uh the thing that I really when I say I programm in Pearl what I really did is I had a file system that worked I had a web server at worked and I had this CGI mechanism that worked and I had a browser that worked and I had these four gigantic pieces that had a huge amount of history in and what I was really doing is picking a part what does the browser want to browse what does the web server want to serve what does the file system want to store and how does Pearl want to hold it all together and that it did very well and so I became addicted to and the first Wiki was written in Pearl it's been written in just about everything now uh the winner of the smallest Wiki contest was five lines of python I think so if I've offended any python zealots I I will admit that python kicks butt too so so uh but but something happened when I looked at Pearl and and I understood open source you know from the earliest days of Richard stalman and I said well that's interesting but I got all the software I need and it's already paid for so I didn't care about that but when I saw Pearl and how nicely it was put together and and how fast it compile how you know just how fast it was and how few bugs there were I said this is amazing who wrote this you know what community wrote this and I and and that's when I realized that uh open source had achieved something that I considered truly creative uh you know I I felt that you know Unix was pretty well designed and knocking off a few device drivers was a lot of work but it you know just getting getting that open was you know nice engineering but but but making this Lang and having a whole Community come behind it and getting from Pearl four to Pearl five and stuff like that you know whether you like it or not I I it really is internally very self-consistent I said this is a great piece of work and that's when I said you know I love the small teams closely interacting this is huge teams closely interacting but on the internet and I I was paying attention to it and I think there was that was in the back of my mind and I that helped me say well let me let me push forward on this Wiki thing and I think there's always been a lot of confusion cuz I was not an open source sell it when I did Wiki but it was open it was an open source I actually did a rather bad job of giving it away I got an email today from some guy says here in the book it says something or other but in the light you know because I didn't put a proper license on it you know I I I looked at all these licenses I last thing I want to do is read licenses so I just wrote some careless English on and says Ah Yeah blah blah blah well not a good idea not in today's world read the licenses understand them decide what you want to do and it it was only until later that I bothered to read all the licenses and and here's a tip you know when you're reading these licenses you know you get the feeling that uh you'd like to have a high- paid lawyer to help you understand them and so um but don't worry about that you just use license and if you have U successful software there will be high paid lawyers that will come and talk to you right this sounds as like similar advice to Young programers start using it and if start using it and and it's amazing what you can learn they'll come back and talk to you it's time for questions from everyone here we've been talking for quite a while way in the back is there let's see if the microphone can reach you oh no I guess the better idea here is to put a microphone some here and people can walk walk up to the microphone that would be a good idea spatial organization intuitively will be able to know who to call on that's what it'll do um my name is Dominic and just an observation that you were saying you're very happy with uh Pearl um I think I I knew I was going to get in trouble for this well I think Pearl's great but what do you think about when you actually read the Pearl that a lot of the Pearl can just be very hard to decipher if you haven't written it and just the maintainability I the question is uh what do I think about Pearl from a maintainability point of view and and and I will say that uh I've written so much Pearl that I've developed a style that I can read my own old code I have written in programming I was a real fan of Icon which is a really kind of a very clever language and I found I couldn't read my old programs even though they had carefully chosen variable names and not too many symbols because the valuator semantics and icon required me to think of too much at once whereas Pearl's pretty straightforward it's powerful but it's pretty straightforward so once you learn to read past the uh you know the the noise symbols in there uh I I find that I can uh keep it going now it is true that you can adopt the style this is the same criticism I had a list that you can adopt a style that uses Pearl in tricky ways that make it look unlike anything thing I would have ever written and I probably just wouldn't read it I'd probably say oh don't understand that one let's go on so and that and that I think is a good reason to if you try to use Pearl in a community setting in in a commercial setting with a team of developers you ought to have very strict coding standards or maybe think of something else like maybe Java and are you looking at Ruby Ruby Ruby's awesome too I think Ruby has some of those little you know wormholes that you can go through too and you can uh uh but but maybe they don't have a tradition for using it so much but Ruby in fact you know Ruby python Pearl even PHP just in my mind is a set of languages that came out of the community to serve the community and uh there's a lot of family resemblance you know the use of pattern matching the hash tables stuff like that and uh family differences you know like you know don't want to use curly brackets so we're going to do this thing with tabs and and you know it's like each each Community got to pick one or two things to be different at but you know like I said I like that so so uh yeah Ruby rocks thank you gu it's think you you think of tickle just a little tickle I forgot to say tickle yeah tickle's a tickle actually taught people that they could do that as what I think happened there's a John Gilmore who was a long-term job job long term APL programmer i' challenge him I'm going to show you a piece of code you wrote and Gilmore has a tendency to write more or less looks like a assembler of right so how many days is it that you can still understand the code you wrote one day a lot of APL code one day later I'm sorry couldn't two days did anything last a month that you could actually go back I still remember those exercises all of known statistics on one page do it in APL so so so so APL had this interesting phenomena where you you'd have a problem and you'd like have a three-dimensional array that you were processing and and you'd get stuck and you say well let's just slap another dimension on you and you're up to four dimensions and then you have another problem so you you you layer some stuff on here and you're up to five dimensions and you just can't read that because you can't think of that then you do it you do it outside product of five oh see he's done this right right right then you do this one power operator and it all collapses standed so well and it's so brilliant and then 20 minutes later you sck all right on this side sir you spoke of people disagreeing on things they felt passionately about and using loaded language and you mentioned a guide to to writing in more neutral language what was that guide oh gosh um what what I saw was uh on Wikipedia uh if you go to the section uh which is you know guide to authors they even break it down to say well if if you want to write about this you want to do this if you want to you know from from new author and uh of a subject matter expert to uh uh you know volunteer Arbiter of dispute they they break it down nicely and I I don't know the name of the page but it wasn't hard to find a reference in Wikipedia it was in Wikipedia and it was written to people who were going to author in Wikipedia But the quality of the advice just dripped of their experience and and and again this is a a huge Community that's having new experience every day and they're used to writing so it's I think it's very good the book you early found influential patterns and something and the author was Alexander was a Christopher Alexander wrote a series of books and and he was a Berkeley uh uh building architect now I think in Oxford that it's Oxford University press there are three in Oxford University one's about Oregon yes so the uh since I live in Berkeley this is a so these were beautiful books that would take a very there was a hierarchy in them and they'd say so to build a building well let's go to what you would like in a room what would you like in a room probably light coming from several different directions in the room wind rooms that only have Windows on one side or sort of so you'd have these patterns which were and he went through some of the old Berkeley beautifully designed homes and found the little Nook that the kids love to hide in that's a pattern there's always a place that a kids's hidey-hole th this is a dangerous book because when you read it you'll never look at a building the same yes exactly but he just wants to read it so that the title is a pattern language a pattern Language by Christopher Alexander and then there's a several also Oxford University press and now he started up again with the series I guess there three the new series about the nature of order and some of it's mathematical and some of it's uh he'll show you phies philosophy yeah so so so the book that helped me most was the book called the Timeless way of building and that had a little bit of pattern language in it but mostly it told you why he wrote pattern language the way he did and so that that was very helpful uh it fair amount of kind of Zen philosophy in this and if you don't aren't into zen you just read past that and just say well that's just how he talks sure hi W I actually have two questions uh first I'm wondering how you feel about companies commercializing wikis uh and second I'm wondering uh how you feel about um startups or companies that are actually using wikis uh not just to collaborate on text but to actually build and collaborate on applications how do I feel about I think it's great I I think that uh um you know what a company that builds on Wiki is doing is not inventing Wiki because I did that what they're doing is they're saying I'm going to take this to a customer base that ward has been ignoring and and going out and understanding a set of customers and say I'm going to help you get the value of this thing called Wiki is exactly what companies exist for I think that the creativity the originality of being able to have a hunch and follow it through and publish it on the internet and find you know a thousand people willing to try the experiment with you is is what the internet is for and and you know I just pray that we always can can do that that that doesn't get taken away from us but that that uh um having people build on that to uh to to create value in specific customer bases is is absolutely apropo uh I I do sometimes think you know as I as I study this uh this notion of Open Source versus uh I guess you'd call it concealed Source the the uh because I because I value reading source so much to understand uh I would like to see more sourced public but not licensed for reuse saying you can understand this but we did this and we're selling it but we're not we're not enforcing our will by encrypting it into machine code in other words the fact that there is source code and machine code is I think almost an accident of the ER of the machines down in the uh the first floor here that that weren't big enough to hold the whole program at once and that that there's a lot of history about that source code that includes denying programmers the ability to see how programming is done and that we should you know reveal more source code even if we have no intention for people to uh to reuse it and there could be some reuse but who cares you know what we need to if we need to do that to keep the industry going let's do it open the interfaces now you've often talked about these the tool of email or not often talk but the tool of email powerful yes tool of Discussion Group and the tool of weekies serve different purposes so there yes I I think email has been so successful that it's overused you know that too much stuff has been put on email and because of that you know we're we're simply overloaded what one thing that I knew I was going to get and I was really after and Wiki in the beginning was something that I could go away from for a week and come back cannot be lost now I talked a little bit earlier about how important I thought it was that somebody new to the site can pick up the conversation well that could be me after vacation right because I have to be able to pick up what's going on and I don't want to feel that I'm behind you know I just with email with email you know I come back and there's a th in the inbox you know and I don't pay attention to them as I'm going through them I'm just trying to get through them where where is because it's because it's ordered we we just assume that the order that people want to read things is the order that they're written and I don't think that's true at all I think the order what you want to read it is the order that fits your experience it says oh this I can understand right now let me read this because it fits so each person needs a different order to read it so each small company starting up with a Weeki is in fact devising an order responsive to some class of customer or some kind of problem that others haven't come up with yet ah I think that's a very insightful idea I I hope it's true too because I would love to see a zillion companies it doesn't the mega company maybe doesn't have a big role there in fact the mega company is based on the notion of causing everybody to do the same thing yeah that's sure thank you ward very fascinating tonight my name is Maurice Gil and I'm with the Mountain View wisman School District right here Mountain View mhm and we have kindergarten through eighth grade students and 6 months ago a parent contacted me from social text his name's Kim pier and he said that he would like to work for the school district pro bono a part-time of his work at Social Tex to explain what a Wiki was or is and I had no idea what that was at that point I was suffering kind of what you were talking about emailed just now which I found fascinating and he explained uh the design of it and so uh because of the the generosity of this company we're able to launch wikis we started with the management team and the school administrators took off on this idea and it even though we're pretty low Tech we found very quickly that we could manage projects and content and everything else uh Dr Judy crates who's in the audience with with Ken tonight too she works with us wave to us here wave to us she has taken Wiki and she's working with parents to help them have a discussion within Castro Elementary School in Mountain View my question is we're ready to look at the classroom and this is so exciting we could barely you know hold ourselves back we we'd like to know your thoughts and your ideas and your feelings about how students can use the wiki in the classroom how teachers can use the wiki to improve teaching methodologies and uh Better Learning in our schools before we get the answers you started with the tough cases the administrators and the staff yeah that's right and that worked oh yeah yeah trusty ones that are always going to say no we could they started doing it and they're the kids are going to be into it so much more quickly and then the parents the what was the experience with the parents well the parents we just started and we're merging several programs onto one school so we just started the training I think it was two weeks ago Judy and and and you know there are a lot of pretty techsavvy parents obviously in Mountain View so they get it I think we're going to find that they communicate very well with it um and it's so the students I think you're absolutely right I think they're going to be taking off with it what can we tell their parents about how we're using it and what can we tell teachers about how to use the tool and how to better collaborate and and get to more powerful learning I I I I think this is great news and and I know that uh school system all over the world are dabbling with this because so many kids turn in their homework based on Wikipedia you know that the the uh and the administrative task Lord knows the teachers have too much work to do and we we we want to let you know lighten that load and and if if Wiki just takes that down 10% you know I think that you know I can't imagine a thing that I'd be prouder of because you know there's there's nothing like a an inspired teacher that is not exhausted you know they have your kids in front of um I will say that when we talk about education or learning the learning opportunity I absolutely uh intended Wiki to be a
Part 5
Collaborative Learning environment uh for professionals you know the people who are never going to stop learning it is a place to learn and it's learning from other people but but everybody you know one thing we did on my Wiki is about programming did this extreme programming stuff on there and a lot of people said that's crazy that can't possibly work and it was discussed and thrashed over to the point where people said I think I get it I'm going to try it and they went and tried it and it worked pretty well and they came back and reported on that so that cycle of get finding an issue going and trying the experiment coming back and report I mean this is what science does have you seen it in the elementary schools or if if you could trigger that maybe in high school first if you could do that in middle school but I think as you get lower and lower it's it it's how you do it I know less and less about because I'm trying to take you know grown-up kids to to to master this uh but I I I I I think that it's got to be there and and part of it is the same way that some people you know learn Le to love writing for the newspaper but there's only so many issues and whatever that that really it's the act of finding out in writing finding out in writing that could a and that it's not how well it's written it's how well it's read you know so that you judge things not by what the teacher thought but by how many kids read it you know because if somebody can write in a way that kids like to read maybe it's by using a little potty language or something like that I don't know but it it whatever works that that that understanding uh is is a lesson that I think is is you know so deeply at the heart of education so um please let us all know how it works this this potty language phrase gets me because I watching kids it's always struck me there are jokes that remain at second grade the kids flow through the jokes and the jokes and the jokes are stuck right at each level so you explore the joke terrain or the things that make the class all break up and become uncontrollable I don't know if you want to go too far down this but there are there's there are phrases and poetry and things and observations among kids which will get them I guess when you you'll know it when you hit it the thing that gets them working and contributing there's also this issue of anonymity does a shy kid you can always say everybody has to do something tomorrow but does a shy kid feel more feel safer in an environment where they're an anonymous contributor should a section of the Wei be totally anonymous and should another section be completely identified I don't have are you have opinions about this all all challenging questions and and and I know you're working with it you know that the social text is really GRS Wiki in a deep way and I think that all I would say is pay attention to how it's going and don't hesitate to to take hard questions back to them because I think they have the horsepower to to really invent in those regards uh one thing that I was thinking and we're spending a lot of time on this question because it is so provocative uh the Los Angeles Times tried putting up a Wiki and they said ah we don't know if this is going to work but we're going to put it up and you know what it didn't work so don't fall into that mistake don't say we're going to put it up to see what the kids do because you'll be disappointed you have to kind of orchestrate kind of you have to absolutely orchestrate the construction of a community by you know introducing in an order providing plenty of support and one thing that I think is really important is at some point you'll get something written that you know scares you you know and I hope it's not a death threat or something like that but it you know there's there's a lot that could happen in a school that you just you know some parents are going to fly off the handle so what you have to do is you have to make sure that the community Norms are developed in conjunction with the parents and the teachers and the students hopefully you know just expecting the best and not being disappointed but you know still checking that recent changes to make sure that you know the one kid who really wants to test the system just gets untested as quickly as possible and that is the community that does it it's not the wiki technology one last observation one of the things that happened I it wasn't in the Mountain View School District but it was around here somewhere like four or five years ago kids were they didn't have the Weeki mechanism but they were writing about things and exchanging it could have been as easy as an email exchange and after kids in very different socioeconomic groups from quite different schools but at the same age level turned out that the person the kid that was the most knowledgeable about baseball in San Francisco was a young black girl in a school and when the white school more white school and the black kids came together the presuppositions everybody had about who these other people were were shattered and it was an absolutely Illuminating experience because as with all of the birds of a feather experiences for the computer crowd you come into a room and here's the guy you've been the person you've been communicating with over time you're complet I had a completely different picture of you but because we had this form of communication you've got a bond that can't be erased and all the other ideas about what people are like then are challenged and so this is very very powerful stuff you're playing with I think so so I think we can say we like the idea great go for great idea thank you very much great idea sir um just a question about the wiki oh I'm Herbert caner um you mentioned that the one of the object objects of the wiki was to have the articles in a very large number of languages I'm curious how are they doing that oh um that was that was Wikipedia's goal and I admire them for it uh that wasn't a goal I set for it and and on my Wiki we you know the tyranny of English prevails but no I'm sorry I meant the Wikipedia yes on on Wikipedia uh I think that was a goal from the beginning and I don't know why they chose it but the way they proceed is they provide an infrastructure for anybody willing to host a Wiki in a particular language so if you're you know in an island in the Pacific and you have this disappearing language but there's 50 people who want to really write encyclopedia articles you know they'll make a Wiki for you and they'll link it into all that and you have a go at it and and there are a lot of a lot of languages that have a you know 200 500 a th000 articles and I think a lot of them are simply transl ations of Articles and other languages into you know a a rare language but there are likewise I think dozens maybe 20 or 30 languages where the community is is has gotten so behind it that it is going off in its own trajectory for example I was told that the German encyclopedia has much better coverage of computer science than the English language so it isn't a question of article by article translation it's just that it people are doing it in a great many languages it's not required but but the trick is the infrastructure is the same so if you know how to edit the French one you know how to edit the German one and it's easy to say this article also available in Germany so when you look at an article you tend to see in the margin a list of 10 15 20 other languages that this article is written in now regrettably I only speak and read English but I hope that people who read multiple languages especially the more rare languages make a habit of moving back and forth reading it in both languages and if they disagree resolving that disagreement from a neutral point of view that transcends the language uh and and and we know that langu is associated with culture and neutral for one culture is biased for another culture so you know this goal of neutrality is is you know it seems impossible except that there's this community that wants it to succeed and so so that that I think is actually you know the strongest force for world peace that I I can think of in a long time there's there respond just I we're going to get the hook here but the Jimmy Wales Mr Wikipedia they' set a a hierarchy up so you're not an encyclopedia until you've reached I think 100,000 articles in a language I think that's the cutof point so there's a page it's fascinating look at the rankings there are about 120 languages that currently have a Wikipedia now of the 120 I for example I'm interested in Kenya Rwanda there are a number of languages in Africa in particular where you were beaten if you didn't speak English or French if you spoke your language sorry so in those countries where all everybody in Rwanda as an example everybody speaks Kenyan Rwanda so I said here's what you could do to catapult Kenyan Rwanda spoken by about 25 million people up to Let's Get It Up close to one of the top 10 or 15 languages get every kid to write about their own village or their whatever their family is and you suddenly have a few thousand or maybe 10,000 articles and you've reached level you're not quite a Wikipedia the English French German the one the really the Chinese is the Chinese one is just rocketing look at the volume of submissions daily in the Chinese one so but then we get to this second more subtle issue everyone that speaks multiple languages knows that there are some things that they I'm a native English speaker but I spent a lot of time in France so I'll read the French article but when I read the English article it's richer the nuances I understand better and then help me understand the French article better and that back and forth part enriches everybody and so that's for me one of the great values with 6,000 languages going to 3,000 in the next 10 years maybe 15 which is the prediction by linguist globally we're losing the languages as the grandmothers die the idea of creating captured knowledge and culture in Wikipedia is fundamentally important one one one other thing I would like to mention is a lot of this is possible because they use they pre-ic the text of Wikipedia for reuse you are automatically right now already pre-licensed to take that copy it make something else out of it and this is again I think I'm trying to remember whether it's a Creative Commons license or open a good thing to cre what whatever it is the the the license lets you do that that means that you have all of this resources and all the languages that you might speak that you can draw on to bring stuff into a language that might be rare and that is you know what a contribution to the world we're getting the hook but why don't we have each of the three questions quickly yeah okay it's it's the three answers I'm worried [Laughter] about now what Wiki system would you like us to design I Peter y from im3 we actually host collaborative work environments of which the wiki is a very important piece and we support uh the federal government and some schools and so on but uh I I also convene co- convene a community called onl that works on trying to move ontologies into the mainstream and there's certain activ activities which I sure you're tracking uh that are trying to do semantic with Keys what it called what onto onto loock as in ontology a dialogue onto loock yes o n l LG L like I think that was a great question I think we'll just let it stand as a as a comment but uh yeah the question is uh uh how do you feel the directions in developing semantic wikis like adding adding another semantic layer in sort of well I I felt that that I was satisfied with the semantics that emerged even if they didn't line up with the Precision that you might get if you crafted an ontology um that doesn't make me against ontology it's just that I think that you know I was after a quicker win I the the media wi keep people and like eeky wey and so on I mean well uh one thing that that uh uh because there's so many versions of Chinese uh Wikipedia is discovering that to really uh print Chinese properly in the dialect spoken in a region they have to understand what the words are more precisely than the glyphs actually say and so they're developing an elaborate dictionary system a translation dictionary and it could be that Wikipedia will be written uh with very high quality translation semantics underneath which again is not quite the same as an ontology but is closely related and uh making that really valuable is certainly uh something that's easier to imagine when you got 10,000 people working on it I just also want to take the opportunity to thank well now they're trying to give us the hook so I think we'll just go to number two and three very enlightening dialogue thank you I'll say thanks too right at the beginning um I'm Liza Loop and I'm trying to or I am starting a virtual Museum on the history of computing and education um and I set up a Wiki about six months ago hoping to collect the contributions of lots and lots of the Pioneers that brought Computing Made Computing a necessary part of education and I'm finding that I'm not being successful at this time in building the community so I wondered if you could say a little bit more about the nurturing of the community and how to go about it also I I will say well let me just cut you off there just in the name of time that that there's definitely a critical mass sort of thing that that you have to get enough people committing enough writing and uh you know what you have to do whether you bribe them or whatever to get on there uh you when it when it doesn't happen you know it's it there's nothing in the technology to make people do this it's it's really a social phenomenon and what I've always done is I've just launched a Wiki and I'm had satisfied if only a third of them catch I think that if you worked hard on it you might not like that answer and might be able to think of some campaign to go on to induce people to write all at once so that they reach a critical mass for one week and then they say gosh let's do that again my name is Lee Kutz and I work for the company that made note cards which uh was sort of for Hy card came from so uh coming full circle uh this week I'm giving a talk about uh how to uh how how to try to evangelize wikis in the corporation in Enterprise and one of the things that I'm banging my head against this is kind of a homework question will you do my my homework for me um is what can I tell these people that will let them give people enough rope that they can do what they need but not cut it off so much that they're going to only get every corporate approved message out what what advice would you have me give people in the Enterprise about letting the wik them letting people roam free enough on the wiki when they're so worried about control so is a very good question wi Wiki certainly has this bottom up power to the people empowered sort of uh organic thing and if you're in a very controlling organization or even just not controlling but you think you ought to be more controlling uh it's going to be hard to accept Wiki and so um what I usually do is I go find the part of the organization that's willing to give it a try and let them be successful until you know it overtakes the company much to Management's dismay but it's probably just as good to go in and say let's talk about what management issues you're facing and what the solution looks like in a knowledge working environment and uh you know if you can get them to think of knowledge work versus material work and and thinking about management practices and how they have to change then you can say well let me work a test case here which is you know people editing their own text uh I think that note cards by the way is is a a beautiful example of something that that took the idea and went even further because I think as I understood there was a lot of semantic processing in that that that Wiki just punts or relies on the trail left by by other people but you know I know that Doug is here too so we'll have to argue about that hypercard thing there is you can hypertext thing the lawyers have all at this moment become to the awareness they have to deal with the issues of blogs written by people so there's a now they know what blogs are and they'll talk about it we should do what the television station should the anchor do a Blog oh yes they should and we have this example today that the guy at son that wrote the blog is now the chief exe is now the CEO and McNeely didn't write a blog so he's gone so oh well there so there's a there's a comment by Wade a quite a while not so long ago it said that a Blog how did you say this a Blog is our our I like to say a blog is a community the blog is spere is sustained by a community it's it's the community uh a Wiki is really a work the wiki exists it's an encyclopedia if that's what you're making and the fact is it's an encyclopedia that's sustained by a community also but it stands on its own and that that I think is important that that you remember that that's what you're making the causality flowed in a different ways so the blog was a community were a number of people and they wrote blogs but they the result were documents and in the other case the documents the Weeki formed the community so you could say in the organization there are communities nassin communities in your organization people would like to share knowledge and be able to communicate mail's not going to do it that doesn't capture for the organization what you want blogs well that's what there's a structure to that but but this other terrain allows the bubbles of nassin communities to emerge inside the organization and from that comes creativity and Innovation and that's what's the Wellspring for your organization to survive thank you very much W Warden John thank you absolutely fascinating I I I was sitting here thinking how many places in the world would you not just have this conversation but frankly have an audience that sat here wrapped listening to that and and I think actually understanding most of what they said um by the way I gave up on lisp uh you you may still be going for Lis I gave up on Lis in my retirement golf hard enough thank you very much wonderful job [Applause] [Music]