2 คะแนน โดย GN⁺ 2025-11-10 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • คลังออนไลน์ที่เก็บรักษางานวิจัยและงานเขียนของ Edsger W. Dijkstra หนึ่งในผู้บุกเบิกยุคก่อตั้งวิทยาการคอมพิวเตอร์
  • ครอบคลุมผลงานในสาขาหลัก เช่น การออกแบบอัลกอริทึม, ภาษาโปรแกรม, ระบบปฏิบัติการ, การประมวลผลแบบกระจาย, การตรวจพิสูจน์เชิงรูปแบบ
  • เปิดเผยต้นฉบับหมายเลข EWD ที่เขียนตลอดกว่า 40 ปีมากกว่า 1,000 ชิ้นในรูปแบบ PDF พร้อม ฉบับถอดความและฉบับแปล ที่ค้นหาได้
  • จัดระเบียบข้อมูลเสริมอย่างเป็นระบบ เช่น การอ้างอิงข้ามระหว่างต้นฉบับ, บทสรุป, ข้อมูลลิขสิทธิ์, วิดีโอบรรยายและสัมภาษณ์
  • เป็นฐานความรู้ที่เชื่อมต่อไปยัง ชุดปาฐกถาที่ระลึก และชุมชนวิจัยที่สืบทอดแนวคิดกับปรัชญาการศึกษาของ Dijkstra

ชีวิตและผลงานของ Dijkstra

  • Edsger Wybe Dijkstra เป็นหนึ่งในบุคคลสำคัญที่วางรากฐานให้วิทยาการคอมพิวเตอร์ โดยสร้างคุณูปการระดับพื้นฐานในหลายด้าน เช่น การออกแบบอัลกอริทึม ภาษาโปรแกรม ระบบปฏิบัติการ การประมวลผลแบบกระจาย ข้อกำหนดเชิงรูปแบบ และการออกแบบการพิสูจน์ทางคณิตศาสตร์
  • ตลอดเส้นทางอาชีพกว่า 40 ปีที่ครอบคลุมทั้งภาควิชาการและอุตสาหกรรม เขาได้รับรางวัลมากมาย รวมถึง ACM Turing Award
  • เขายังให้ความสนใจอย่างลึกซึ้งต่อความสัมพันธ์ระหว่างการศึกษา วิทยาการคอมพิวเตอร์เชิงวิชาการ และอุตสาหกรรมซอฟต์แวร์

คอลเลกชันต้นฉบับ EWD

  • ตลอดเวลากว่า 40 ปี Dijkstra ติดต่อโต้ตอบกับเพื่อนนักวิทยาศาสตร์อย่างคึกคัก และเผยแพร่ บันทึกเชิงเทคนิค รายงานการเดินทาง และข้อคิดเห็นที่มีหมายเลขต่อเนื่อง ภายใต้ชื่อ “EWDs”
  • ด้วยการแพร่หลายของเครื่องถ่ายเอกสารและความสนใจที่สูง การแจกจ่ายแบบไม่เป็นทางการจึงมีจำนวนถึงหลายพันฉบับ
  • แม้ต้นฉบับส่วนใหญ่จะไม่เคยตีพิมพ์ แต่ภาควิชาวิทยาการคอมพิวเตอร์แห่งมหาวิทยาลัยเท็กซัสได้ เก็บถาวรมากกว่า 1,000 ชิ้นอย่างถาวรในรูปเอกสาร PDF แบบบิตแมป
  • ต้นฉบับต้นทาง สมุดบันทึก จดหมาย และภาพถ่าย ถูกเก็บรักษาไว้ที่ Briscoe Center for American History ของมหาวิทยาลัยเท็กซัส

ดัชนีและวิธีเข้าถึง

  • มีดัชนีให้สองแบบ
    • ดัชนี BibTeX: มีข้อมูลบรรณานุกรม
    • ดัชนีเฉพาะกิจ (Ad-hoc): แสดงเฉพาะชื่อเรื่องเพื่อให้ค้นหาได้รวดเร็ว
  • มีตารางเทียบหมายเลข EWD กับปีที่เผยแพร่ รวมถึงลิงก์ไปยังรายงานทางเทคนิคของศูนย์คณิตศาสตร์ (CWI) วิทยานิพนธ์ปริญญาเอก และเอกสารอื่น ๆ
  • ต้นฉบับบางส่วนได้รับการตีพิมพ์แล้ว และ ลิขสิทธิ์ของเอกสารเหล่านั้นเป็นของสำนักพิมพ์

