การอธิบายที่น่าสนใจได้เกิดขึ้นในชุมชนโปรแกรมเมอร์เกี่ยวกับประสบการณ์ทางกายภาพและประสาทสัมผัสที่นักพัฒนาได้รับเมื่อทำงานกับภาษาโปรแกรมมิ่งต่างๆ สิ่งที่เริ่มต้นจากการไตร่ตรองส่วนตัวของโปรแกรมเมอร์คนหนึ่งได้เปิดเผยปรากฏการณ์ที่น่าประหลาดใจซึ่งนักพัฒนาหลายคนสามารถเข้าใจได้
ความรู้สึกทางกายภาพแตกต่างกันตามภาษาโปรแกรมมิ่ง
โปรแกรมเมอร์หลายคนรายงานถึงความรู้สึกทางกายภาพที่แตกต่างกันเมื่อทำงานกับภาษาเขียนโค้ดต่างๆ บางคนอธิบายถึงความรู้สึกไม่มั่นคงหรือรู้สึกเหมือนอยู่ที่สูงเมื่อต้องจัดการกับวงเล็บซ้อนกันในภาษาตระกูล C ในขณะที่คนอื่นๆ รู้สึกโล่งใจเมื่อปิดปีกกา ภาษาเชิงฟังก์ชันอย่าง Haskell สร้างความรู้สึกที่แตกต่างไปโดยสิ้นเชิง โดยนักพัฒนาบางคนอธิบายว่าเหมือนกับการคลานใต้ดินผ่านถ้ำและอุโมงค์
ประสบการณ์เหล่านี้ขยายไปเกินกว่าเพียงแค่ไวยากรณ์ของภาษา การทำงานกับระบบฝังตัวและเฟิร์มแวร์สร้างความรู้สึกของงานที่ต้องความแม่นยำภายใต้ความกดดัน ในขณะที่การใช้เครื่องมือสมัยใหม่อย่าง GitHub Copilot กับ TypeScript ทำให้นักพัฒนาบางคนรู้สึกเหมือนกำลังบินหรือกระโดดไกล ความแตกต่างจะชัดเจนมากเมื่อเปลี่ยนกลับไปใช้ภาษาที่มีการพิมพ์แบบไดนามิก ซึ่งอาจรู้สึกไม่มั่นคงหรือสับสน
ความรู้สึกที่นักพัฒนาโปรแกรมรายงานเกี่ยวกับภาษาโปรแกรมมิ่งต่างๆ:
ภาษา/เทคโนโลยี | ความรู้สึกที่รายงาน |
---|---|
ภาษาตระกูล C | รู้สึกไม่มั่นคง เหมือนเดินบนเส้นลวดสูง โล่งใจเมื่อปิดวงเล็บปีกกา |
Haskell | รู้สึกเหมือนคลานผ่านถ้ำและอุโมงค์ใต้ดิน |
Firmware/Embedded | ทำงานที่ต้องการความแม่นยำในขณะที่ถูกบีบอัด |
TypeScript + Copilot | รู้สึกเหมือนบิน กระโดดไกลเหมือนอยู่บนดวงจันทร์ |
Python (หลังจาก TypeScript ) | เดินโซเซเหมือนคนเมา ไม่น่าเชื่อถือแต่รู้สึกมึนเมา |
Clojure | รู้สึกอิสระและชอบทดลอง |
Java | รู้สึกไม่สบายตัว แข็งกระด้าง |
C | นุ่มนวล ยืดหยุ่น สบาย |
Objective-C | ปวดนิ้วและเกร็งตัว |
แบบจำลองทางจิตที่เป็นภาพและเรขาคณิต
นอกเหนือจากความรู้สึกทางกายภาพแล้ว โปรแกรมเมอร์หลายคนยังพัฒนาการแสดงภาพของโค้ดของตนเอง นักพัฒนาบางคนรายงานว่าเห็นรูปทรงเรขาคณิตที่โต้ตอบกันเมื่อมุ่งความสนใจไปที่การเขียนโปรแกรมอย่างลึกซึ้ง แบบจำลองทางจิตเหล่านี้ไม่ใช่เพียงแค่การตกแต่ง แต่ทำหน้าที่เป็นเครื่องมือที่ใช้งานได้จริงสำหรับการเข้าใจโครงสร้างโค้ดและแม้กระทั่งการตรวจจับข้อผิดพลาด
เมื่อมีบางอย่างผิดพลาดกับโค้ดที่ฉันเขียน รูปทรงเหล่านั้นจะตอบสนองในลักษณะที่ฉันเรียกว่าไม่ประสานกัน ฉันจะใส่ใจกับสัญญาณนั้นและวิเคราะห์สิ่งที่ฉันเพิ่งทำอย่างมีสติมากขึ้น เพื่อหาข้อผิดพลาด
ประสบการณ์ทางสายตาแตกต่างกันอย่างมากระหว่างกระบวนทัศน์การเขียนโปรแกรม การเขียนสคริปต์ Bash เกี่ยวข้องกับการจินตนาการถึงการจัดการข้อความ ในขณะที่ภาษาอย่าง Lisp สร้างภาพในใจของรายการและนิพจน์ การพัฒนา React นำภาพของการแสดงสถานะแบบต้นไม้มาสู่ใจ
ประสบการณ์การเขียนโปรแกรมแบบภาพ:
- รูปทรงเรขาคณิต: รูปร่างนามธรรมที่มีปฏิสัมพันธ์และเคลื่อนไหว ช่วยในการตรวจจับข้อผิดพลาดผ่านปฏิกิริยาที่ "ไม่สอดคล้อง"
- การไหลของข้อความ: การเขียนสคริปต์ Bash ที่แสดงเป็นภาพของข้อความที่ถูกจัดการและแสดงผล
- โครงสร้างแบบต้นไม้: การพัฒนา React ที่มองเห็นเป็นการแสดงสถานะแบบแยกสาขา
- การจัดการรายการ: ภาษา Lisp ที่สร้างภาพในใจของรายการและนิพจน์
- ท่าทางทางกาย: นักพัฒนาบางคนใช้การเคลื่อนไหวของมือเพื่อแสดงและจัดเรียงรูปร่างแนวคิดเมื่อแก้ปัญหาที่ซับซ้อน
การตอบสนองทางอารมณ์ที่เฉพาะเจาะจงตามภาษา
ภาษาโปรแกรมมิ่งต่างๆ กระตุ้นการตอบสนองทางอารมณ์ที่แตกต่างกันจากนักพัฒนา ผู้ใช้ Clojure มักอธิบายถึงความรู้สึกอิสระและชอบทดลอง ในขณะที่ TypeScript อาจรู้สึกจำกัดแม้จะมีประโยชน์ด้านความปลอดภัย โปรแกรมเมอร์บางคนรายงานว่า Java ทำให้พวกเขารู้สึกป่วยทางร่างกาย ในขณะที่ C# รู้สึกสะดวกสบายและยืดหยุ่นกว่า
การเชื่อมโยงทางอารมณ์เหล่านี้ดูเหมือนจะมีอิทธิพลต่อประสิทธิภาพและคุณภาพของโค้ด นักพัฒนามักจะทำงานได้ดีกว่าในภาษาที่รู้สึกถูกต้องสำหรับพวกเขา และหลายคนรายงานถึงความจำเป็นในการทำความสะอาดโค้ดที่มีกลิ่นเหม็นหรือรู้สึกไม่พอใจก่อนที่จะสามารถทำงานกับมันได้อย่างมีประสิทธิภาพ
ปรากฏการณ์นี้บ่งชี้ว่าการเขียนโปรแกรมมีลักษณะเป็นรูปธรรมและเกี่ยวข้องกับประสาทสัมผัสมากกว่าที่เคยได้รับการยอมรับ แม้ว่าประสบการณ์เหล่านี้จะไม่จำเป็นต้องสัมพันธ์กับทักษะการเขียนโปรแกรม แต่อาจมีบทบาทสำคัญในประสิทธิภาพของนักพัฒนา การเลือกภาษา และความสามารถในการรักษาสมาธิในระหว่างงานเขียนโค้ดที่ซับซ้อน
อ้างอิง: Interconnected The subjective experience of coding in different programming languages