การประกาศล่าสุดของ GitHub เกี่ยวกับ GitHub Spark ได้จุดประเด็นการถกเถียงเรื่องการเขียนโปรแกรมด้วยภาษาธรรมชาติขึ้นมาอีกครั้ง แต่ชุมชนนักพัฒนายังคงมีความกังวลเกี่ยวกับการนำไปใช้งานจริงและข้อจำกัดต่างๆ แม้ว่าเครื่องมือนี้จะสัญญาว่าจะปฏิวัติการพัฒนาแอปด้วยคำสั่งภาษาอังกฤษทั่วไป แต่นักพัฒนาที่มีประสบการณ์ได้ชี้ให้เห็นประเด็นสำคัญหลายอย่างที่อาจส่งผลต่อการนำไปใช้และประสิทธิภาพ
มรดกของ COBOL และการเขียนโปรแกรมด้วยภาษาธรรมชาติ
แนวคิดการเขียนโปรแกรมด้วยภาษาอังกฤษธรรมดาไม่ใช่เรื่องใหม่ - ย้อนกลับไปถึงการเปิดตัว COBOL เมื่อกว่า 60 ปีที่แล้ว ดังที่สมาชิกในชุมชนคนหนึ่งได้กล่าวไว้:
ผู้คนพยายามสร้างซอฟต์แวร์ด้วยภาษาอังกฤษธรรมดามาแล้วอย่างน้อย 65 ปี ลองดูประวัติของ COBOL สิ มันไม่เคยได้ผลในครั้งก่อน หรือครั้งก่อนหน้านั้น หรือแม้แต่ 50 ครั้งก่อนหน้านั้น - sqeaky
แม้ว่า COBOL จะประสบความสำเร็จในบางด้าน แต่ก็ไม่เคยสามารถทำตามสัญญาเรื่องการเขียนโปรแกรมด้วยภาษาอังกฤษธรรมดาได้อย่างสมบูรณ์ ซึ่งบ่งชี้ว่า GitHub Spark อาจต้องเผชิญกับความท้าทายทางประวัติศาสตร์ที่คล้ายคลึงกัน
ความท้าทายด้านการสื่อสารและการกำหนดข้อมูลจำเพาะ
นักพัฒนาในการอภิปรายชี้ให้เห็นว่าแม้แต่การสื่อสารระหว่างมนุษย์ด้วยกันในการพัฒนาซอฟต์แวร์ก็ยังเกิดความเข้าใจผิดได้ ชุมชนระบุว่าข้อกำหนดที่เขียนด้วยภาษาธรรมชาติมักมี:
- ข้อกำหนดที่ขัดแย้งกันเองในประโยคเดียวกัน
- ความซับซ้อนที่ซ่อนอยู่ในคำขอที่ดูเหมือนง่าย
- การตีความที่คลุมเครือต้องการการอธิบายเพิ่มเติมอยู่เสมอ
ความกังวลเรื่องคุณภาพโค้ดและการบำรุงรักษา
มีประเด็นสำคัญหลายอย่างเกี่ยวกับความยั่งยืนของโค้ดที่สร้างโดย AI:
- การทำซ้ำของโค้ด - การรันด้วย AI แต่ละครั้งอาจสร้างโซลูชันที่แตกต่างกันโดยสิ้นเชิง
- ความท้าทายในการบำรุงรักษา - การอัปเดตอาจนำไปสู่การเปลี่ยนแปลงฟังก์ชันการทำงานที่ไม่คาดคิด
- การตรวจสอบคุณภาพ - ความยากในการตรวจสอบว่าโค้ดที่ AI สร้างตรงตามข้อกำหนดและระเบียบ
- การตรวจสอบข้อผิดพลาด - ความสามารถที่จำกัดในการตรวจสอบโค้ดที่สร้างขึ้นในระดับใหญ่
กรณีการใช้งานที่เป็นไปได้และข้อจำกัด
ชุมชนแนะนำว่า GitHub Spark อาจเหมาะสมที่สุดสำหรับ:
- เครื่องมือภายในองค์กร
- โปรเจกต์ส่วนตัว
- การสร้างต้นแบบอย่างรวดเร็ว
- การสร้าง UI พื้นฐาน
- งานแปลงข้อมูลพื้นฐาน
อย่างไรก็ตาม มีแนวโน้มที่จะเผชิญความท้าทายกับแอปพลิเคชันที่ซับซ้อนซึ่งต้องการข้อกำหนดที่แม่นยำหรือต้องปฏิบัติตามกฎระเบียบ
การโต้แย้งระหว่างไวยากรณ์และภาษาธรรมชาติ
นักพัฒนาโต้แย้งว่าไวยากรณ์ของภาษาโปรแกรมมิ่ง แม้จะยากต่อการเรียนรู้ในตอนแรก แต่มีจุดประสงค์สำคัญในการเขียนตรรกะที่ชัดเจน อัตราส่วนของสัญญาณต่อสัญญาณรบกวนในภาษาธรรมชาติถือว่าต่ำเกินไปสำหรับความต้องการในการเขียนโปรแกรมที่แม่นยำ ซึ่งอาจนำไปสู่ข้อกำหนดที่เยิ่นเย้อและไม่มีประสิทธิภาพ
การอภิปรายแสดงให้เห็นว่าแม้ GitHub Spark จะเป็นการทดลองที่น่าสนใจในการทำให้การพัฒนาซอฟต์แวร์เป็นประชาธิปไตยมากขึ้น แต่ไม่น่าจะมาแทนที่วิธีการเขียนโปรแกรมแบบดั้งเดิมสำหรับการพัฒนาแอปพลิเคชันที่จริงจังได้ แต่อาจจะหาที่ทางของตัวเองในฐานะเครื่องมือสร้างต้นแบบหรือสำหรับแอปพลิเคชันง่ายๆ ที่สร้างโดยผู้ใช้ที่ไม่ใช่นักเทคนิค คล้ายกับที่ Excel ทำหน้าที่เป็นประตูสู่แนวคิดการเขียนโปรแกรมสำหรับผู้ใช้จำนวนมาก
ในขณะที่เครื่องมือพัฒนายังคงพัฒนาต่อไป ชุมชนแนะนำว่าการค้นหาหน่วยงานที่เหมาะสมสำหรับการช่วยเหลือด้วย AI - ระหว่างฟังก์ชันเดี่ยวและแอปพลิเคชันสมบูรณ์ - อาจเป็นกุญแจสำคัญในการทำให้เครื่องมือเหล่านี้มีประโยชน์จริงๆ สำหรับนักพัฒนา ในขณะที่หลีกเลี่ยงข้อบกพร่องของการเขียนโปรแกรมด้วยภาษาธรรมชาติทั้งหมด