DEV Community

ภาษาโปรแกรมมิ่งที่ syntax ง่าย ทำให้ AI หลอนน้อยลง จริงหรือ?

"เขียน Go แล้ว Copilot แม่นกว่าเขียน Java" - เคยได้ยินไหม? หรือ "Python มันง่าย AI เลยเก่ง" - จริงหรือแค่ confirmation bias? คำถามนี้ดูเผิน ๆ เหมือน opinion - แต่จริง ๆ มีงานวิจัยรองรับ บทความนี้จะพาไปดู 3 งานวิจัย จาก arXiv + GitHub Blog ที่ตอบคำถามนี้ด้วยข้อมูล - แล้วสรุปว่าเราควรเลือกภาษาอะไรเขียนถ้าอยากให้ AI ช่วยเราได้ดีที่สุด

งานวิจัยที่ 1: Token Sugar - "ยิ่ง verbose ยิ่งเปลือง token"

Token Sugar: Making Source Code Sweeter for LLMs (ASE 2025) โดย Zhensu Sun, Chengran Yang และคณะ - https://arxiv.org/abs/2512.08266

ข้อค้นพบ: "The inherent verbosity of programming languages, such as unnecessary formatting elements and lengthy boilerplate code, leads to inflated token counts"

ภาษาโปรแกรมมิ่งที่ verbose - มี boilerplate เยอะ, มี formatting elements มาก - ทำให้ token count สูงขึ้นโดยไม่จำเป็น

ตัวเลข: Token Sugar สามารถลด token ได้ 15.1% ใน source code และ 11.2% ระหว่าง generation - โดยคงค่า Pass@1 เท่าเดิม - แปลว่าที่ลดไปไม่ใช่เนื้อหาสำคัญ แต่มันคือ "ขยะ" ทาง syntax ที่ LLM ต้อง generate โดยเปล่าประโยชน์

นัยสำคัญ:

  • Java: public static void main(String[] args) { System.out.println("hello"); } - ~20+ tokens
  • Go: func main() { fmt.Println("hello") } - ~8 tokens

ฟังก์ชันเดียวกัน - Go ใช้ token น้อยกว่าครึ่ง ทุก token ที่ประหยัดได้ = เงินที่ประหยัดได้ = context window ที่เหลือไว้ให้ logic จริง

งานวิจัยที่ 2: Babbling Suppression - "Java พล่ามมากกว่า Python"

Babbling Suppression: Making LLMs Greener One Token at a Time (2026) โดย Lola Solovyeva, Fernando Castor - https://arxiv.org/abs/2604.06755

ข้อค้นพบ: "Babbling occurs across all tested models, with higher frequency in Java than in Python"

"Babbling" (การพูดพล่าม) คือการที่ LLM สร้าง output ที่มากเกินจำเป็น - เช่น generate getter/setter ทั้งคลาสทั้งที่ขอแค่ method เดียว, ใส่ import ที่ไม่ได้ใช้, comment ยาวเกินเหตุ งานวิจัยนี้พบว่า Java เกิด babbling มากกว่า Python อย่างมีนัยสำคัญ - และลด energy consumption ได้มากถึง 65% สำหรับ Python, 62% สำหรับ Java โดยการ suppress babbling

ทำไม Java ถึงพล่ามมากกว่า?

  • Python: def add(a, b): return a + b ← 2 บรรทัด
  • Java: public int add(int a, int b) { return a + b; } ← ต้องมี type, access modifier, return statement, bracket

Java บังคับให้ LLM ต้อง "พูด" เยอะกว่าเพื่อแสดงความตั้งใจเดียวกัน - ยิ่งต้องพูดเยอะ = ยิ่งมีโอกาสพูดผิด

งานวิจัยที่ 3: MultiPL-E - "ภาษาไหน LLM เก่งสุด?"

MultiPL-E: A Scalable Benchmark for Neural Code Generation (2022) โดย Federico Cassano และคณะ - https://arxiv.org/abs/2208.08227

ข้อค้นพบ:

  • สร้าง benchmark ที่ทดสอบ LLM ข้าม 18+ ภาษา พร้อมกัน
  • พบว่า "language frequency" (ปริมาณ training data ของภาษานั้น) เป็นปัจจัยอันดับ 1
  • ภาษาใกล้เคียง Python มักทำคะแนนได้ดี (เพราะ Python มี training data มหาศาล)
  • ภาษาที่ training data น้อย → คะแนนต่ำ แม้ syntax จะเรียบง่าย

สรุปจาก MultiPL-E: Syntax ง่าย ≠ AI เก่งเสมอไป - ถ้าภาษานั้นไม่มี training data - AI ก็ทำไม่ได้

สรุป - 3 ปัจจัยที่ตัดสินว่า AI จะเก่งกับภาษาไหน

อันดับ ปัจจัย น้ำหนัก หลักฐาน
🥇 Training Data - ภาษานั้นมีโค้ดบน GitHub เยอะแค่ไหน มากที่สุด MultiPL-E
🥈 Verbosity - ภาษานั้น verbose แค่ไหน (กระทบ token cost) ปานกลาง Token Sugar
🥉 Syntax Complexity - ซับซ้อน → babbling มากขึ้น ปานกลาง Babbling Suppression

ภาพรวม - จัดกลุ่มภาษา

กลุ่ม ภาษา AI เก่ง? Token cost Babbling
🟢 Sweet Spot Python, JavaScript, TypeScript, Go ✅ เก่ง ต่ำ น้อย
🟡 พอใช้ได้ Ruby, Rust, Kotlin, Swift ⚠️ ปานกลาง กลาง กลาง
🔴 ท้าทาย Java, C++, C#, PHP ⚠️ เก่งในเรื่องทั่วไป แต่ verbose สูง มาก

Go อยู่ในกลุ่ม Sweet Spot - syntax เรียบง่ายเหมือน Python + training data จาก Kubernetes, Docker, Terraform - ทำให้ LLM เก่งและประหยัด token ไปพร้อมกัน

คำตอบสุดท้าย

"ภาษา syntax ง่ายทำให้ AI หลอนน้อยลง จริงไหม?"

✅ จริง - แต่แค่ส่วนนึงของสมการ

  • ปัจจัยอันดับ 1 คือ training data
  • ปัจจัยอันดับ 2 คือ verbosity (กระทบ token cost)
  • ปัจจัยอันดับ 3 คือ syntax complexity (กระทบ babbling)

ภาษาที่ "ใช่" สำหรับ AI-assisted coding คือภาษาที่:

  • มี training data มาก → AI แม่น
  • syntax กระชับ → ประหยัด token
  • ไม่บังคับ boilerplate → AI ไม่ต้องพล่าม

Python ชนะขาดเรื่อง training data - Go ชนะเรื่องความกระชับ - JavaScript/TypeScript สมดุลทั้งสองด้าน - Java/C++ เก่งในเชิงความสามารถ แต่แพ้เรื่อง token cost

Sources

  • Token Sugar (ASE 2025) - verbosity → token inefficiency
  • Babbling Suppression (2026) - Java babbles more than Python
  • MultiPL-E (2022) - cross-language LLM benchmark
  • GitHub Copilot: Token Efficiency - June 2026

Comments

No comments yet. Start the discussion.