Wall of Text #3: Master/slave

มีเรื่องเล่าให้น้องเค้าฟังว่า

ปีที่แล้วมีกระแส Political Correctness มาบอกว่า คำว่า Master/slave ไม่เหมาะสม ไม่ควรใช้ เพราะเราเลิกทาสนานแล้ว บางคนอาจจะมองว่าเป็นคำไม่ดี

ตัวอย่างการใช้งานเช่น ในเว็บไซต์เมื่อ user ทำงานบางอย่างแล้วเราจะขอให้ slave ช่วยส่งข้อมูลไปให้บริการอื่นๆ ด้วย

กรณีนี้ Master คือตัวหน้าเว็บไซต์ สั่งงานให้ Slave ทำงาน แล้ว Slave ไม่มีสิทธิ์ขึ้นมาเป็น Master ได้เพราะ Slave ทำหน้าเว็บไซต์ไม่เป็น

กรณีนี้ Slave อาจจะเรียกว่า Worker ก็ได้

อีกการใช้งานหนึ่งมักจะเห็นในระบบฐานข้อมูล ถ้าเราต้องการให้ฐานข้อมูลใช้งานได้ตลอดเวลา เราจะตั้งระบบสำรอง

ระบบหลักนี้ก็จะเรียกว่า Master และ Slave คือสำรอง จะแตกต่างกับข้างบนคือในกรณีที่ Master ล้ม Slave จะกลายเป็น Master ก็ได้

กรณีนี้บางคนอาจจะเรียกว่า Primary กับ Replica ซึ่งคำว่า Replica แปลว่าต้องเป็นโคลนของ Primary เท่านั้น

ดังนั้นเราจะเห็นข้อดีของการใช้คำว่า Master/Slave คือ มันเข้าใจง่าย ทาสทำงานให้เจ้านาย เห็นภาพชัดเจนไม่ต้องตีความซับซ้อน และมันใช้ได้หลายบริบทมากกว่าคำที่เฉพาะเจาะจงลงไป

เมื่อปีที่แล้วกลุ่มคนที่มองว่าคำนี้ไม่เหมาะสมนั้นก็ได้ส่ง Pull request ไปหลายโครงการ open source ที่มีชื่อเสียง เพื่อให้ยกเลิกใช้คำเหล่านี้

ปัญหาก็คือมันไม่ได้ง่ายแบบนั้น

เพราะถ้าคำเหล่านี้อยู่ในเอกสาร ก็ต้องอัพเดตเอกสาร

อยู่ในโค้ด ก็ต้องแก้ในโค้ด

แก้โค้ดก็ต้องเทสว่ามันจะไม่มีอะไรพัง

แล้วพอเป็น Library แก้แค่โค้ดอย่างเดียวไม่พอ คนที่ใช้ Library ก็ต้องแก้ตามไปด้วย

ทั้งหมดนี้เพียงเพราะว่าคนบางกลุ่มมองว่าคำเหล่านี้ไม่เหมาะสม

ที่สำคัญ แล้วคำใหม่จะเป็นอะไรล่ะที่ยังกินความมากเหมือนเดิม?

คำว่า Leader กับ follower ดูเหมือนจะใช่ แต่ก็ยังไม่ถูก เพราะผู้ตามที่ฉลาดอาจจะแซงกลายเป็นผู้นำได้ จะไปใช้แทนความหมาย Worker ก็ไม่ได้เท่าไรนัก

แล้วก็ยังมีกลุ่ม BDSM (ซาดิสม์, มาโซคิสม์) ที่มีการเล่นโรลเพลย์ทาส ก็บอกว่าถ้าคุณบอกว่าคำนี้คือเหยียดทาส คุณกำลังเหยียดเรานะ เอาเป็นว่าเราเปลี่ยนเป็น Dominant (รุก) กับ Submissive (รับ) ไหมล่ะ…

เอากับเค้าสิ… แต่ผมว่าเรียก dom กับ sub ก็ดีนะ

สุดท้ายแล้วผมจำไม่ได้ว่าได้ข้อสรุปอะไรออกมา แต่กลายเป็นว่ามีคำอีกคู่หนึ่งที่ถูกเพ่งเล็งขึ้นมา คำนั้นคือ Whitelist และ Blacklist

เพราะ Whitelist แปลว่าดี แล้วทำไมต้อง White กับ Black จะแปลว่าคนขาวดี คนดำไม่ดีหรือเปล่า…

หลังๆ มานี้ผมจะเห็น Google กับ Microsoft ก็เลิกใช้คำนี้ไปแล้วเปลี่ยนเป็นคำว่า Allowlist กับ Denylist ความหมายเหมือนกัน แต่อาจจะไม่คุ้นหูเท่านั้น

ที่ยังไม่รู้คือแล้ว Greylist ล่ะจะเป็นคำว่าอะไรดี?