นักพัฒนาตั้งคำถามเกี่ยวกับความสามารถของ AI ในการแก้ไขข้อผิดพลาดของโค้ดที่สร้างขึ้น ขณะที่อุตสาหกรรมเผชิญกับวิกฤตเอกลักษณ์

ทีมชุมชน BigGo
นักพัฒนาตั้งคำถามเกี่ยวกับความสามารถของ AI ในการแก้ไขข้อผิดพลาดของโค้ดที่สร้างขึ้น ขณะที่อุตสาหกรรมเผชิญกับวิกฤตเอกลักษณ์

ชุมชนนักพัฒนาซอฟต์แวร์กำลังต่อสู้กับคำถามพื้นฐาน: หากปัญญาประดิษฐ์สามารถสร้างโค้ดได้ด้วยความเร็วที่ไม่เคยมีมาก่อน ใครจะเป็นคนแก้ไขข้อผิดพลาดเมื่อเกิดปัญหาขึ้น? การถกเถียงนี้ทวีความรุนแรงขึ้นเมื่อบริษัทเทคโนโลยีใหญ่ๆ เลิกจ้างนักพัฒนาที่มีประสบการณ์เป็นจำนวนหลายพันคน ในขณะเดียวกันก็อ้างว่า AI จะเขียนโค้ด 95% ภายในปี 2030

หุ่นจำลองเดียวดายเป็นสัญลักษณ์ของความจำเป็นในการมีความเข้าใจของมนุษย์ในยุคของโค้ดที่สร้างโดย AI
หุ่นจำลองเดียวดายเป็นสัญลักษณ์ของความจำเป็นในการมีความเข้าใจของมนุษย์ในยุคของโค้ดที่สร้างโดย AI

ปัญหาการแก้ไขข้อผิดพลาดขึ้นเป็นประเด็นหลัก

ความท้าทายหลักไม่ได้อยู่ที่การเขียนโค้ดเท่านั้น แต่อยู่ที่การเข้าใจและแก้ไขเมื่อเกิดปัญหาขึ้น นักพัฒนาชี้ไปที่กฎของ Kernighan ซึ่งระบุว่าการแก้ไขข้อผิดพลาดนั้นยากกว่าการเขียนโค้ดถึงสองเท่า สิ่งนี้สร้างความขัดแย้ง: หาก AI เขียนโค้ดที่ขีดจำกัดของความสามารถ มนุษย์อาจขาดความรู้ที่จำเป็นในการแก้ไขข้อผิดพลาดได้อย่างมีประสิทธิภาพ

สมาชิกบางคนในชุมชนเสนอให้ขอให้ AI เขียนโค้ดที่เรียบง่ายกว่าที่จำเป็น อาจจะง่ายกว่าสี่เท่า เพื่อให้มนุษย์หรือโมเดล AI ที่ก้าวหน้ากว่าสามารถแก้ไขข้อผิดพลาดได้ในภายหลัง อย่างไรก็ตาม แนวทางนี้ทำให้เกิดคำถามเกี่ยวกับประสิทธิภาพและว่าการทำเช่นนี้จะทำลายจุดประสงค์ของการใช้ AI เพื่อเพิ่มผลผลิตหรือไม่

กฎของ Kernighan: หลักการโปรแกรมมิ่งที่ระบุว่าการแก้ไขข้อผิดพลาดต้องใช้ทักษะมากกว่าการเขียนโค้ดเดิมอย่างมีนัยสำคัญ ตั้งชื่อตาม Brian Kernighan ผู้ร่วมสร้างภาษาโปรแกรม AWK และผู้ร่วมเขียน The C Programming Language

การประยุกต์ใช้กฎของ Kernighan กับการแก้ไขบั๊กใน AI

  • หลักการเดิม: การแก้ไขบั๊กยากกว่าการเขียนโค้ดถึง 2 เท่า
  • วิธีแก้ไขที่เสนอสำหรับ AI: สร้างโค้ดที่เรียบง่ายกว่าที่จำเป็นถึง 4 เท่า
  • ช่วยให้สามารถแก้ไขบั๊กได้โดยโมเดลที่ฉลาดกว่าหรือมนุษย์
  • การแลกเปลี่ยนระหว่างความเรียบง่ายและประสิทธิภาพ

การยอมรับความวุ่นวายแทนการแก้ไขข้อผิดพลาดแบบดั้งเดิม

มุมมองที่รุนแรงกว่าที่เกิดขึ้นจากชุมชนเสนอให้ละทิ้งการแก้ไขข้อผิดพลาดแบบดั้งเดิมไปเลย แทนที่จะแก้ไขปัญหาโค้ดเฉพาะเจาะจง นักพัฒนาบางคนเสนอให้ปฏิบัติต่อโค้ดที่ AI สร้างขึ้นเหมือนกับว่ามันอยู่ในพื้นที่ความน่าจะเป็นที่มีหลายวิธีแก้ปัญหาอยู่ร่วมกันในเวลาเดียวกัน แนวทางนี้จะเน้นที่ผลลัพธ์ระดับมหภาคมากกว่าความถูกต้องของโค้ดทีละบรรทัด

