ภาษาโปรแกรมมิ่งที่ 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.