สงครามศาสนาที่คงอยู่มายาวนานของวงการโปรแกรมเมอร์คือ การย่อหน้าด้วย space vs tab ซึ่งก็คงยังไม่มีข้อยุติในเร็ววัน
เรื่องนี้เป็นประเด็นขึ้นมาอีกครั้ง เมื่อเว็บไซต์ The Register ไปค้นพบว่า Linus Torvalds ไปแก้โค้ดในเคอร์เนลลินุกซ์ ซึ่งในแพตช์นี้มีการแก้ไขเพียงอย่างเดียวคือเปลี่ยนอักขระ space มาเป็น tab
อย่างไรก็ตาม Linus ไม่ได้เลือกข้างในสงครามศาสนานี้แต่อย่างใด เพราะเหตุผลของเขาคือไฟล์ที่เขาแก้ไขคือ Kconfig ซึ่งเป็นไฟล์คอนฟิกค่าต่างๆ ของเคอร์เนล (ลักษณะเดียวกับ YAML ในปัจจุบัน) และมี parser รุ่นเก่าๆ บางตัวที่ยังเขียนมาได้ไม่ดีพอ ทำให้อ่านค่า space/tab ผิดพลาด
จุดที่น่าสนใจคือ สิ่งที่ Linus ทำไม่ได้แก้ให้ไฟล์ Kconfig อ่านค่าได้ง่ายขึ้น แต่เขา "จงใจ" ทำให้ไฟล์ซับซ้อนขึ้นแทน โดยเปลี่ยน space ธรรมดาให้เป็น tab ความกว้าง 8 ตัวอักษร เพื่อบีบให้ parser บางตัวทำงานพลาด คนเขียน parser จะได้กลับมาแก้ไขโค้ด parser ของตัวเอง
Linus ให้คำอธิบายการแก้ไขไว้ดังนี้
Let's make sure it gets fixed. Because if you can't parse tabs as whitespace, you should not be parsing the kernel Kconfig files.
ที่มา - The Register, ภาพจาก Reddit r/programming

on
ผมสาย tab
obtheair Wed, 17/04/2024 - 15:14
ผมสาย tab
ผมไม่ได้มีปัญหากับ space
และผมเห็นด้วยกับภาพท้ายข่าว
ตุบตับตุบตับ
CivilWar2024
EngineerRiddick Wed, 17/04/2024 - 15:22
CivilWar2024
dev: เฮ~พวก ไม่เอาน๊า พวกเราเป็นprogrammerเหมือนกัน
reviewer: แล้วคุณเป็น programmer ที่เคาะspace หรือเคาะtabละ?
:)
คนที่ไม่เขียน program
pote2639 Wed, 17/04/2024 - 16:41
คนที่ไม่เขียน program คงปวดหัวสิ่งนี้ จะเว้นวรรคใน word processor ใช้ tab..
word processor นี่น่าจะใช้
hisoft Wed, 17/04/2024 - 16:58
In reply to คนที่ไม่เขียน program by pote2639
word processor นี่น่าจะใช้ tab/space กันหนักหน่วงกว่าเขียนโปรแกรมอีกนะ
ฮาตรงไม่ได้แก้ให้ compatible
iamfalan Wed, 17/04/2024 - 17:26
ฮาตรงไม่ได้แก้ให้ compatible แต่แก้ให้แอพที่เขียนไม่ดีพัง
full comment here https://git
Configuleto Wed, 17/04/2024 - 18:22
The Register ก็ไปตัดมานิดเดียว อ่านคอมเม้นเต็มๆของไลนัสเองจะรู้สึก amusement กว่า
เป็นสายใช้อะไรก็ได้
mr_tawan Thu, 18/04/2024 - 05:51
เป็นสายใช้อะไรก็ได้ แล้วจบด้วย clang-format
ผมว่าขอแค่แต่ละภาษาหรือ
btoy Thu, 18/04/2024 - 10:57
ผมว่าขอแค่แต่ละภาษาหรือ script มี formatter ของตัวเองก็พอ จะเป็นอะไรก็ได้
ทีมใส่ Tab...
Be1con Fri, 19/04/2024 - 20:17
ทีมใส่ Tab...