การเพิ่มขึ้นของการเขียนโปรแกรมด้วยความช่วยเหลือจาก AI กำลังจุดประกายการถกเถียงเกี่ยวกับภาษาโปรแกรมมิ่งใดที่จะเจริญรุ่งเรืองในอนาคตที่เป็นระบบอัตโนมัติ กรณีศึกษาการใช้งานจริงล่าสุดจาก Strand ซึ่งเป็นเอเจนซี่การตลาดในกรุง London ชี้ให้เห็นว่าภาษาใหม่ที่ออกแบบมาอย่างดีอย่าง Gleam อาจมีข้อได้เปรียบอย่างมีนัยสำคัญเหนือภาษาที่มีชื่อเสียงซึ่งมีตัวอย่าง legacy code หลายสิบปี
คุณภาพสำคัญกว่าปริมาณในข้อมูลฝึกอบรม AI
สมมติฐานดั้งเดิมที่ว่าโมเดล AI ทำงานได้ดีขึ้นเมื่อมีตัวอย่างการฝึกอบรมมากขึ้นกำลังถูกท้าทายโดยนักพัฒนาที่โต้แย้งว่าคุณภาพของโค้ดสำคัญกว่าปริมาณ ภาษาที่มีเอกสารที่คัดสรรมาอย่างระมัดระวัง รูปแบบการเขียนโค้ดที่สอดคล้องกัน และแนวปฏิบัติที่ดีที่มั่นคงอาจสร้างโค้ดที่ AI สร้างขึ้นได้ดีกว่าเมื่อเปรียบเทียบกับภาษาที่มีฐานโค้ดขนาดใหญ่แต่ไม่สอดคล้องกัน
การเปลี่ยนแปลงในการคิดนี้ชี้ให้เห็นว่าภาษาที่ประสบปัญหาจากกฎของ Sturgeon ซึ่ง 90% ของตัวอย่างออนไลน์มีคุณภาพต่ำ อาจขัดขวางประสิทธิภาพของ AI มากกว่าที่จะช่วยเหลือ ภาษาใหม่ที่หลีกเลี่ยงการเปลี่ยนแปลงที่ทำลายความเข้ากันได้และรักษามาตรฐานการเขียนโค้ดที่เป็นหนึ่งเดียวสามารถให้สภาพแวดล้อมการฝึกอบรมที่สะอาดกว่าสำหรับโมเดล AI
ข้อได้เปรียบของ BEAM สำหรับความน่าเชื่อถือ
การเลือกของ Gleam ที่จะทำงานบนเวอร์ชวลแมชชีน BEAM ซึ่งพัฒนาขึ้นโดย Ericsson สำหรับสวิตช์โทรศัพท์ในช่วงทศวรรษ 1980 นำเสนอประโยชน์ด้านการทนต่อข้อผิดพลาดที่ไม่เหมือนใคร แพลตฟอร์มนี้แบ่งแอปพลิเคชันเป็นกระบวนการที่มีน้ำหนักเบาซึ่งสามารถเริ่มต้นใหม่ได้อย่างอิสระหากเกิดการล้มเหลว ป้องกันความล้มเหลวทั้งระบบ
สำหรับระบบจัดการทางการเงินของ Strand สถาปัตยกรรมนี้พิสูจน์ให้เห็นถึงคุณค่าเมื่อต้องจัดการกับการรวมระบบบริการภายนอก การดาวน์โหลดอัตราแลกเปลี่ยนเงินตราต่างประเทศและการซิงค์ระบบจัดการโครงการสามารถล้มเหลวได้โดยไม่ส่งผลต่อแอปพลิเคชันหลัก ทำให้ทีมงานสามารถแก้ไขปัญหาได้โดยไม่รบกวนผู้ใช้
BEAM: Bogdan/Björn's Erlang Abstract Machine เวอร์ชวลแมชชีนที่รันโปรแกรม Erlang, Elixir และ Gleam
ประโยชน์ของแพลตฟอร์ม BEAM :
- สถาปัตยกรรมที่ทนต่อความผิดพลาดจากระบบโทรศัพท์ Ericsson ในยุค 1980
- รองรับกระบวนการเบาหลายพันถึงหลายล้านกระบวนการ
- การรีสตาร์ทกระบวนการแบบอิสระโดยไม่ทำให้ระบบทั้งหมดขัดข้อง
- การสื่อสารแบบส่งข้อความระหว่างกระบวนการ
- การแยกความล้มเหลวของบริการภายนอกโดยอัตโนมัติ
ประสบการณ์นักพัฒนาและการมุ่งเน้นความสามารถในการบำรุงรักษา
การเน้นย้ำเครื่องมือสำหรับนักพัฒนาและความสามารถในการบำรุงรักษาดูเหมือนจะให้ผลตอบแทนที่คุ้มค่าสำหรับผู้ที่นำมาใช้ก่อน เวลาในการคอมไพล์ที่รวดเร็ว ข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์ และเครื่องมือจัดรูปแบบที่รวมอยู่ในตัว ช่วยลดความยุ่งยากที่มักเกี่ยวข้องกับการใช้ภาษาโปรแกรมมิ่งใหม่
ภาษาและเครื่องมือผลักดันคุณอย่างอ่อนโยนให้ใช้รูปแบบที่สอดคล้องและเป็นแบบแผน และเขียนอย่างชัดเจนและเรียบง่ายโดยไม่พยายามฉลาดเกินไป
แนวทางการออกแบบภาษานี้อาจมีความสำคัญเพิ่มขึ้นเมื่อทีมพัฒนาพยายามสร้างสมดุลระหว่างนวัตกรรมกับข้อจำกัดเชิงปฏิบัติ เช่น ทรัพยากรที่จำกัดและความจำเป็นในการบำรุงรักษาโค้ดในระยะยาว
คุณสมบัติหลักของ Gleam :
- คอมไพล์ได้ทั้ง BEAM (Erlang VM) และ JavaScript
- ไม่มีรายงานการขัดข้องในการใช้งานจริงที่ Strand เป็นเวลา 2 ปี
- คอมไพล์ได้อย่างรวดเร็วพร้อมเครื่องมือที่ครบครัน (การจัดรูปแบบ, การรองรับ LSP)
- เข้าถึงไลบรารี Erlang/Elixir ที่ผ่านการทดสอบมากว่า 40 ปี
- เฟรมเวิร์ก OTP ที่ปลอดภัยด้านประเภทข้อมูลพร้อมความเข้ากันได้อย่างเต็มรูปแบบ
ผลกระทบในอนาคตสำหรับการยอมรับภาษา
การอภิปรายเกี่ยวกับภาษาที่เป็นมิตรกับ AI ขยายไปเกินกว่าแค่คุณภาพข้อมูลการฝึกอบรม นักพัฒนาบางคนมองเห็นภาพภาษาโปรแกรมมิ่งที่มาพร้อมกับโมเดล AI เฉพาะของตัวเอง ซึ่งฝึกอบรมโดยเฉพาะกับตัวอย่างที่คัดสรรมาจากแนวปฏิบัติที่ดีมากกว่าอินเทอร์เน็ททั้งหมด
การถกเถียงนี้เน้นย้ำคำถามที่กว้างขึ้นที่อุตสาหกรรมซอฟต์แวร์กำลังเผชิญ: จะเพิ่มประสิทธิภาพสำหรับข้อจำกัดปัจจุบันของ AI หรือมุ่งเน้นการสร้างเครื่องมือที่ดีกว่าสำหรับนักพัฒนามนุษย์ โดยเชื่อมั่นว่า AI ที่ดีขึ้นจะตามมาจากการออกแบบภาษาที่ดีขึ้นอย่างเป็นธรรมชาติ
ในขณะที่เครื่องมือการเขียนโค้ดด้วยความช่วยเหลือจาก AI ยังคงพัฒนาต่อไป ภาษาโปรแกรมมิ่งที่ให้ความสำคัญกับความชัดเจน ความสอดคล้อง และลูปการตอบกลับที่รวดเร็วอาจพบว่าตัวเองมีข้อได้เปรียบในการแข่งขันที่ไม่คาดคิดในภูมิทัศน์การพัฒนาที่เป็นระบบอัตโนมัติมากขึ้น
อ้างอิง: Optimising for maintainability A case study of Gleam in production at Strand