การถอดความและการแปล

  • มีการเพิ่ม ฉบับถอดความที่ค้นหาได้ เพื่อผู้พิการทางสายตาอย่างต่อเนื่อง
  • ต้นฉบับภาษาดัตช์บางส่วนถูกแปลเป็นอังกฤษ, EWD1036 เป็น ภาษาสเปน, และ EWD28 เป็น ภาษารัสเซีย
  • มี อาสาสมัคร มากกว่า 60 คนเข้าร่วมงานถอดความ และหากพบข้อผิดพลาดสามารถส่งอีเมลเสนอแก้ไขได้
  • ขณะนี้ได้หยุดรับทรัพยากรแปลใหม่ชั่วคราว เนื่องจากปัญหาเรื่องความถูกต้องของคำแปล

การเชื่อมโยงระหว่างต้นฉบับและบทสรุป

  • มี รายการอ้างอิงข้ามระหว่าง EWD ที่จัดทำโดย Diethard Michaelis และผู้อ่านสามารถช่วยเพิ่มเติมได้
  • Dijkstra มักกลับมาพูดถึงหัวข้อเดิมซ้ำพร้อมนำเสนอมุมมองใหม่ ๆ และเอกสารที่เกี่ยวข้องจะเชื่อมโยงกันด้วยลิงก์ “see also”
  • ตามข้อเสนอของ Günter Rote จึงเริ่มมีการเพิ่มบทสรุปของ EWD โดยเฉพาะอย่างยิ่งยินดีรับบทสรุปภาษาอังกฤษของต้นฉบับภาษาดัตช์

ลิขสิทธิ์

  • ลิขสิทธิ์ของ EWD ส่วนใหญ่เป็นของ บุตรของ Dijkstra และ Rutger M. Dijkstra เป็นผู้รับผิดชอบคำขออนุญาตเผยแพร่ซ้ำ
  • เอกสารที่ตีพิมพ์แล้วนั้น สำนักพิมพ์ เป็นผู้ถือครองลิขสิทธิ์ และมีการให้รายชื่อพร้อมข้อมูลหน้าปก
  • ต้นฉบับต้นทางเป็นทรัพย์สินของ Briscoe Center for American History และอยู่ภายใต้นโยบายอนุญาตเผยแพร่ของศูนย์

สื่อวิดีโอและเสียง

  • มีหน้าแยกสำหรับ บันทึกการบรรยายและการสัมภาษณ์ ของ Dijkstra

แหล่งข้อมูลเกี่ยวกับ Dijkstra และผลงานของเขา

  • มีบันทึกการสัมภาษณ์ปี 1985 ของ Rogier F. van Vlissingen พร้อมความทรงจำส่วนตัว และบันทึกการสัมภาษณ์ปี 2001 ของ Philip L. Frana
  • มีการเผยแพร่โปรแกรมและวิดีโอของงานสัมมนา “In Pursuit of Simplicity” ซึ่งจัดขึ้นในวันเกิดปี 2000 เพื่อฉลองการเกษียณของเขาในปี 1999
  • หลังการเสียชีวิตในปี 2002 มี บทความรำลึกและงานที่ระลึก หลายรายการตามมา
  • มีบทความรำลึกของ Maarten van Emden ในปี 2008 และหนังสือรวมบทความรำลึกที่เรียบเรียงโดย Krzysztof R. Apt และ Tony Hoare ในปี 2021
  • บล็อก Dijkstra’s Cry ที่ดูแลโดย Edgar G. Daylight นำเสนอแนวคิดและงานวิจัยของ Dijkstra อย่างต่อเนื่อง
  • มีการกล่าวถึงตัวอย่างจาก EWD249 ที่ใช้อธิบายสมดุลระหว่างประสิทธิภาพกับการประหยัดหน่วยความจำผ่าน “หลักการสายการประกอบ”
  • Edsger W. Dijkstra Prize in Distributed Computing จัดขึ้นเพื่อยกย่องผลงานรากฐานของเขา เช่น หลักการของภาวะพร้อมกันและงานวิจัยด้าน self-stabilization

