2 điểm bởi GN⁺ 2025-11-10 | 1 bình luận | Chia sẻ qua WhatsApp
  • Kho lưu trữ trực tuyến bảo tồn các nghiên cứu và trước tác của Edsger W. Dijkstra, một trong những người thuộc thế hệ khai sáng của khoa học máy tính
  • Bao gồm các đóng góp ở những lĩnh vực cốt lõi như thiết kế thuật toán, ngôn ngữ lập trình, hệ điều hành, xử lý phân tán, kiểm chứng hình thức
  • Công bố hơn 1.000 bản thảo được đánh số EWD được viết trong hơn 40 năm dưới dạng PDF, đồng thời cung cấp bản chép lại và bản dịch có thể tìm kiếm
  • Sắp xếp có hệ thống các tài liệu bổ sung như tham chiếu chéo giữa các bản thảo, bản tóm tắt, thông tin bản quyền, video bài giảng và phỏng vấn
  • Là nền tảng tri thức dẫn tới chuỗi bài giảng tưởng niệm và cộng đồng nghiên cứu liên quan, tiếp nối tư tưởng và triết lý giáo dục của Dijkstra

Cuộc đời và thành tựu của Dijkstra

  • Edsger Wybe Dijkstra là một trong những nhân vật đặt nền móng cho khoa học máy tính, để lại những đóng góp nền tảng trong nhiều lĩnh vực như thiết kế thuật toán, ngôn ngữ lập trình, hệ điều hành, xử lý phân tán, đặc tả hình thức và thiết kế lập luận toán học
  • Trong hơn 40 năm sự nghiệp trải rộng giữa học thuật và công nghiệp, ông đã nhận được nhiều giải thưởng, bao gồm ACM Turing Award
  • Ông cũng quan tâm sâu sắc đến mối quan hệ giữa giáo dục, khoa học máy tính hàn lâm và ngành công nghiệp phần mềm

Bộ sưu tập bản thảo EWD

  • Trong hơn 40 năm, Dijkstra tích cực trao đổi thư từ với các đồng nghiệp khoa học và phát hành các ghi chú kỹ thuật, báo cáo chuyến đi, bình luận được đánh số liên tiếp dưới tên gọi “EWDs”
  • Nhờ máy photocopy phổ biến và mức độ quan tâm cao, số bản lưu hành không chính thức đã lên tới hàng nghìn bản
  • Phần lớn các bản thảo chưa từng được xuất bản, nhưng Khoa Khoa học Máy tính của Đại học Texas đã lưu trữ vĩnh viễn hơn 1.000 tài liệu PDF dạng bitmap
  • Các bản thảo gốc, nhật ký, thư từ, ảnh và tư liệu khác được lưu giữ tại Briscoe Center for American History của Đại học Texas

Chỉ mục và cách truy cập

  • Có hai loại chỉ mục
    • Chỉ mục BibTeX: bao gồm thông tin thư mục
    • Chỉ mục ad-hoc: chỉ hiển thị tiêu đề để tìm kiếm nhanh
  • Cung cấp bảng đối chiếu giữa số EWD và năm phát hành, các liên kết tới báo cáo kỹ thuật của Trung tâm Toán học (CWI), luận án tiến sĩ và các tài liệu khác
  • Một số bản thảo đã được xuất bản, và bản quyền của các tài liệu đó thuộc về nhà xuất bản

Chép lại và dịch thuật

  • Bản chép lại có thể tìm kiếm dành cho người khiếm thị đang dần được bổ sung
  • Một số bản thảo tiếng Hà Lan đã được dịch sang tiếng Anh, EWD1036 sang tiếng Tây Ban Nha, và EWD28 sang tiếng Nga
  • Hơn 60 tình nguyện viên đã tham gia công việc chép lại, và nếu phát hiện lỗi đánh máy thì có thể đề xuất chỉnh sửa qua email
  • Do vấn đề về độ chính xác của bản dịch, hiện tại việc tuyển thêm nguồn lực dịch mới đã tạm dừng

Liên kết giữa các bản thảo và bản tóm tắt

  • Có cung cấp danh sách tham chiếu chéo giữa các EWD do Diethard Michaelis biên soạn, và có thể được bổ sung với sự tham gia của độc giả
  • Dijkstra thường lặp lại cùng một chủ đề nhưng đưa ra góc nhìn mới, và các tài liệu liên quan được nối với nhau bằng liên kết “see also”
  • Theo đề xuất của Günter Rote, việc bổ sung phần tóm tắt EWD đã được bắt đầu, đặc biệt hoan nghênh các bản tóm tắt tiếng Anh cho những bản thảo tiếng Hà Lan

Bản quyền

  • Bản quyền của phần lớn các EWD thuộc về các con của Dijkstra, và Rutger M. Dijkstra phụ trách các yêu cầu xin phép tái bản
  • Các tài liệu đã xuất bản do nhà xuất bản tương ứng nắm giữ bản quyền, kèm danh sách và thông tin trang bìa
  • Bản gốc thuộc sở hữu của Briscoe Center for American History, và áp dụng chính sách cấp phép xuất bản của trung tâm