เราต้องยอมรับความวุ่นวายโดยการสร้างตัวดึงดูดในระบบ และตัดแต่งผลลัพธ์ที่หลุดออกไปไกลเกินไปจากขอบเขตที่เราตั้งไว้ เราควรเน้นเฉพาะผลลัพธ์ระดับมหภาคเท่านั้น ไม่ใช่โค้ด

ปรัชญานี้แสดงถึงการเปลี่ยนแปลงพื้นฐานจากแนวปฏิบัติด้านวิศวกรรมซอฟต์แวร์แบบดั้งเดิม ที่การเข้าใจโค้ดทุกบรรทัดถือเป็นสิ่งสำคัญสำหรับการรักษาระบบที่เชื่อถือได้

แนวทางการแก้ไขบั๊กแบบดั้งเดิม เทียบกับ แนวทาง AI-Probability

  • แบบดั้งเดิม: การวิเคราะห์และแก้ไขโค้ดทีละบรรทัด
  • แบบ AI-Probability: โซลูชันหลายตัวที่อยู่ร่วมกันในพื้นที่ความน่าจะเป็น
  • การเปลี่ยนโฟกัส: จากโค้ดระดับจุลภาคไปสู่ผลลัพธ์ระดับมหภาค
  • เครื่องมือ: เอเจนต์ AI สำหรับการตัดทอนและการจัดการขอบเขต

ความท้าทายของโค้ดเก่า

การอภิปรายเผยให้เห็นจุดบอดที่สำคัญในการทำนายเกี่ยวกับการเขียนโค้ดด้วย AI: การพัฒนาซอฟต์แวร์ส่วนใหญ่เกี่ยวข้องกับการบำรุงรักษาระบบที่มีอยู่ ไม่ใช่การสร้างใหม่ตั้งแต่ต้น ฐานโค้ดเก่าที่มีอายุหลายทศวรรษต้องการความรู้เฉพาะที่นักพัฒนาที่มีประสบการณ์มี แต่ AI ยังขาดอยู่ในปัจจุบัน

เมื่อข้อผิดพลาดเกิดขึ้นในระบบการผลิตที่จัดการรายได้หลายล้านดอลลาร์ต่อวัน องค์กรต้องการนักพัฒนาที่เข้าใจทั้งโมเดลทฤษฎีเบื้องหลังซอฟต์แวร์และเทคนิคการแก้ไขข้อผิดพลาดในทางปฏิบัติ ชุมชนตั้งคำถามว่า AI สามารถให้ความเชี่ยวชาญของวิศวกรที่มีประสบการณ์ซึ่งใช้เวลาหลายปีในการเรียนรู้ระบบที่ซับซ้อนได้ทันทีหรือไม่

การกระจายต้นทุนการพัฒนาซอฟต์แวร์

  • การพัฒนาเริ่มแรก: เป็นส่วนเล็กของต้นทุนรวม
  • การบำรุงรักษาระยะยาว: ครอบงำต้นทุนโดยรวมของระบบ
  • ระบบเก่า: ต้องการนักพัฒนาที่มีประสบการณ์และความรู้เกี่ยวกับระบบ
  • ผลกระทบต่อรายได้: ระบบล่มเพียงหนึ่งวันสามารถสร้างความเสียหายมากกว่า 100,000 ดอลลาร์ สหรัฐฯ

ความกังวลเรื่องคุณภาพเพิ่มขึ้น

แตกต่างจากการปรับปรุงผลผลิตครั้งก่อนๆ ในการพัฒนาซอฟต์แวร์ เช่น ภาษาโปรแกรมระดับสูงหรือสภาพแวดล้อมการพัฒนาแบบรวม การสร้างโค้ดด้วย AI อาจลดคุณภาพของโค้ดลง นักพัฒนาสังเกตว่าในขณะที่เครื่องมือดั้งเดิมปรับปรุงทั้งความเร็วและความน่าเชื่อถือ โค้ดที่ AI สร้างขึ้นต้องการการดูแลจากมนุษย์อย่างต่อเนื่องเพื่อตรวจจับข้อผิดพลาดที่อาจร้ายแรง

การผสมผสานระหว่างโค้ดที่ AI สร้างขึ้นและภาษาโปรแกรมที่มีการกำหนดประเภทแบบหลวมๆ เช่น JavaScript และ Python อาจสร้างพายุที่สมบูรณ์แบบสำหรับช่องโหว่ด้านความปลอดภัย สคริปต์ด่วนที่ AI สร้างขึ้นมีแนวโน้มที่จะกลายเป็นส่วนประกอบสำคัญของระบบเมื่อเวลาผ่านไป ซึ่งอาจสร้างหนี้ทางเทคนิคที่องค์กรจะต้องจ่ายเป็นเวลาหลายปี

ขณะที่อุตสาหกรรมซอฟต์แวร์กำลังนำทางผ่านการเปลี่ยนแปลงนี้ ฉันทามติของชุมชนชี้ให้เห็นว่าแม้ AI จะเปลี่ยนแปลงวิธีการเขียนโค้ดอย่างแน่นอน แต่ความจำเป็นพื้นฐานสำหรับความเชี่ยวชาญของมนุษย์ในการเข้าใจ บำรุงรักษา และแก้ไขข้อผิดพลาดของระบบที่ซับซ้อนยังคงมีความสำคัญเช่นเดิม

อ้างอิง: The Mythical Machine-Month Paradox