ชุดปาฐกถาที่ระลึก Dijkstra

  • มีการจัด Dijkstra Memorial Lectures เป็นประจำทุกปีที่มหาวิทยาลัยเท็กซัสตั้งแต่เดือนตุลาคม ปี 2010

ข้อมูลเว็บไซต์

  • ระบุว่าการเปลี่ยนแปลงล่าสุดคือการอัปเดตเมื่อวันที่ 30 มีนาคม 2021
  • มีรายชื่อผู้มีส่วนร่วมในการจัดทำเว็บไซต์และที่อยู่อีเมลสำหรับส่งข้อเสนอแนะ

เว็บไซต์ที่เกี่ยวข้อง

  • Discipline in Thought: แนะนำเว็บไซต์ที่ว่าด้วยการคิดเชิงคำนวณและระเบียบวิธีทางคณิตศาสตร์ ซึ่งสืบทอดแนวทางของ Dijkstra

แก้ไขต้นฉบับล่าสุด: 12 มกราคม 2020

1 ความคิดเห็น

 
GN⁺ 2025-11-10
ความคิดเห็นบน Hacker News
  • สำหรับบริบทของปี 2025 งานเขียนที่สำคัญที่สุดน่าจะเป็นบทความของ Dijkstra ว่าด้วย "ความงี่เง่าของ natural language programming"
    On the foolishness of "natural language programming"

    • ขอบคุณสำหรับลิงก์ เป็นบทความที่น่าสนใจมาก และผมก็ชอบที่เห็นว่า Dijkstra ใช้ em-dash บ่อยด้วย
    • ถึงแม้ว่า coding LLM สมัยใหม่จะทำงานคล้ายคอมไพเลอร์สำหรับภาษาธรรมชาติอยู่บ้าง แต่ผมก็ยังคิดว่าภาษาโปรแกรมแบบเดิมใช้ภาษาธรรมชาติน้อยเกินไป
      เช่น ใช้ and แทน &&, หรือ if A then B แทน if (A) B อ่านง่ายกว่า
      คณิตศาสตร์เน้นความกระชับ แต่ผมมองว่าการเขียนโปรแกรมมีสมดุลที่ดีกว่าเพราะให้ความสำคัญกับ ความอ่านง่าย
      ถ้าสิ่งที่ Dijkstra หมายถึงคือ “การไล่ตามความอ่านง่ายอย่างเดียวเป็นการแลกเปลี่ยนที่ไม่คุ้ม” ก็ถือว่าเขาชี้ประเด็นได้ถูกต้อง
    • ผมชอบบทความนี้มากจริงๆ สั้น แต่เต็มไปด้วยข้อคิดเกี่ยวกับ สังคมโดยรวม
      และมันถูกต้องอย่างชัดเจนมาก
    • ประโยคเกี่ยวกับคนที่สับสนระหว่าง “ความง่ายของการเขียนโปรแกรม” กับ “ความง่ายที่ทำให้คุณไม่ทันสังเกตความผิดพลาด” กระแทกใจมาก
      โดยเฉพาะกับคนที่ชอบ dynamic typing
  • น่าทึ่งที่ Dijkstra เขียนไว้ตั้งแต่ช่วงทศวรรษ 1980 แล้วว่า “การศึกษากำลังห่างจากการฝึกฝนทางปัญญา และความสามารถในการใช้ภาษาก็กำลังถดถอย”
    ในเนเธอร์แลนด์มีการประเมินหลักสูตรจากอัตราการผ่านของนักเรียน ถ้าอัตราผ่านต่ำก็ลดความยากลง
    ถ้าทำแบบนี้ซ้ำกันหลายสิบปี ผลจะออกมาอย่างไรก็เดาได้ไม่ยาก

    • แอฟริกาใต้เป็นตัวอย่างชัดเจน ระบบการศึกษากำลัง ล่มสลายในระดับประเทศ
  • หนึ่งในบทความที่ผมแชร์บ่อยคือ EWD831
    อธิบายว่าทำไมดัชนีอาร์เรย์ควรเริ่มที่ 0 และทำไมช่วงค่าจึงควรกำหนดแบบ รวมขอบล่าง ไม่รวมขอบบน

    • แต่ก็น่าเสียดายที่บทความนี้มักจะถูกยกมาในดีเบตเรื่อง 0-based vs 1-based อยู่เสมอ
      จริงๆ แล้วบางกรณี 1-based ก็อาจดีกว่า เช่นในการ วนซ้ำย้อนกลับ 1-based ดูเป็นธรรมชาติกว่า
      จะโต้แย้งว่าควรแยก offset เป็น 0-based และ index เป็น 1-based ก็ยังได้
      บทความที่เกี่ยวข้อง: Again on 0-based vs 1-based indexing
    • ผมเข้าใจเหตุผลของ Dijkstra แต่ก็แปลกใจที่เขาไม่ได้พูดถึงว่าทำไม Fortran ถึงเริ่มจาก 1
      มันเป็นเพราะ สถาปัตยกรรม subtractive index register ของ IBM 704 และสิ่งนี้ทำให้ column-major array มีประสิทธิภาพ
      Cray, CUDA และฐานข้อมูลแบบ column-oriented สมัยใหม่ก็ใช้หลักการคล้ายกัน
      สุดท้ายแล้ว Fortran ก็ยังทำตามกฎของ Dijkstra ในมุมมองของ memory offset
  • การเริ่มหมายเลข chapter ของหนังสือจาก 0 ยังทำให้ผมสับสนอยู่เสมอ
    การที่ memory address เริ่มจาก 0 เป็นเรื่องของการจัดชุดแรงดันไฟฟ้า ไม่ใช่เรื่องของ แนวคิดเรื่องลำดับ
    ในโลกนี้ไม่มี “ศตวรรษที่ 0” หรือ “ไมล์ที่ 0” ดังนั้น chapter ของหนังสือก็น่าจะเหมือนกัน

    • แต่ “chapter 0” ก็อาจตีความได้ว่าเป็น จุดเริ่มต้น
      เช่น ถ้ามีคนบอกทางว่า “เดินไปสามบล็อก” จุดออกตัวก็คือบล็อกที่ 0
    • ในวิทยาการคอมพิวเตอร์ address ขององค์ประกอบแรกคือ base + 0 จึงเริ่มจาก 0 เพราะ การคำนวณ offset
    • “บทที่ 0” ใช้อย่างเป็นธรรมชาติสำหรับใส่ แนวคิดพื้นฐาน ที่จำเป็นก่อนเข้าเนื้อหาหลัก
      ตัวอย่างเช่น Tensor Analysis on Manifolds ปี 1968 มีบทที่ 0 สำหรับทฤษฎีเซต
      เช่นเดียวกับ “กฎข้อที่ศูนย์ (zeroth law of thermodynamics)” ที่ใช้แสดงแนวคิดซึ่งมาก่อนลำดับที่มีอยู่แล้ว
    • ในบางประเทศ ชั้นของอาคารก็นับจาก ชั้น 0 (G ชั้น)
      สุดท้ายแล้วการบอกว่าการเริ่มจาก 0 “ไม่เป็นธรรมชาติ” ก็เป็นเพียง อคติทางวัฒนธรรม เท่านั้น
  • ผมชอบอ่านงานที่ Dijkstra ย้อนความถึง การออกแบบ interrupt ครั้งแรก มาก
    EWD1303: The first interrupt

  • ถ้าคุณสนใจการคิดแบบคณิตศาสตร์ ผมแนะนำ EWD717 และ EWD765
    ทั้งสองชิ้นบันทึก กระบวนการแก้ปัญหา ที่น่าสนใจไว้

  • ใน EWD498: How do we tell truths that might hurt?
    วลี “natural language programming ย่อมล้มเหลวอย่างหลีกเลี่ยงไม่ได้” น่าประทับใจมาก
    อีกชิ้นที่แนะนำคือ 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 ให้เด็กทำข้อสอบด้วย ปากกาแทนดินสอ
    เขาคิดว่าเมื่อมันลบไม่ได้ ก็จะเป็นการฝึกให้ ทำผิดพลาดน้อยลง