17 October 2011

Dennis Ritchie

ช่วงสองสัปดาห์ที่ผ่านมา มีข่าวการเสียชีวิตของบุคคลที่มีความสำคัญในวงการคอมพิวเตอร์ 2 คน คนแรกคือ Steve Jobs ซึ่งข่าวการเสียชีวิตของเขาดังไปทั่วโลก อีกคนหนึ่ง เรื่องไม่ค่อยเป็นข่าวเท่าไหร่ คือ Dennis Ritchie ผู้ร่วมสร้างภาษา C และระบบ Unix
แม้ว่าจะไม่ค่อยมีคนรู้จัก ผมคิดว่า Dennis Ritchie เป็นบุคคลที่ทำให้เรามีเทคโนโลยีคอมพิวเตอร์ต่างๆ ใช้งานกันได้อย่างเพียบพร้อมและต่อยอดไปได้ไม่รู้จบ ภาษา C ที่เขาสร้างขึ้น เป็นภาษาพื้นฐานสำหรับพัฒนาซอฟท์แวร์แทบทุกประเภท ตั้งแต่ ระบบโทรศัพท์มือถือ ไปจนถึงเครื่องซุเปอร์คอมพิวเตอร์ ระบบ Unix เป็นระบบปฏิบัติการที่ดีที่สุด เป็นแนวคิดพื้นฐานของระบบปฏิบัติการแทบจะทุกระบบที่เราใช้อยู่ ไม่ว่าจะเป็น Windows, Mac OS X หรือว่า Linux รวมไปถึง Android และ iOS
ผมเชื่อว่า แนวคิดหลักที่ทำให้ภาษา C และระบบ Unix ทำงานได้อย่างดี ก็คือ "ความเรียบง่าย" และ "การลงมือทำด้วยตัวเอง" แนวคิดเหล่านี้ดูได้ ภาษา C เป็นภาษาที่โครงสร้างภาษาไม่มีอะไรซับซ้อน ถ้าเข้าใจโครงสร้างนั้น ก็จะสามารถเขียนโปรแกรมภาษา C ได้อย่างไม่มีปัญหา อีกอย่างหนึ่งคือภาษา C เป็นภาษาไม่มีข้อยกเว้น ไม่มีกรณีพิเศษ อย่างเช่น เราเห็นว่าฟังก์ชัน printf สามารถรับพารามิเตอร์ได้จำนวนไม่จำกัด เราก็สามารถเขียนฟังก์ชันแบบนั้นขึ้นมาใช้งานได้เช่นกัน ฟังก์ชัน printf ไม่ได้เป็นข้อยกเว้น หรือกรณีพิเศษของภาษา หลายคนอาจจะเห็นต่างจากผมว่าภาษา C นั่นยุ่งยากและซับซ้อน ผมเชื่อว่านั่นเป็นเพราะเราจำเป็นจะต้องเข้าใจหลักการทำงานของระบบปฏิบัติการ และระบบคอมพิวเตอร์บางส่วนก่อน จึงจะสามารถเขียนโปรแกรมภาษา C ได้อย่างเต็มที่
ส่วน Unix เป็นระบบปฏิบัติการที่ออกแบบมาให้ทำงานแบบเรียบง่ายเช่นกัน จะเห็นว่า Unix นั้นประกอบด้วยโปรแกรมเล็กๆ หลายโปรแกรม ซึ่งสามารถนำมาประกอบกัน เพื่อทำงานที่ต้องการได้ง่าย ด้วยเครื่องหมาย redirection และ pipe แถมยังเอาคำสั่งต่างๆ มาประกอบกันกลายเป็น script สำหรับทำงานที่ซับซ้อนได้ด้วย ดังนั้นเวลาเราจะสร้างโปรแกรมเพื่อทำงานอะไรสักชิ้น ก็เพียงแต่คิดว่าเราจะประกอบโปรแกรมที่มีอยู่อย่างไรให้ทำงานที่เราต้องการได้ ถ้าไม่มีส่วนประกอบบางส่วนก็เขียนส่วนนั้นเอง ไม่จำเป็นต้องคิดถึงโปรแกรมซับซ้อนที่เราต้องทำส่วนประกอบต่างๆ ทุกส่วน