Tư liệu video và âm thanh

  • Các bản ghi bài giảng và phỏng vấn của Dijkstra được cung cấp trên một trang riêng

Tài liệu liên quan đến Dijkstra và công trình của ông

  • Cung cấp bản phỏng vấn năm 1985 với Rogier F. van Vlissingen cùng hồi ức cá nhân, và biên bản phỏng vấn năm 2001 của Philip L. Frana
  • Công bố chương trình và video của hội thảo chuyên đề “In Pursuit of Simplicity” được tổ chức vào sinh nhật năm 2000 để kỷ niệm việc nghỉ hưu năm 1999 của ông
  • Sau khi ông qua đời năm 2002, đã có nhiều bài viết tưởng niệm và sự kiện kỷ niệm được tổ chức
  • Có bài hồi tưởng năm 2008 của Maarten van Emden, cùng tuyển tập tưởng niệm xuất bản năm 2021 do Krzysztof R. AptTony Hoare biên tập
  • Blog Dijkstra’s Cry do Edgar G. Daylight vận hành tiếp tục bàn về tư tưởng và nghiên cứu của Dijkstra
  • Có nhắc tới ví dụ giải thích sự cân bằng giữa hiệu quả và tiết kiệm bộ nhớ thông qua “nguyên lý dây chuyền lắp ráp” được nêu trong EWD249
  • Edsger W. Dijkstra Prize in Distributed Computing tôn vinh những thành tựu nền tảng của ông như các nguyên lý đồng thời và nghiên cứu về tự ổn định

Chuỗi bài giảng tưởng niệm Dijkstra

  • Từ tháng 10 năm 2010, Đại học Texas tổ chức thường niên Dijkstra Memorial Lectures

Thông tin về website

  • Lịch sử thay đổi gần đây nhất được ghi là bản cập nhật ngày 30 tháng 3 năm 2021
  • Có cung cấp danh sách những người đóng góp xây dựng website và địa chỉ email để gửi phản hồi

Các website liên quan

  • Discipline in Thought: giới thiệu một website bàn về tư duy tính toán và phương pháp luận toán học, tiếp nối truyền thống của Dijkstra

Ngày chỉnh sửa bản gốc: 12 tháng 1 năm 2020

