연보

  • 1942-01-01 토론토에서 출생
  • 1966 MIT 여름 인턴.
  • 1967 벨 연구소 인턴.
  • 1969 벨 연구소 정규직.
  • 1977 [[/language/awk]] 언어 개발.
  • 1978 데니스 리치와 함께 쓴 "THE C PROGRAMMING LANGUAGE" 출간.
  • 2000 벨 연구소 퇴직.

이웃 복이 많았다

내가 정규직으로 근무를 시작했을 때 내 사무실은 빌딩 2의 5층에 있었고 9번 계단에서 이어지는 복도에 있었다. 나는 세상이 변하는 동안에도 고정된 그 지점에서 30년간 머물렀다. 그 세월 동안 복도 건너편의 이웃으로 켄 톰프슨, 데니스 리치, 로버트 모리스, 조 오산나, 제라드 홀즈먼이 머물렀고, 단골 방문객으로 존 라이언스, 앤드루 타넨바움, 데이비드 휠러(David Wheeler)가 찾아왔다.

연구소에서 보낸 마지막 10년 동안 켄 톰프슨과 데니스 리치의 사무실은 내 사무실 바로 맞은 편에 있었다. [그림 1-10]은 데니스의 사무실 사진이다. 내 옛 사무실 문간에서 2005년 10월에 찍었다. 켄의 사무실은 그 왼쪽이었다.

수년 동안 내 바로 옆 방 이웃으로는 빌 플로거, 로린다 체리, 피터 와인버거, 앨프리드 에이호가 있었다. 겨우 몇 사무실 옆에는 더글러스 매클로이, 롭 파이크, 존 벤틀리가 있었다. 물리적으로 가까이 있는 사람들과는 협업을 하기가 더 쉬운 법인데, 나는 정말 이웃 복이 많았다. 1

K&R, THE C PROGRAMMING LANGUAGE

이 책은 데니스와 내가 1978년에 첫 출간했고, 1988년에 2판을 냈다.

나는 B 언어를 다소 얄팍하게 배웠기에, 다른 사람들이 배우는 데 도움을 주려고 재미 삼아 B에 대한 튜토리얼을 썼다. 데니스가 C를 만들었을 때, B 튜토리얼을 수정해서 C용 튜토리얼을 만드는 것은 쉬운 일이었다. C 튜토리얼은 인기가 많아졌고, 유닉스와 C가 확산되는 것을 보면서 나는 C에 대한 책을 집필해볼 가치가 있겠다고 생각했다. 나는 자연스레 데니스에게 C 책을 같이 쓰지 않겠냐고 물었다. 처음에 그는 마음이 내키지 않았던 것 같지만, 나는 더 강하게 설득했고 결국 그도 승낙했다. 데니스와 같이 책을 쓰게 된 것은 내 경력을 통틀어 가장 현명한 선택 혹은 아마도 가장 운 좋은 일이 아닐까 싶다. 데니스가 공동 저자였기 때문에 책에 권위가 실렸을 뿐만 아니라 그의 C 레퍼런스 매뉴얼을 책에 포함할 수 있었다.

튜토리얼 자료 대부분의 첫 원고는 내가 직접 작성했지만, 시스템 호출에 대한 장은 데니스가 썼고 레퍼런스 매뉴얼도 제공했다. 우리는 본문을 번갈아 검토하며 수정해서 본문 내용은 우리 둘의 스타일이 조화를 이루고 있다. 하지만 레퍼런스 매뉴얼은 원래 상태 거의 그대로 유지됐으므로 데니스의 작문 스타일이 온전히 남아있다. 레퍼런스 매뉴얼은 빌 플로거가 표현한 것처럼 '등골이 오싹할 정도로 정확하게' C 언어에 관해 설명한다. 레퍼런스 매뉴얼은 C 언어 자체와 흡사하다. 즉 명료하고, 우아하며, 간결하다. 2

Bjarne Stroustrup이 쓴 브라이언 커니핸 이야기

브라이언 커니핸Brian Kernighan은 비범한 프로그래머이자 저술가이다. 그의 코드와 문장 모두 간명함의 모범이다. 이 책의 문체는 부분적으로 그의 걸작 The C Programming Language (공동 저자 커니핸과 리치의 머리글자를 따서 "K&R"이라고 칭하기도 한다)의 튜토리얼 섹션들에서 유래된 것이다.

그런데 좋은 착안들만으로는 부족하다. 큰 규모에서 유용하려면 착안들을 가장 단순한 형태로 환원하고, 대상이 되는 다수의 사람들이 쉽게 이해할 수 있도록 명확하게 서술해야 한다. 그러한 착안을 표현할 때 꼭 피해야 할 것들 중 하나는 장황함이다. 모호함이나 과도한 추상화도 마찬가지로 피해야 한다. 순수주의자들은 그러한 대중화의 결과를 비난하고 전문가들이나 이해할 수 있는 방식으로 표현된 "원래의 결과"를 선호한다. 우리는 그렇지 않다. 자명하지 않은, 그러나 가치 있는 착안을 초보자가 이해하게 만드는 것은 비록 어렵긴 해도 전문가층의 성장을 위해서는 꼭 필요하며, 크게 보아서 가치있는 일이다.

수년간 커니핸은 여러 영향력 있는 프로그래밍 프로젝트들과 출판 프로젝트들에 관여했다. 예를 두 개만 들자면 [[/language/awk]]{AWK}과 AMPL이 있는데, AWK는 작성자들(Aho, Weinberger, Kernighan)의 이름 머리글자를 딴 초창기 스크립팅 언어이고, AMPL은 "A Mathematical Programming Language(수학 프로그래밍 언어)"이다.

커니핸은 현재 프린스턴 대학교의 교수이다. 물론 그는 훌륭한 교사이며, 특히 복잡한 주제를 명확하게 만드는 데 탁월하다. 그는 벨 연구소의 전산학 연구 센터에서 30년 이상 일했다. 벨 연구소는 이후 AT&T 벨 연구소가 되었으며, 나중에는 AT&T 연구소와 루슨트 벨 연구소로 나뉘었다. 커니헨은 토론토 대학교를 졸업하고(물리학) 프린스턴 대학교에서 전기공학 박사 학위를 받았다. 3

참고문헌

  • C++로 배우는 프로그래밍의 원리와 실제 / Bjarne Stroustrup 저 / 류광 역 / 대웅출판사 / 발행일 2010년 08월 01일 초판 1쇄 / 원제: Programming: Principles and Practice Using C++, 1st Edition
  • 유닉스의 탄생 / 브라이언 커니핸 저/하성창 역 / 한빛미디어 / 2020년 08월 03일 / 원서 : UNIX: A History and a Memoir

주석

  1. 유닉스의 탄생. 1장. 59쪽. 

  2. 유닉스의 탄생. 4장. 152쪽. 

  3. C++로 배우는 프로그래밍의 원리와 실제. 22.2.5 장. 919쪽.