การเติบโตของ Large Language Models (LLMs) เช่น ChatGPT และ GitHub Copilot กำลังสร้างผลข้างเคียงที่ไม่คาดคิดในการพัฒนาซอฟต์แวร์ เครื่องมือ AI เหล่านี้ทำงานได้ดีกว่ามากกับภาษาโปรแกรมมิ่งยอดนิยมอย่าง Python และ JavaScript ทำให้นักพัฒนาละทิ้งภาษาใหม่หรือภาษาเฉพาะทางเพื่อเลือกใช้สิ่งที่ AI รู้จักดีที่สุด
ปัญหาการครอบงำของ Python
LLMs แสดงระดับประสิทธิภาพที่แตกต่างกันอย่างมากขึ้นอยู่กับภาษาโปรแกรมมิ่งที่ใช้งาน ข้อมูลงานวิจัยเผยให้เห็นว่าโมเดลเหล่านี้เก่งกับภาษาที่ปรากฏบ่อยในข้อมูลการฝึกอบรม ในขณะที่ประสบปัญหาอย่างมากกับภาษาที่ไม่ค่อยพบเห็น แม้แต่ภาษาโปรแกรมมิ่งที่มีชื่อเสียงซึ่งมีผู้ใช้หลายล้านคนก็ยังได้ประสิทธิภาพ LLM ที่แย่หากไม่ได้รับการแทนที่อย่างดีในระหว่างการฝึกอบรม AI
สิ่งนี้สร้างวงจรที่น่าเป็นห่วง นักพัฒนาเลือก Python มากขึ้นไม่ใช่เพราะมันเป็นเครื่องมือที่ดีที่สุดสำหรับงานเฉพาะของพวกเขา แต่เพราะมันเป็นภาษาที่ผู้ช่วย AI ของพวกเขาสามารถช่วยได้อย่างมีประสิทธิภาพมากที่สุด นักพัฒนาคนหนึ่งที่ทำงานกับภาษาสคริปต์ใหม่สังเกตเห็นว่าผู้ใช้ที่มีศักยภาพปัจจุบันปฏิเสธการเรียนรู้ภาษาใหม่ โดยบอกว่า LLM สามารถสร้างโค้ด Python แทนได้ แม้ว่ามันจะดูแย่กว่า ยาวเป็นสองเท่า และทำงานได้ไม่ค่อยดีนัก
ประสิทธิภาพของ LLM จำแนกตามภาษาโปรแกรมมิ่ง
- ประสิทธิภาพสูง: Python , JavaScript , TypeScript (มีการนำเสนอข้อมูลอย่างดีในข้อมูลการฝึกอบรม)
- ประสิทธิภาพต่ำ: ภาษาเฉพาะทาง ภาษาใหม่ ภาษาเฉพาะกลุ่ม
- ผลการวิจัย: ประสิทธิภาพลดลงอย่างมากเมื่อภาษาโปรแกรมมิ่งมีความเฉพาะเจาะจงมากขึ้น แม้แต่ภาษาที่มีชื่อเสียงซึ่งมีผู้ใช้หลายล้านคน
ภาษาเฉพาะโดเมนตกอยู่ในอันตราย
ผลกระทบส่งผลหนักที่สุดต่อ Domain-Specific Languages (DSLs) - ภาษาโปรแกรมมิ่งเฉพาะทางที่ออกแบบมาสำหรับงานเฉพาะ ภาษาเหล่านี้ในอดีตมีข้อได้เปรียบสำคัญโดยทำให้โปรแกรมบางประเภทเขียนได้ง่ายกว่ามากและมีข้อผิดพลาดน้อยกว่า ตัวอย่างเช่น ระบบบทสนทนาสำหรับวิดีโอเกมอาจใช้รูปแบบที่เรียบง่ายและอ่านง่ายแทนการเรียก API ที่ยาวเหยียด
อย่างไรก็ตาม DSLs เผชิญกับภาระคู่ในยุค LLM ไม่เพียงแต่นักออกแบบภาษาต้องลงทุนเวลาและทรัพยากรเพื่อสร้างภาษาและเครื่องมือ แต่ผู้ใช้ยังต้องเสียสละความช่วยเหลือจาก AI เมื่อทำงานกับภาษาเฉพาะทางเหล่านี้ สิ่งนี้เพิ่มอุปสรรคสำหรับการยอมรับภาษาใหม่อย่างมีนัยสำคัญ
โซลูชั่นที่เกิดขึ้นและการปรับตัว
ชุมชนภาษาโปรแกรมมิ่งไม่ยอมแพ้โดยไม่ต่อสู้ แนวทางที่มีแนวโน้มดีหลายแนวทางกำลังเกิดขึ้นเพื่อเชื่อมช่องว่างระหว่างภาษาเฉพาะทางและความสามารถของ LLM
กลยุทธ์หนึ่งเกี่ยวข้องกับการใช้ Python เป็นภาษากลาง นักวิจัยพบความสำเร็จโดยขอให้ LLMs สร้างโค้ดในภาษาที่คุ้นเคยก่อน จากนั้นแปลเป็นภาษาเฉพาะทางโดยอัตโนมัติ แนวทางนี้ใช้ประโยชน์จากจุดแข็งของ AI กับภาษายอดนิยมในขณะที่ยังคงให้ประโยชน์ของการออกแบบเฉพาะโดเมน
ทิศทางอื่นมุ่งเน้นไปที่การสร้างภาษาที่ทำงานได้ดีกว่ากับเวิร์กโฟลว์การพัฒนาที่ได้รับความช่วยเหลือจาก AI นักออกแบบบางคนกำลังสำรวจวิธีการผสมผสานโค้ดที่เป็นทางการกับคำอธิบายภาษาธรรมชาติที่ไม่เป็นทางการ ทำให้นักพัฒนาสามารถเขียนส่วนที่น่าสนใจด้วยตนเองในขณะที่ปล่อยให้ AI จัดการการเชื่อมต่อตามปกติและโค้ดต้นแบบ
นักวิจัยและนักออกแบบภาษาโปรแกรมมิ่งทำงานภายใต้สมมติฐานที่ผิดพลาดว่าผู้ปฏิบัติงานโปรแกรมมิ่งต้องการจริงๆ 'ภาษาที่มีไวยากรณ์และความหมายที่ปรับแต่งสำหรับโดเมนเฉพาะ' หรือคุณสมบัติภาษาที่หรูหราจริงๆ
โซลูชันใหม่ที่เกิดขึ้นสำหรับการรวม DSL-LLM
- การแปลผ่าน Python ระดับกลาง: สร้างโค้ดใน Python ก่อน จากนั้นแปลไปยังภาษาเฉพาะทางโดยอัตโนมัติ
- การเชื่อมต่อระหว่างแบบเป็นทางการและไม่เป็นทางการ: รวมการเขียนโค้ดด้วยมือสำหรับตรรกะที่ซับซ้อนเข้ากับโค้ดโครงสร้างพื้นฐานและการเชื่อมต่อที่สร้างโดย AI
- การรวมภาษาสำหรับการตรวจสอบ: ใช้ LLM ในการสร้างโค้ดพร้อมข้อกำหนดที่สามารถตรวจสอบได้โดยอัตโนมัติ
- การออกแบบเชิงความหมาย: สร้าง DSL ที่มีไวยากรณ์ที่มนุษย์อ่านเข้าใจได้และมีความหมาย ซึ่ง LLM สามารถเข้าใจได้ดีขึ้น
ความเสี่ยงของการหยุดนิ่ง
ความกังวลที่กว้างขึ้นขยายไปไกลกว่าเพียงภาษาโปรแกรมมิ่งไปสู่เฟรมเวิร์กและแนวทางการพัฒนา แรงผลักดันเดียวกันที่ผลักดันนักพัฒนาไปสู่ Python ยังสนับสนุนเฟรมเวิร์กเก่าที่มีชื่อเสียงมากกว่านวัตกรรมใหม่ สิ่งนี้สร้างลูปป้อนกลับที่นักพัฒนามนุษย์พึ่งพาสิ่งที่ LLMs รู้ดีที่สุด ในขณะที่ LLMs เรียนรู้หลักจากสิ่งที่มนุษย์กำลังเขียนอยู่ในปัจจุบัน
ผู้เชี่ยวชาญบางคนกังวลว่าสิ่งนี้อาจหยุดการวิวัฒนาการของภาษาโปรแกรมมิ่งทั้งหมด หากนักพัฒนาหยุดทดลองกับคุณสมบัติภาษาใหม่เพราะเครื่องมือ AI ของพวกเขาไม่เข้าใจ และเครื่องมือ AI ไม่เคยเรียนรู้คุณสมบัติเหล่านี้เพราะนักพัฒนาไม่ได้ใช้ นวัตกรรมอาจหยุดชะงักลง
มองไปข้างหน้า
แม้จะมีความท้าทายเหล่านี้ แต่ก็มีเหตุผลที่จะมองโลกในแง่ดี LLMs กำลังพัฒนาให้ทำงานกับไวยากรณ์ที่มีความหมายและอ่านได้โดยมนุษย์ได้ดีขึ้น - บ่งชี้ว่าภาษาที่ออกแบบมาอย่างดีซึ่งมีคีย์เวิร์ดที่ชัดเจนและมีความหมายอาจมีข้อได้เปรียบในโลกที่ได้รับความช่วยเหลือจาก AI นอกจากนี้ เมื่อการฝึกอบรม LLM กстановится บ่อยขึ้นและถูกลง ความล่าช้าระหว่างคุณสมบัติภาษาใหม่ที่ปรากฏและเครื่องมือ AI ที่เข้าใจพวกมันควรลดลง
กุญแจสำคัญอาจเป็นการตระหนักว่าภาษาโปรแกรมมิ่งในปัจจุบันต้องรับใช้นายสองคน: นักพัฒนามนุษย์และผู้ช่วย AI ภาษาในอนาคตที่ประสบความสำเร็จมากที่สุดน่าจะเป็นภาษาที่สามารถตอบสนองผู้ชมทั้งสองกลุ่มได้โดยไม่ประนีประนอมประโยชน์หลักที่ทำให้ภาษาเฉพาะทางมีคุณค่าตั้งแต่แรก
ชุมชนการออกแบบภาษาโปรแกรมมิ่งเผชิญกับช่วงเวลาสำคัญ ตัวเลือกที่ทำในตอนนี้เกี่ยวกับวิธีการปรับตัวให้เข้ากับความช่วยเหลือจาก AI อาจกำหนดว่าเราจะเห็นนวัตกรรมอย่างต่อเนื่องในวิธีการแสดงแนวคิดเชิงคำนวณ หรือเราจะตกลงอยู่ในโลกที่ทุกอย่างเขียนด้วย Python เพียงเพราะนั่นคือสิ่งที่เครื่องจักรเข้าใจดีที่สุด
อ้างอิง: Programming Language Design in the Era of LLMs: A Return to Mediocrity?