1 bình luận

 
GN⁺ 2025-11-10
Ý kiến trên Hacker News
  • Trong bối cảnh năm 2025, bài viết quan trọng nhất có lẽ là tiểu luận của Dijkstra về "sự ngu ngốc của natural language programming"
    On the foolishness of "natural language programming"

    • Cảm ơn vì đường link. Bài này thực sự rất thú vị. Tôi cũng thấy vui khi để ý rằng Dijkstra dùng em-dash rất thường xuyên
    • Ngay cả khi xét đến việc các LLM viết code hiện đại hoạt động như một kiểu trình biên dịch ngôn ngữ tự nhiên, tôi vẫn nghĩ các ngôn ngữ lập trình hiện nay dùng quá ít ngôn ngữ tự nhiên
      Ví dụ, and dễ đọc hơn &&, và if A then B dễ đọc hơn if (A) B
      Toán học thiên về sự cô đọng, nhưng theo tôi lập trình có được thế cân bằng tốt hơn nhờ coi trọng tính dễ đọc
      Nếu điều Dijkstra muốn nói là “chỉ theo đuổi tính dễ đọc là một cuộc đánh đổi tệ”, thì đó là một nhận định đúng
    • Tôi thật sự rất thích tiểu luận này. Nó ngắn, nhưng chứa đựng cái nhìn sâu sắc về toàn xã hội
      Và nó đúng một cách đáng kinh ngạc
    • Câu nói về những người nhầm lẫn “sự dễ dàng của việc lập trình” với “sự dễ dàng khiến bạn không nhận ra sai sót” thực sự đánh mạnh vào tôi
      Điều này đặc biệt đúng với những người thích dynamic typing
  • Thật đáng ngạc nhiên khi Dijkstra đã viết từ thập niên 1980 rằng “giáo dục đang rời xa việc rèn luyện trí tuệ, kéo theo năng lực sử dụng ngôn ngữ suy giảm”
    Ở Hà Lan, người ta đánh giá chương trình học theo tỷ lệ học sinh vượt qua, nên nếu tỷ lệ đỗ thấp thì sẽ hạ độ khó xuống
    Chuyện gì xảy ra nếu lặp lại điều này suốt hàng chục năm thì quá rõ ràng

    • Nam Phi là một ví dụ điển hình cho điều đó. Hệ thống giáo dục ở đây đang sụp đổ trên quy mô toàn quốc
  • Một trong những bài tôi thường chia sẻ là EWD831
    Nó giải thích vì sao chỉ số mảng nên bắt đầu từ 0, và vì sao khoảng nên được định nghĩa theo kiểu bao gồm cận dưới, loại trừ cận trên

    • Nhưng tôi thấy tiếc khi bài đó lúc nào cũng bị lôi vào tranh luận 0-based vs 1-based
      Thực ra cũng có những trường hợp 1-based tốt hơn. Ví dụ, trong lặp ngược, 1-based tự nhiên hơn
      Cũng có thể lập luận rằng nên tách biệt offset là 0-based còn index là 1-based
      Bài liên quan: Again on 0-based vs 1-based indexing
    • Tôi hiểu lập luận của Dijkstra, nhưng vẫn thấy lạ là ông không nhắc đến lý do Fortran bắt đầu từ 1
      Đó là vì kiến trúc thanh ghi chỉ số kiểu trừ dần của IBM 704, và điều này giúp mảng column-major hoạt động hiệu quả
      Cray, CUDA và các DB hướng cột hiện đại cũng dùng nguyên lý tương tự
      Xét từ góc độ offset bộ nhớ, Fortran rốt cuộc vẫn đang tuân theo quy tắc của Dijkstra
  • Việc đánh số chương sách bắt đầu từ 0 đến giờ vẫn khiến tôi thấy khó hiểu
    Địa chỉ bộ nhớ bắt đầu từ 0 là do tổ hợp điện áp, chứ không phải vì khái niệm thứ tự
    Ngoài đời đâu có thứ như “thế kỷ thứ 0” hay “dặm thứ 0”, nên tôi nghĩ chương sách cũng vậy

    • Nhưng “chương 0” có thể được xem là điểm khởi đầu
      Ví dụ, nếu chỉ đường mà nói “đi ba dãy nhà”, thì điểm xuất phát chính là dãy nhà thứ 0
    • Trong khoa học máy tính, địa chỉ của phần tử đầu tiên là base + 0, nên người ta bắt đầu từ 0 vì tính toán offset
    • “Chương 0” cũng được dùng rất tự nhiên để chứa các khái niệm nền tảng cần có trước phần chính
      Ví dụ, Tensor Analysis on Manifolds năm 1968 có một chương 0 nói về lý thuyết tập hợp
      Tương tự như “định luật thứ không (zeroth law of thermodynamics)”, nó cũng được dùng để biểu đạt một khái niệm có trước trật tự sẵn có
    • Ở một số quốc gia, số tầng trong tòa nhà cũng được đếm từ tầng 0 (tầng G)
      Suy cho cùng, việc cho rằng bắt đầu từ 0 là “không tự nhiên” chỉ là thiên kiến văn hóa
  • Tôi rất thích đọc bài Dijkstra hồi tưởng về thiết kế ngắt đầu tiên
    EWD1303: The first interrupt

  • Nếu bạn quan tâm đến tư duy toán học, tôi khuyên đọc EWD717EWD765
    Cả hai đều ghi lại những quá trình giải quyết vấn đề rất thú vị

  • Trong EWD498: How do we tell truths that might hurt?
    câu “natural language programming chắc chắn sẽ thất bại” để lại ấn tượng mạnh
    Một gợi ý khác là EWD1305,
    một bài tập hợp các câu trả lời cho thắc mắc của sinh viên
    Dijkstra chỉ trích việc sự phổ biến của Internet đã khiến những sinh viên ít thiên hướng khoa học đổ xô vào khoa học máy tính
    Và ông chỉ ra thực tế rằng người ta gần như không dạy cách “lập trình cho tốt”

    • Dijkstra thật sự là một con người đầy thấu suốt
  • Một trong những bài tôi thích nhất là EWD898: Threats to computer science
    Và phần mở đầu của EWD899, nơi ông chê bai gay gắt một bài báo AI, cũng rất ấn tượng
    Câu “thật may vì tôi đã không tham dự hội nghị đó” đặc biệt mạnh

  • Trước đây tôi từng in một câu nói nổi tiếng của Dijkstra ở mặt sau danh thiếp
    Computer Science is no more about computers than astronomy is about telescopes
    Một ngày nào đó tôi muốn gom toàn bộ bài viết của ông vào máy đọc sách để vừa đi đường vừa đọc

    • Câu đùa “Nhưng người ta đâu gọi thiên văn học là ‘kính viễn vọng học’?” hiện lên trong đầu tôi
    • Nhưng phần lớn chúng ta là người vận hành kính viễn vọng, chứ không phải nhà thiên văn học
      Suy cho cùng, thứ chúng ta xử lý là code (chiếc kính viễn vọng), và chất lượng của nó quyết định thành quả của chúng ta
  • Tôi từng học một lớp ở UT, và Dijkstra bắt sinh viên làm bài thi bằng bút mực thay vì bút chì
    Ông tin rằng khi không thể tẩy xóa, đó lại là cách rèn luyện để giảm bớt sai lầm