[hide=5]เมื่อคืนวาน (9 ส.ค. 02) ผมเข้า Internet ไปเจอข่าวหนึ่ง ที่ทำให้ผมสงบไปพักหนึ่ง Edsger Wybe Dijkstra ตายแล้วด้วยโรคมะเร็งเมื่อวันที่ 6 ส.ค. 02 รวมอายุได้ 72 ปี เช้านี้ ผมเลยจับ keyboard กดเป็นเรื่องนี้ให้อ่านกัน
ผมเริ่มรู้จักชื่อ Dijkstra กว่า 10 ปีแล้ว จำได้ว่า ครั้งแรกที่ผมเห็นชื่อนี้ ก็จากวรสารไมโครคอมพิวเตอร์ ของไทย ถ้าจำไม่ผิด น่าจะเป็นฉบับที่ 7 มีบทความเรื่องหนึ่งเขียนถึงการหาระยะทางที่สั้นที่สุด โดยใช้วิธีการของ Dijkstra นั่นเอง ในวันนั้นผมจำได้ว่า ผมค่อนข้างทึ่งกับ Algorithm ตัวนี้มาก และนั่นเป็นครั้งแรกที่ผมรู้จัก Dijkstra
ต่อมาเมื่อผมเรียนรู้เรื่อง Object Oriented Programming คำว่า Dijkstra ก็โผล่มาให้เห็นอยู่เรื่อยๆ ทำให้ผมสนใจ ผมลองไปค้นประวัติดู ปรากฏว่าไม่ธรรมดาจริงๆ ครับ เรามาลองดูประวัติคร่าวๆ ของเขากันดีกว่า
Dijkstra เกิดเมื่อปี 1930 ที่เนเธอร์แลนด์ รู้จักคอมพิวเตอร์เป็นครั้งแรกเมื่อเรียนจบปริญญาตรี แกมีโอกาสไปศึกษาที่อังกฤษด้าน Programming อยู่ 3 เดือน จากนั้นก็กลับมาเรียนต่อ จนจบ Doctor Degree ที่ University of Amsterdam เมื่อปี 1959 ทางด้านคณิตศาสตร์และฟิสิกส์ ชีวิตส่วนใหญ่หลังจากจบแล้วก็เป็นศาสตราจารย์อยู่ที่ Uninversity of Texas at Austin ประเทศอเมริกา จนถึงปี 2000 ก็เกษียรกลับมาอยู่ที่เนเธอร์แลนด์ และเสียชีวิตในที่สุด
มีเกร็ดเล็กๆ ที่น่าสนใจ ย้อนไปเมื่อเวลาที่เขาเรียนจบ กรมทะเบียนราษฎร์ของเนเธอร์แลนด์ ก็มาสำรวจ ถามเขาว่า คุณมีอาชีพอะไร คำตอบน่าสนใจครับ "programmer" ซึ่งทางการไม่รู้จักครับว่า Programmer คืออาชีพอะไร ก็เลยไม่ยอมให้มีการบันทึกอาชีพนี้ครับ สุดท้าย Dijkstra ก็เลยต้องยอมลงอาชีพตัวเองว่า "theoretical physicist"
Dijkstra เท่าที่ผมรู้ไม่เคยมีอาชีพเป็นโปรแกรมเมอร์จริง นักเขียนโปรแกรมในมุมของของ Dijkstra คือนักคิดค้น Algorithm หรือที่เราเรียกกันว่า Computer Scientist ไม่ใช่โปรแกรมเมอร์แบบเราๆ
เอ! อย่างนั้นที่ผมจั่วหัวเรื่องว่า "โปรแกรมเมอร์คนแรก" ก็คงไม่ถูกต้องเสียทีเดียว ยอมรับครับ แต่ก็นั่นแหละ ทุกวันนี้เรายอมรับว่า Augusta Lovelace Ada เป็นโปรแกรมเมอร์คนแรกของโลก ผมคนหนึ่งครับ ที่ไม่เชื่อว่าเรื่องของ Ada เป็นเรื่องจริง ถึงแม้ว่ามันจะเป็นเรื่องจริง ผมว่าสิ่งที่เธอทำนั้น ไม่อาจจะเรียกได้ว่าเป็นการเขียนโปรแกรมครับ เพราะถ้ายอมรับว่าวิธีการที่ Ada ใช้ เป็นสิ่งที่เรียกว่า Programming ผมคงต้องบอกว่า ชาวจีนคิดค้นอะไรทำนองนั้น กับเครื่องทอผ้าที่มีลาย มานานหลายพันปีก่อนหน้าแล้วครับ
อย่างน้อย Dijkstra ก็ใช้คำว่าโปรแกรมเมอร์กับโลกของคอมพิวเตอร์เป็นแรก ผมก็ถือเอาว่า Dijkstra เป็นโปรแกรมเมอร์คนแรกของโลกครับ ส่วนโปรแกรมคนแรกของโลกที่เขียน Software เลี้ยงปากเลี้ยงท้องเหมือนเราๆ ผมกำลังหาอยู่ครับ อยากรู้จริงๆ ว่าคนตกนรกคนแรกเป็นใคร! แต่ถ้ายังหาไม่ได้ ผมคงจะพูดต่อว่า นี่คือโปรแกรมเมอร์คนแรกของโลก!
เรามาดูผลงานเด่นของ Dijkstra (บางส่วน) กันบ้าง แล้วจะได้รู้ว่า ทำไมผมถึงให้ความสนใจคนๆ นี้นัก
ยุค 50: ภาษา ALGOL
ภาษา ALGOL เป็นภาษาต้นแบบ ที่เป็น Structure Programming ภาษานี้ถือได้ว่าเป็นภาษาหลัก ที่ภาษาคอมพิวเตอร์ส่วนใหญ่ยึดเป็นต้นแบบ ลองดูตัวอย่างนี้ครับ
[code]begin
