ทางไหน

หลายคนน่าจะได้ยินเรื่องตลกที่ว่าบิล เกตต์ไปปะทะคารมกับประฐานบริษัทฟอร์ด

เกตต์ – ถ้าอุตสาหกรรมรถยนต์เป็นอย่างอุตสาหกรรมซอฟท์แวร์ วันนี้รถจะราคาพันดอลลาร์ วิ่งได้ร้อยกิโลด้วยน้ำมันลิตรเดียว และอัตราเร่งเป็นสองเท่าของทุกวันนี้

ฟอร์ด – แน่นอน และรถพวกนั้นจะดับไปเองทุกสองวัน ในแต่ละเดือนจะมีรถที่คุณพบระเบิดโดยไม่รู้สาเหตูอย่างน้อยหนึ่งคัน และบางทีมันอาจจะวิ่งถอยหลังไปเองบ้างนานๆ ที

นึกเรื่องนี้ขึ้นมาได้เมื่อผมอ่านรายงานของ US-CERT ที่ว่ามีบั๊กในซอฟท์ฺแวร์ที่รู้จักกันดีกว่าห้าพันตัว ฟังดูน่าตกใจ

ในอดีตที่ผ่านมาเชื่อได้ว่าเรามีบั๊กต่อจำนวนบรรทัดของโค้ดต่ำกว่าในวันนี้มาก แต่ความเป็นจริงคือในอดีตนั้น คอมพิวเตอร์ และคอมไพล์เลอร์ ถูกใช้งานโดยดอกเตอร์ที่ต้องการทำงานวิจัย โดยต้องรอคิวในการคอมไพล์โปรแกรมรอบละสัปดาห์ ดอกเตอร์เหล่านั้นเชี่ยวชาญในภาษาที่เขาใช้งานเป็นอย่างดี เวลาที่ต้องรอนานทำให้ดอกเตอร์พวกนั้นเพ่งโค้ดซ้ำไปซ้ำมาเพื่อไม่ให้มันมีบั๊ก เพราะจะเสียเวลาในการแก้มหาศาล
แต่ในวันนี้โปรแกรมเมอร์ส่วนมากค่อนตลาด จบปริญญาตรี หลายคนได้จับคอมพิวเตอร์ครั้งแรกเมื่ออยู่ปีหนึ่ง ตอนเรียนเขียนโปรแกรมเบื้องต้นนั่นแหละ ส่วนคอมพิวเตอร์น่ะ หาได้ทุกหัวระแหง
คำถามคือเราต้องการให้กระบวนการผลิตซอฟท์แวร์ถูกตรวจสอบอย่างหนักเช่นเดียวกับอุตสาหกรรมอื่นๆ เช่นรถยนต์ หรือเครืองบินไหม? ถ้าต้องการ เรายอมรับได้ไหมกับราคาที่แพงมหาศาล เรายอมรับได้ไหมกับแลปทอปเครื่องละห้าล้าน แทนที่จะเป็นห้าหมื่นอย่างในวันนี้

ในวันนี้ืที่เทคโนโลยีล่าสุดจากห้องวิจัย ถูกจับมาลงกล่องขายกันแทบวันต่อวัน ราคาที่ลงเร็วเป็นน้ำตก

บางทีเราอาจจะอยู่ในทางเลือกที่ดีกว่าก็ได้

ใครจะรู้

 

C#

ได้อ่านบทความสัมภาษณ์นาย Anders Hejlsberg แล้วรู้สึกได้เลยว่าภาษารุ่นต่อๆ ไปคงเหลือแต่ภาษาสคริปต์อย่าง Python หรือ Ruby และภาษาที่รันบน VM อย่าง C# อาจจะรวมถึง Python เองด้วย

ถ้าเป็นสมัยเรียน ผมคงไม่ได้ทึ่งอะไรกับ C# นักหนาเพราะ C++ นั้นก็ดูทรงพลังมากพอที่จะทำงานได้ทุกประเภทที่นึกออก ยิ่งถ้าพ่วง glibc เข้าไปอีกนี่ยิ่่งสบาย แถมตอนเรียนใช้ gsl อีกตะหาก แต่พอทำงานมาถึงได้รู้ว่าการโค้ดระดับแสนบรรทัดที่มีโปรแกรมเมอร์ร่วมงานเป็นสิบ มันไม่ใช่อะไรง่ายๆ อย่างนั้น เราไม่สามารถยินดีกับภาษาที่ทรงพลัง ทำได้ทุกอย่างอีกต่อไป แต่เราต้องการภาษาที่มีความงาม พร้อมกับการเข้าใจได้ง่ายๆ ในโค้ดที่ซับซ้อน

ผมไม่เคยเขียน Java ซึ่งดูเป็นคู่แข่งที่ C# ตั้งใจมาชนด้วยมากกว่า แต่เมื่ออ่านบทความสัมภาษณ์ระหว่างนาย Bruce Eckel ที่เขียนหนังสือโปรแกรมมิ่งมาหลายเล่ม ทำให้สัมภาษณ์กันได้น้ำได้เนื้อดีทีเดียว เมื่อยำๆ กับปัญหาที่เจอมาใน C++ อีกสักหน่อย C# ก็กลายเป็นตัวเลือกที่ดีขึ้นมา ตั้งแต่่เรื่อง get/set, Checked Exception ตลอดไปจนเรื่อง Versioning ที่น่าปวดหัวใน C++

มีงานวิจัยระบุว่าปีหน้า Java จะเริ่มเสียส่วนแบ่งในตลาดแล้ว ถ้าเป็นจริงคงได้เวลาโดดหาบ้านใหม่อยู่กันล่ะ