ทำไมต้อง Case-sensitive

สองสามอาทิตย์ก่อนมีรุ่นน้องมาถามผมว่า ภาษาที่เป็น Case-sensitive มีข้อดียังไง โอ ผมฟังคำถามแล้วก็แอบอึ้งไปสักพักเหมือนกัน เขียนโปรแกรมมาห้าปี ไม่เคยสงสัยเหมือนกันว่ามันมีดีหรือไม่ดีต่างกันยังไง (แต่ผมเข้าใจว่าคำถามนี้น่าจะเป็นการบ้าน มากกว่าข้อสงสัยนะครับ)

ผมเลยลองค้นข้อมูลดูก็เลยได้คำตอบมาดังนี้ครับ

1. คอมไพเลอร์ทำงานได้เร็วกว่า เนื่องจากไม่ต้องเสียเวลามาคอยเปลี่ยนตัวอักษรก่อนที่จะเอามาเปรียบเทียบกัน ข้อนี้ก็ดู make sense ดีครับ แต่ก็มีหลายคนแย้งว่า จริงๆแล้วแค่เปลี่ยนตัวอักษรให้เหมือนกัน แล้วค่อยเอามาเทียบก็ไม่น่าจะยากแล้วก็ช้าลงมากมายไม่ใช่หรอ

2. Readable - อ่านโค้ดและเข้าใจได้ง่ายกว่า ลองนึกถึงว่า ถ้าไม่มีเรื่อง case เข้ามาเกี่ยวข้อง ตัวแปรบางตัวถ้าเราตั้งชื่อตัวเล็กใหญ่ผสมกันหลายแบบ พอดูอีกทีก็เกิดความงงได้ว่าตกลงมันเป็นตัวเดียวกันรึเปล่า อย่าง MobileNumber MoBiLeNuMbEr MOBILEnumber mobILEnUMBer ถ้าจะบอกว่าพวกนี้เป็นตัวเดียวกันทั้งหมดก็คงจะปวดหัวพิลึก นอกจากนี้ยังมีเรื่องของ Naming Convention เช่นภาษา C/C++ นิยมใช้ตัวใหญ่หมดสำหรับ macro แล้วใช้ตัวเล็กกับใหญ่ผสมกันในชื่อตัวแปร หรืออย่างชื่อ class ขึ้นต้นด้วยตัวใหญ่ อะไรทำนองนี้ การมี Case-sensitive ในกรณีนี้ก็ทำให้โค้ดเป็นระเบียบมากขึ้นทีเดียว

3. สร้างตัวแปรได้มากขึ้น และความหมายไม่หายไป เช่นตัวย่อบางตัวนั้นมีความหมายต่างกันออกไป ถ้าใช้ตัวอีกษรใหญ่เล็กไม่เหมือนกัน เช่น เมตรเราจะย่อด้วย m ตัวเล็ก เช่นอย่าง Mega หรือ Male อะไรพวกนี้จะย่อด้วยตัวใหญ่ เพราะฉะนั้นเราก็สามารถตั้งชื่อ ใหญ่เล็กเพื่อแยกความหมายของคำมราเขียนเหมือนกันแต่ต่างกันเฉพาะตัวใหญ่เล็กได้ (แต่ผมว่าถ้าเป็นกรณีนี้เขียนเป็นตัวเต็มน่าจะดีกว่านะครับ)

เท่าที่เห็นหลักๆก็จะมีประมาณนี้ครับ มีทั้งคนที่ชอบแล้วก็ไม่ชอบ บางคนก็บางว่าคอมพิวเตอร์ก็น่าจะฉลาดพอ บางทีการเขียนชื่อตัวแปรหรือฟังก์ชันไป แล้วต้องการจะเขียนอีกแต่จำไม่ได้ว่าเขียนตัวใหญ่เล็กไปยังไง ก็ไม่เห็นจำเป็นจะต้องกลับไปดูที่เคยเขียนไว้ก่อน แต่ทำให้มันเป็น Case-insensitive แทนสิ ก็แล้วแต่จะคิดกันล่ะครับ ว่าแบบไหนดีกว่า

Taxonomy upgrade extras: