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의 규칙을 따르고 있었음
  • 책의 장(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에서 시작하는 게 “자연스럽지 않다”는 건 문화적 편향일 뿐임
  • Dijkstra가 최초의 인터럽트 설계를 회상하는 글을 정말 즐겨 읽음
    EWD1303: The first interrupt

  • 수학적 사고에 관심 있다면 EWD717EWD765를 추천함
    두 글 모두 흥미로운 문제 해결 과정을 담고 있음

  • 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는 학생들에게 연필 대신 펜으로 시험을 보게 했음
    지울 수 없을 때 오히려 실수를 줄이는 훈련이 된다고 생각했음