에츠허르 W. 다익스트라의 원고 아카이브
(cs.utexas.edu)- 컴퓨터 과학의 창립 세대 중 한 사람인 에츠허르 W. 다익스트라의 연구와 저작을 보존한 온라인 아카이브
- 알고리듬 설계, 프로그래밍 언어, 운영체제, 분산 처리, 형식적 검증 등 핵심 분야의 기여를 포함
- 40여 년간 작성된 EWD 번호 원고 1,000여 편 이상을 PDF 형태로 공개, 검색 가능한 전사본과 번역본도 제공
- 원고 간의 상호 참조, 요약문, 저작권 정보, 강연·인터뷰 영상 등 부가 자료를 체계적으로 정리
- 다익스트라의 사상과 교육 철학을 계승하는 기념 강연 시리즈와 관련 연구 커뮤니티로 이어지는 지식 기반
다익스트라의 생애와 업적
- 에츠허르 와이브 다익스트라(Edsger Wybe Dijkstra) 는 컴퓨터 과학의 기초를 세운 인물 중 한 명으로, 알고리듬 설계·프로그래밍 언어·운영체제·분산 처리·형식 명세·수학적 논증 설계 등 여러 분야에 근본적 기여를 남김
- 학계와 산업계를 아우르는 40여 년의 경력 동안 ACM 튜링상을 포함한 다수의 상을 수상
- 교육과 학문적 컴퓨터 과학, 그리고 소프트웨어 산업 간의 관계에도 깊은 관심을 가짐
EWD 원고 컬렉션
- 다익스트라는 40년 넘게 동료 과학자들과 활발히 서신을 교환하며, 연속 번호가 매겨진 기술 노트·여행 보고서·논평 등을 “EWDs”로 배포
- 복사기 보급과 높은 관심 덕분에 비공식 유통이 수천 부에 달함
- 대부분의 원고는 출판되지 않았으나, 텍사스대학교 컴퓨터과학과가 1,000편 이상을 PDF 비트맵 문서로 영구 보관
- 원본 원고, 일기, 서신, 사진 등은 텍사스대학교 브리스코 미국사 센터에 소장
색인 및 접근 방식
- 두 가지 색인 제공
- BibTeX 색인: 서지 정보 포함
- Ad-hoc 색인: 제목만 표시되어 빠른 검색 가능
- EWD 번호와 발행 연도 대응표, 수학센터(CWI) 기술 보고서, 박사학위 논문, 기타 문서 링크 제공
- 일부 원고는 출판되어 있으며, 해당 문서의 저작권은 출판사가 보유
전사 및 번역
- 시각장애인을 위한 검색 가능한 전사본이 점차 추가되고 있음
- 일부 네덜란드어 원고는 영어로, EWD1036은 스페인어, EWD28은 러시아어로 번역
- 60명 이상의 자원봉사자가 전사 작업에 참여, 오탈자 발견 시 이메일로 수정 제안 가능
- 번역의 정확성 문제로 현재는 새로운 번역 자원 모집 중단
원고 간 연결 및 요약
- Diethard Michaelis가 작성한 EWD 간 상호 참조 목록 제공, 독자 참여로 보완 가능
- 다익스트라는 동일 주제를 반복적으로 다루며 새로운 관점을 제시했으며, 관련 문서에는 “see also” 링크로 연결
- Günter Rote의 제안으로 EWD 요약문 추가 시작, 특히 네덜란드어 원고의 영어 요약 기여를 환영
저작권
- 대부분의 EWD 저작권은 다익스트라의 자녀들이 보유하며, Rutger M. Dijkstra가 재출판 허가 요청을 담당
- 출판된 문서는 해당 출판사가 저작권 보유, 목록과 표지 정보 제공
- 원본은 브리스코 미국사 센터 소유로, 센터의 출판 허가 정책이 적용
영상 및 오디오 자료
- 다익스트라의 강연 및 인터뷰 녹화본을 별도 페이지에서 제공
다익스트라와 그의 작업 관련 자료
- 1985년 Rogier F. van Vlissingen 인터뷰 및 개인 회고, 2001년 Philip L. Frana 인터뷰 기록 제공
- 1999년 은퇴를 기념해 2000년 생일에 열린 심포지엄 “In Pursuit of Simplicity” 프로그램과 영상 공개
- 2002년 사망 후 여러 추모 기사와 기념 행사가 진행
- 2008년 Maarten van Emden의 회고문, 2021년 Krzysztof R. Apt와 Tony Hoare가 편집한 추모집 발간
- Edgar G. Daylight가 운영하는 블로그 Dijkstra’s Cry에서 다익스트라의 사상과 연구를 지속적으로 다룸
- EWD249에서 제시된 “조립라인 원리”를 통해 효율성과 메모리 절약 간 균형을 설명한 사례 언급
- Edsger W. Dijkstra Prize in Distributed Computing은 동시성 원리와 자기 안정화 연구 등 그의 기초적 업적을 기림
다익스트라 기념 강연 시리즈
- 2010년 10월부터 텍사스대학교에서 매년 열리는 Dijkstra Memorial Lectures 개최
사이트 정보
- 최근 변경 내역은 2021년 3월 30일자 업데이트로 명시
- 사이트 구축에 기여한 인물 명단과 피드백용 이메일 주소 제공
관련 사이트
- Discipline in Thought: 계산적 사고와 수학적 방법론을 다루며, 다익스트라의 전통을 계승하는 웹사이트 소개
원문 개정일: 2020년 1월 12일
Hacker News 의견
-
2025년 맥락에서 가장 중요한 글은 “natural language programming의 어리석음” 에 대한 Dijkstra의 에세이임
On the foolishness of "natural language programming"- 링크 고마움. 정말 흥미로운 글이었음. Dijkstra가 em-dash를 자주 쓴다는 것도 재밌게 봤음
- 현대의 코딩 LLM이 일종의 자연어 컴파일러처럼 작동한다는 점을 감안하더라도, 기존 프로그래밍 언어가 자연어를 너무 적게 쓴다고 생각함
예를 들어&&대신and,if (A) B대신if A then B가 더 읽기 쉬움
수학은 간결함에 치중했지만, 프로그래밍은 가독성을 중시한 덕분에 더 나은 균형을 가졌다고 봄
Dijkstra가 “가독성만 추구하는 건 나쁜 거래”라고 말한 것이라면 그건 옳은 지적임 - 이 에세이를 정말 사랑함. 짧지만 사회 전반에 대한 통찰이 담겨 있음
그리고 너무나 명확하게 옳음 - “프로그래밍의 용이함”을 “실수를 눈치채지 못하게 만드는 용이함”으로 착각하는 사람들에 대한 문장이 정말 강하게 와닿음
동적 타이핑을 좋아하는 사람들에게 특히 해당됨
-
Dijkstra가 1980년대에 이미 “교육이 지적 훈련에서 멀어지면서 언어 구사력이 떨어지고 있다”고 썼다는 점이 놀라움
네덜란드에서는 학생 통과율로 커리큘럼을 평가해서, 통과율이 낮으면 난이도를 낮추는 식이라 함
이게 수십 년 반복되면 어떤 결과가 나올지 뻔함- 남아프리카공화국이 그 대표적인 예임. 교육 시스템이 국가 전체적으로 붕괴 중임
-
내가 자주 공유하는 글 중 하나는 EWD831임
배열 인덱스가 왜 0부터 시작해야 하는지, 구간을 왜 하한 포함·상한 제외로 정의해야 하는지를 설명함- 하지만 그 글이 항상 0-based vs 1-based 논쟁에서 등장하는 게 아쉬움
사실 1-based가 더 나은 경우도 있음. 예를 들어 역방향 반복에서는 1-based가 더 자연스러움
오프셋은 0-based, 인덱스는 1-based로 구분하는 게 합리적이라는 주장도 가능함
관련 글: Again on 0-based vs 1-based indexing - Dijkstra의 주장을 이해하지만, 왜 Fortran이 1부터 시작했는지를 언급하지 않은 건 의외였음
IBM 704의 감산형 인덱스 레지스터 구조 때문이었고, 이게 열 우선 배열을 효율적으로 만들었음
Cray, CUDA, 현대의 column-oriented DB도 비슷한 원리를 사용함
결국 Fortran은 메모리 오프셋 관점에서는 Dijkstra의 규칙을 따르고 있었음
- 하지만 그 글이 항상 0-based vs 1-based 논쟁에서 등장하는 게 아쉬움
-
책의 장(chapter)을 0부터 시작하는 건 여전히 헷갈림
메모리 주소가 0부터 시작하는 건 전압 조합 때문이지, 순서 개념 때문은 아님
세상에는 “0번째 세기”나 “0번째 마일” 같은 건 없으니까, 책의 장도 마찬가지라고 생각함- 하지만 “0번째 장”은 시작점을 의미한다고 볼 수 있음
예를 들어 길 안내에서 “세 블록 가세요”라고 하면 출발점은 0번째 블록임 - 컴퓨터 과학에서는 첫 번째 요소의 주소가
base + 0이므로, 오프셋 계산 때문에 0부터 시작함 - “0장”은 본문 전에 필요한 기초 개념을 담는 용도로 자연스럽게 쓰임
예를 들어 1968년의 Tensor Analysis on Manifolds는 집합론을 다루는 0장을 두었음
“0번째 법칙(zeroth law of thermodynamics)”처럼, 기존 순서보다 앞선 개념을 표현할 때도 사용됨 - 어떤 나라에서는 건물 층수를 0층(G층) 부터 세기도 함
결국 0에서 시작하는 게 “자연스럽지 않다”는 건 문화적 편향일 뿐임
- 하지만 “0번째 장”은 시작점을 의미한다고 볼 수 있음
-
Dijkstra가 최초의 인터럽트 설계를 회상하는 글을 정말 즐겨 읽음
EWD1303: The first interrupt -
수학적 사고에 관심 있다면 EWD717과 EWD765를 추천함
두 글 모두 흥미로운 문제 해결 과정을 담고 있음 -
EWD498: How do we tell truths that might hurt?을 보면
“자연어 프로그래밍은 실패할 수밖에 없다”는 구절이 인상적임
또 다른 추천은 EWD1305로,
학생들의 질문에 대한 답변을 모은 글임
Dijkstra는 인터넷의 인기로 인해 과학적 성향이 약한 학생들이 컴퓨터 과학으로 몰려들었다고 비판함
그리고 “잘 프로그래밍하는 법”이 거의 가르쳐지지 않는 현실을 지적함- Dijkstra는 정말 통찰력 있는 인물이었음
-
내가 가장 좋아하는 글 중 하나는 EWD898: Threats to computer science임
그리고 EWD899의 서두에서 AI 논문을 신랄하게 비판하는 부분도 인상적임
“그 학회에 참석하지 않아서 다행이었다”는 문장이 특히 강렬했음 -
예전에 명함 뒷면에 Dijkstra의 명언을 넣었음
“Computer Science is no more about computers than astronomy is about telescopes”
언젠가 그의 모든 글을 eReader용으로 모아 여행 중에 읽어볼 생각임- “그렇지만 천문학은 ‘망원경학’이라고 부르지 않잖아요?”라는 농담이 떠오름
- 하지만 우리 대부분은 망원경 조작자이지, 천문학자가 아님
결국 우리가 다루는 건 코드(망원경)이고, 그 품질이 우리의 성과임
-
UT에서 수업을 들었는데, Dijkstra는 학생들에게 연필 대신 펜으로 시험을 보게 했음
지울 수 없을 때 오히려 실수를 줄이는 훈련이 된다고 생각했음