19 ก.พ. เวลา 06:50 • ข่าวรอบโลก

อย่าโทษ COBOL

หลังจาก Elon Musk โพสต์ข้อมูลจากสำนักงานประกันสังคมว่า มีคนเป็นสิบล้านคนที่อายุเกินร้อยไปแล้ว และไม่น่าจะมีชีวิตอยู่รอด และรับเงินประกันสังคมได้ และเขาำด้ตั้งข้อสงสัยว่า มันอาจจะทำให้รัฐเสียเงินอย่างมหาศาล และอาจจะมีการโกงกันก็เป็นได้
หลายๆ คนทำตัวเป็นผู้เชี่ยวชาญ และอ้างว่าระบบของประกันสังคมใช้ COBOL เลยทำให้เกิดปัญหา โดนอ้างว่า COBOL ใช้วันที่มาตรฐานตาม ISO8601:2004 ซึ่งใช้ปี 1875 เป็นปีฐาน (epoch) ซึ่งผิดในหลายๆ เรื่อง
ข้อแรก COBOL ถูกพัฒนามาตั้งแต่ปี 1959 และในสมัยนั้นยังไม่มีการกำหนด data type ที่เป็นวันที่ขึ้นมา ค่าวันที่มักจะถูกแทนที่โดยตัวเลขที่มีจำนวนหลัก 6 หรือ 8 ตัว ที่มีปีเป็นเลข 2 และ 4 หลักตามลำดับ และถูกเปลี่ยนให้เป็น 8 หลัก ในตอนที่มีการแก้ปัญหา Y2K ให้เป็น 8 หลักไปหมดแล้ว
ข้อสอง มาตรฐาน ISO8601 ออกครั้งแรกในปี 1988 นานมาก หลังจากที่ COBOL ใช้กันเป็นการทั่วไป และที่มีการอ้างถึงปี 1875 เพราะวันที่ 20 พฤษภาคม 1875 เป็นวันที่มีการลงนามกันระหว่างประเทศ ในการกำหนดมาตรฐานชั่งตวงวัดสอดคล้องกัน (Metre Convention) จึงถูกหยิบยกมาอ้างอิงในมาตรฐานดังกล่าว ไม่ได้มีคนเอาไปใช้เป็นวันที่ตั้งต้นแต่อย่างไร
ตัวผมเอง แม้จะเกิดไม่ทันเรียน COBOL แต่ทันช่วยสอนรุ่นพี่ทำการบ้านเขียนภาษา COBOL ยืนยัน นั่งยัน และนอนยันได้ว่าวันที่เก็บเป็นตัวเลขแน่ๆ ไม่มีส่วนเกี่ยวข้องกับ 1875 แต่อย่างไร
ส่วนเรื่องความเสียหายที่ Elon Musk อ้างถึงนั้นห่างไกลกับความจริงมาก
คนที่อายุ 85 ปีขึ้นไปตามการสำรวจสำมะโนครัวนั้น มีเพียงประมาณ 80,000 คนหรือ 0.2% เท่านั้น แต่ในข้อมูลของประกันสังคมมีมากถึงประมาณ 5% เลยทีเดียว ซึ่งผิดแน่ๆ
ในรายงานการตรวจสอบเมื่อปี 2023 พบว่ามีคน 18.9 ล้านคนในฐานข้อมูลที่ไม่ได้รับเงิน หรือไม่ได้รายงานภาษีตลอด 50 ปีที่ผ่านมา ซึ่งน่าจะแปลว่าคนเหล่านี้น่าจะเสียชีวิตไปแล้ว ในจำนวนนี้มีเพียงแค่ประมาณ 44,000 คนที่ได้รับผลประโยชน์ และในจำนวนนี้ มีเพียง 13 คนที่อายุเกิน 112 ปี
โฆษณา