แนะนำโปรเจกต์
Magpie เป็นโปรเจกต์โอเพนซอร์สที่ประกาศตัวว่าเป็น "ภาษาโปรแกรมตัวแรกที่สร้างมาเพื่อ AI เอเจนต์" หากภาษาที่มีอยู่เดิมถูกปรับให้เหมาะกับความสะดวกในการพิมพ์ของมนุษย์ Magpie ก็ถูกปรับให้เหมาะกับการสร้างโค้ดของ LLM โดยเฉพาะ ปรัชญาหลักคือ "ขจัดความกำกวม" ใน Rust หรือ TypeScript นั้น a + b ต้องอาศัยการอนุมานว่าเป็นการบวกจำนวนเต็มหรือการต่อสตริง และเมื่อเกิด overflow จะ panic หรือไม่ แต่ใน Magpie ทุกการดำเนินการจะถูกระบุอย่างชัดเจน เช่น i.add { lhs=%a, rhs=%b } วิธีการแตกแขนงก็มีเพียง cbr/br แบบเดียว และการย้าย ownership ของหน่วยความจำก็แสดงด้วยการดำเนินการแบบ explicit เช่นกัน ข้ออ้างหลักคือ "ยิ่งมีตัวเลือกน้อย จุดที่ LLM ต้องตัดสินใจก็ยิ่งลดลง และข้อผิดพลาดก็ยิ่งลดลง"
คำอธิบาย
ภายในภาษาใช้ไวยากรณ์แบบ SSA (Static Single Assignment) และคอมไพล์เป็น native machine code ผ่าน LLVM การจัดการหน่วยความจำผสมผสาน ARC (Automatic Reference Counting) เข้ากับกฎ ownership แบบ explicit สไตล์ Rust เพื่อรับประกันความปลอดภัยโดยไม่ต้องมี GC ตามเบนช์มาร์กที่เผยแพร่ไว้ เวลาในการคอมไพล์อยู่ที่ 155ms ซึ่งเร็วกว่า Rust (234ms) และ TypeScript (268ms) ความเร็วในการรันเท่ากับ Rust ที่ 32ms และการใช้หน่วยความจำอยู่ที่ 1.6MB ซึ่งต่ำกว่า TypeScript (69.2MB) อย่างมาก โดยเฉพาะในตัวชี้วัดความซับซ้อนของคำศัพท์ (Vocabulary Complexity) ที่ใช้สะท้อนความสามารถในการคาดเดาของ LLM นั้น Magpie ได้ค่า 0.107 ซึ่งอยู่ที่ประมาณครึ่งหนึ่งของ Rust (0.225) และ TypeScript (0.231)
อย่างไรก็ตาม Magpie เองก็ระบุว่า "ใช้จำนวนโทเค็นมากกว่าภาษาเดิมราว 2.3 เท่า" ทำให้เกิด trade-off ในมุมของต้นทุนการเรียกใช้ LLM การประเมินความใช้งานจริงจึงอาจแตกต่างกันไปตามว่า ระหว่างการลดจำนวนครั้งที่ต้องลองใหม่เมื่อ AI เอเจนต์สร้างโค้ดซับซ้อน กับประสิทธิภาพด้านโทเค็น อะไรสำคัญกว่ากัน ตัวภาษาเขียนด้วย Rust และติดตั้งได้ด้วย cargo build
git clone https://github.com/magpie-lang/magpie.git
cd magpie
cargo build -p magpie_cli
7 ความคิดเห็น
อืม.. ลองค้นหา Magpie ดูแล้วกลับเจอภาษาอีกตัวหนึ่ง (magpie-lang.org ที่เริ่มพัฒนามาตั้งแต่ปี 2013) ขึ้นมาแทน ไม่แน่ใจว่าเรื่องชื่อนี่จะไม่มีอะไรอย่างลิขสิทธิ์หรือเปล่านะ....
เท่าที่ผมรู้ ชื่อของตลับเมตรเลเซอร์ก็ชื่อ magpie เหมือนกันครับ 555
ถ้าเป็นคนละอุตสาหกรรมก็คงพอเข้าใจได้มั้งครับ เพราะเป็นคนละผลิตภัณฑ์?
แต่ดันเป็นภาษาโปรแกรมเดียวกันนี่สิ 555... ถ้าผมไปพัฒนาภาษาใหม่แล้วตั้งชื่อว่า C++ หรือ Rust ก็คงรู้สึกเหมือนโดนด่าแน่ๆ...?
น่าสนใจดีครับ มีแผนพัฒนาต่อในอนาคตไหมครับ?
ไม่มีผลการวัดการใช้โทเคนจริงสำหรับงานเดี่ยว และเป็นเพียงการคาดเดาว่าถ้าใช้ magpie จำนวนการลองใหม่จะลดลงได้ประมาณนี้สินะ
การเปรียบเทียบเวลาในการคอมไพล์ดูแปลก ๆ นะครับ ทำไมถึงเอา ms/token มาเทียบกัน?
อาจเป็นเพราะมันเป็นภาษาแบบ AI native(?) ก็ได้ไหม?
เพราะมันไม่ใช่ภาษาที่สร้างมาให้มนุษย์เขียนโดยตรง ดังนั้นความยาวของโค้ดจริงจะเป็นเท่าไรอะไรทำนองนั้นก็ไม่ได้มีความหมาย
ดูเหมือนแนวคิดจะเป็นว่า... วัดเวลา compile สำหรับพรอมป์ต์เพื่อให้ implement ฟังก์ชันบางอย่างมากกว่า 555