ผมกำลังหัดตั้งคำถามกับ AI แล้วก็คิดถึงข้อจำกัดขององค์ความรู้ต่าง ๆ ในบริบทของไทย น่าจะต้องใช้เวลาอีกหน่อย กว่าจะรู้วิธีสั่งหรือตั้งคำถาม และกว่า AI จะเรียนรู้เข้าใจและตอบคำถามได้อย่างที่คาดหวัง
โต๊ะห่างออกไปน่าจะเป็นทนายหรือคนที่อยู่ในแวดวางกฏหมาย เสียงคุยโทรศัพท์ปรึกษางานดังแว่วมา นึกเล่น ๆ ว่าต่อให้เรารวบรวมประมวลกฏหมายอิเลคโทรนิกส์โหลดให้ AI เรียนรู้ แต่จะสู้ความพลิกแพลงของมนุษย์ได้หรือเปล่า ค่านิยมที่ยกย่องวิธีการแบบศรีธนญชัย เป็นดีเอ็นเอที่แทรกซึมไปอยู่ทั่วทุกวงการ เมื่อโลกกว้างขึ้นก็รู้สึกว่าการเชื่อในคุณค่าแบบนี้ ทำให้เรามีปัญหากับการเป็นพลเมืองโลก
เมื่อประมาณสิบปีที่แล้ว ตอนที่เริ่มทำโปรเจกท์ ERP มีอย่างน้อย 2 เรื่องที่ผมวางแผนไว้ว่าต้องเขียนขึ้นมาใช้เอง คือ ข้อความจำนวนเงินภาษาไทย กับ การจัดการกับปีพุทธศักราช ผมไม่รู้ว่าสมัยนั้นทำได้อย่างไรจึงผลักดันให้โปรแกรมเมอร์ที่พัฒนา Microsoft Excel ใส่ฟังก์ชั่นที่สำคัญ "BAHTTEXT" และมี "bbbb" แทนสัญญลักษณ์สำหรับรูปแบบวันที่ปี พ.ศ.
เมื่อต้องใช้ JavaScript โชคดีที่มี Moment.js ที่ทำมาเป็น date library และรองรับการแปลเป็นภาษาไทยด้วย สามารถใช้คำสั่ง format แสดงภาษาไทย ชื่อวัน (อาทิตย์, จันทร์, อังคาร, ..) และ ชื่อเดือนทั้งแบบย่อและคำเต็ม
ส่วนที่ขาดไปคือ ไม่สามารถแสดงปีพุทธศักราช ดังนั้นผมจึงตัดสินใจปรับปรุงเพิ่ม "BB" และ "BBBB" สำหรับแสดงปีพ.ศ. แบบย่อและเต็ม หลังจากนั้นก็ส่ง PR (pull request) เพื่อขอให้ merge กลับเข้าไปที่เจ้าของโปรเจกท์
ตัวอย่างเช่น
moment("2023-09-19").format("DD/MM/BBBB")
จะได้ผลลัพธ์เป็น "19/09/2566"
ผลปรากฏว่าถูกปฏิเสธ ด้วยเหตุผลว่าไม่ควรมีสัญลักษณ์ที่ไม่มาตรฐานนอกเหนือจาก "YYYY" ซึ่งตอนนั้นก็ไม่ทันคิดอะไรมาก ด้วยความไม่รู้โลกกว้าง ทำให้ผมเข้าใจว่า locale ของไทยก็มีความสำคัญที่ผู้พัฒนาต่าง ๆ ควรสนับสนุนให้อยู่ในโค้ดมาตรฐาน เมื่อชี้แจงโดยอ้างอิง Excel ไปแล้ว ก็เลยไม่ได้พยายามผลักดันต่อ
dev-thai ซุกเก็บอยู่ใน github repo ของผมนานจนจำไม่ได้ เพราะอยู่ใน branch ย่อยอีกทีหนึ่ง หลังจากที่ขอ merge ครั้งนั้นแล้วก็ไม่ได้สนใจอีกเลย
วันนี้ AI ให้คำตอบ ที่ทำให้ผมกระจ่าง ว่าระบบปีพุทธศักราชอยู่ตรงไหนในโลกโปรแกรมเมอร์ ทำไมจึงไม่ได้ merge เข้าเป็นส่วนหนึ่งของ date library
"ประเทศไทยเป็นประเทศเดียวที่ใช้ระบบปีพุทธศักราชเป็นระบบราชการอย่างเป็นทางการ"
"Pale Blue Dot" คาร์ล เซแกน บรรยายความรู้สึกเมื่อเห็นภาพถ่ายจากขอบสุริยะจักรวาล ดาวโลกของเราเป็นเพียงจุดสีฟ้าจาง ๆ ประเทศไทยก็เป็นจุดเล็ก ๆ ในจักรวาลของคนพัฒนาโปรแกรม
เพราะเป็นเช่นนี้เอง ทำให้ยุคแรกเริ่มของการนำคอมพิวเตอร์มาใช้ในประเทศไทย จำเป็นต้องหรี่ตาข้างหนึ่ง มิฉะนั้นโปรแกรมจากต่างประเทศที่พัฒนามาใช้ระบบปีคริสต์ศักราช (ค.ศ.) จะนำมาใช้ไม่ได้ บางแห่งก็ใช้วิธี breaking rule หลอกใส่ปีเป็น 25xx โดยไม่สนใจว่าโปรแกรมจะตีความผิด การคำนวณวันขอสัปดาห์ไม่ถูกต้อง และวันที่ 29 กุมภาพันธ์ใช้ไม่ได้
ผมเคยตั้งข้อสังเกตว่า คนไทยมีความสามารถพิเศษอ่านเลขปีของทั้งสองระบบโดยไม่รู้สึกติดขัด โดยเฉพาะแวดวงคนใช้คอมพิวเตอร์และทำงานบัญชี ใครเคยสังเกตบ้างว่าทำไมปฏิทินไทยต้องมีทั้งเลขปีพ.ศ.และค.ศ. และเผลอ ๆ ก็อาจมีทั้งเลขอาราบิคและเลขไทยอีกด้วย โชคดีที่คนในแวดวงคอมพิวเตอร์ส่วนใหญ่เป็นเอกฉันท์เลือกใช้เลขอาราบิค อาจเป็นเพราะปุ่มบนคีย์บอร์ดเลขไทยกดไม่สะดวกก็ได้
ประกาศกรมสรรพากร ป.86/2542 ระบุว่า วัน เดือน ปี ที่ออกใบกำกับภาษี วัน เดือน ปี ตามวรรคหนึ่ง ใช้ตัวเลขแทนการระบุชื่อเดือนก็ได้และใช้พุทธศักราชหรือคริสต์ศักราชก็ได้
ประเทศอื่นเขาใช้ระบบปีเดียวเป็นหลัก ทำให้ locale ใช้ "YYYY" เพื่อแสดงค่าปีได้ ยกเว้นของไทยนี่แหละ ที่ไม่สามารถบังคับได้จริง หากใช้ปีคริสต์ศักราช ก็ผิดระเบียบราชการ หากใช้ปีพุทธศักราชก็กลายเป็นประเทศส่วนน้อยในโลก สื่อสารกับใครไม่ได้ โปรแกรมเปิดบิลเวอร์ชั่นภาษาไทย ตอนป้อนข้อมูลวันที่ก็อย่างหนึ่ง ตอนพิมพ์ฟอร์มออกมาก็อาจจะเป็นปีไทย หรือปีฝรั่งก็ได้
ในที่สุดก็เข้าใจแล้วว่าโลกไม่ได้หมุนรอบตัวเรา ยอมรับความแปลกประหลาด เป็นอะไรที่โปรแกรมเมอร์ประเทศอื่นไม่เข้าใจว่าทำไมต้องทำ library ให้แสดงวันที่ได้สองศักราชภายใน locale ภาษาไทย เพราะบางครั้งอาจต้องแสดงปีศักราชทั้งสองระบบภายในเอกสารใบเดียวกัน ทั้ง "YYYY" และ "BBBB" เหมือนกับการออกแบบปฏิทินให้คนไทยใช้งานที่ต้องรวมฟังก์ชั่น พุทธ คริสต์ พราหมณ์ และโชคลาภเข้าด้วยกัน
อ้างอิง
github moment/dev-thai https://github.com/jojosati/moment/tree/dev-thai
Stack Overflow, Excel formatting code “bb” and “bbbb” https://stackoverflow.com/a/32804628
กรมสรรพากร ป.86/2542 https://www.rd.go.th/3568.html
Voyager 1’s Pale Blue Dot https://solarsystem.nasa.gov/resources/536/voyager-1s-pale-blue-dot/
ความเห็น วิษณุ, อิทธิพล https://workpointtoday.com/politics-wit30052565/
Comments