ภาษาโปรแกรมมิ่งที่ syntax ง่าย AI ช่วยเราได้ดีกว่า จริงหรือ?
“เขียน Go แล้ว Copilot แม่นกว่าเขียน Java” — เคยได้ยินไหม?
หรือ “Python มันง่าย AI เลยเก่ง” — จริงหรือแค่ confirmation bias?
นิยาม “ดีกว่า” ในบทความนี้: token ประหยัดกว่า, over-generation (babbling) น้อยกว่า, pass rate สูงกว่า — ไม่ใช่ hallucination (invented API, เรียก library ที่ไม่มีจริง) — งานวิจัยเรื่อง hallucination ข้ามภาษายังไม่มี
บทความนี้พาไปดู 3 งานวิจัย ที่ตอบคำถามนี้ด้วยข้อมูล
📄 งานวิจัยที่ 1: Token Sugar — “ยิ่ง verbose ยิ่งเปลือง token”
Token Sugar: Making Source Code Sweeter for LLMs through Token-Efficient Shorthand (ASE 2025)
หมายเหตุ: งานวิจัยนี้วัดประสิทธิภาพการลด token ภายใน corpus — ไม่ใช่การเปรียบเทียบข้ามภาษา — ตัวอย่าง Java vs Go ด้านล่างเป็นการตีความของผู้เขียนเพื่อให้เห็นภาพ
โดย 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"); }
Go: func main() { fmt.Println("hello") }
Java: ~20+ tokens
Go: ~8 tokens
→ ฟังก์ชันเดียวกัน — Go ใช้ token น้อยกว่าครึ่ง
Enter fullscreen mode Exit fullscreen mode
ทุก 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) { ← ต้องมี type, access modifier,
return a + b; return statement, bracket
}
Enter fullscreen mode Exit fullscreen mode
Java บังคับให้ LLM ต้อง “พูด” เยอะกว่าเพื่อแสดงความตั้งใจเดียวกัน — ยิ่งต้องพูดเยอะ = ยิ่งมีโอกาสพูดผิด
📄 งานวิจัยที่ 3: MultiPL-E — “ภาษาไหน LLM เก่งสุด?”
MultiPL-E: A Scalable and Extensible Approach to Benchmarking 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 ก็ทำไม่ได้
⚠️ Recency caveat: MultiPL-E (2022) ใช้ Codex/CodeGen/InCoder — โมเดล pre-2024 — ปัจจุบัน coding agent ใช้ test-execution feedback loop และ RAG ซึ่งอาจลดผลของตัวภาษาลงจากที่ paper วัดไว้ — ข้อสรุปจากงานนี้จึงอาจ conservative เมื่อเทียบกับความสามารถของโมเดลปัจจุบัน
📊 สรุป — 3 ปัจจัยที่ตัดสินว่า AI จะเก่งกับภาษาไหน
อันดับ ปัจจัย หลักฐาน น้ำหนัก 🥇 Training Data — ภาษานั้นมีโค้ดบน GitHub เยอะแค่ไหน MultiPL-E (cross-language, 18+ languages) ✅ หนักแน่น 🥈 Verbosity — ภาษานั้น verbose แค่ไหน (กระทบ token cost) Token Sugar (ไม่ใช่ cross-language) ⚠️ circumstantial 🥉 Syntax Complexity — ซับซ้อน → babbling มากขึ้น Babbling Suppression (2 ภาษาเท่านั้น) ⚠️ circumstantialหมายเหตุ: MultiPL-E เป็นงานเดียวที่ทดสอบข้ามภาษาโดยตรง — อีก 2 paper เป็นหลักฐานแวดล้อม (ไม่ cross-language / ทดสอบแค่ 2 ภาษา) — generalization ไปยังภาษาอื่นเป็นการ extrapolate ของผู้เขียน
ภาพรวม — จัดกลุ่มภาษา
นี่คือการตีความของผู้เขียน — ไม่ใช่ finding จากงานวิจัยโดยตรง:
กลุ่ม ภาษา AI เก่ง? Token cost Babbling 🟢 Sweet Spot Python, JavaScript, TypeScript, Go ✅ เก่ง ต่ำ น้อย 🟡 พอใช้ได้ Ruby, Rust, Kotlin, Swift ⚠️ ปานกลาง กลาง กลาง 🔴 ท้าทาย Java, C++, C#, PHP ⚠️ เก่งในเรื่องทั่วไป แต่ verbose สูง มาก💡 Go อยู่ในกลุ่ม Sweet Spot — syntax เรียบง่ายเหมือน Python — token cost ต่ำ — babbling น้อย — ทำให้ LLM ทำงานกับ Go ได้ดีเทียบเคียง Python
🎯 คำตอบสุดท้าย
“ภาษา syntax ง่ายทำให้ AI หลอนน้อยลง จริงไหม?”
✅ จริง — แต่แค่ส่วนนึงของสมการ
ปัจจัยอันดับ 1 คือ training data
ปัจจัยอันดับ 2 คือ verbosity (กระทบ token cost)
ปัจจัยอันดับ 3 คือ syntax complexity (กระทบ babbling)
Enter fullscreen mode Exit fullscreen mode
ภาษาที่ “ใช่” สำหรับ 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
답글 남기기