ด้วยอานิสงส์ของเครื่องมือ AI สำหรับเขียนโค้ด ความเร็วในการพัฒนาช่วงแรกพุ่งแบบบ้าคลั่งก็จริง แต่โค้ดที่กองขึ้นมาอย่างรวดเร็วโดยไม่มีเทสต์ สุดท้ายก็กลายเป็นนรกแห่งการรีแฟกเตอร์อยู่ดี โดยเฉพาะเวลาต้องดูแลหลายบริการพร้อมกัน โปรเจกต์ที่ไม่มีเทสต์นี่น่ากลัวจนไม่กล้าแตะ เพราะทุกครั้งที่ไปแก้ฟีเจอร์หนึ่ง ก็กังวลว่าจะมีที่อื่นพังตามมาหรือเปล่า
อุปมาเรื่อง "เทสต์ = คูเมือง" นี่แม่นมากครับ คู่แข่งอาจคัดลอกโค้ดได้ แต่การจะลอกแม้กระทั่ง test suite ที่ครอบคลุม edge case หลายพันแบบนั้นไม่ใช่เรื่องง่าย โดยเฉพาะเมื่อ AI อาจเก่งเรื่องสร้างโค้ด แต่การสร้างสถานการณ์ทดสอบที่มีความหมายยังเป็นพื้นที่ที่ต้องอาศัยความรู้เชิงโดเมนจากมนุษย์อยู่มาก ยิ่งทำให้ประเด็นนี้ชัดเจนขึ้นไปอีก
รู้สึกแย่ ขอโทษ
ว้าว เจ๋งมากเลยครับ ดูเหมือนว่าจะเป็นเพราะ RustPython สินะครับ ขอให้ได้ผลลัพธ์ที่ดีครับ!
Rust มีสัดส่วนของข้อผิดพลาดที่ถูกจับได้ตอนคอมไพล์ค่อนข้างมาก เลยให้ความรู้สึกว่าการคอมไพล์ไม่ผ่านกลับช่วยให้ AI เดินไปในทางที่ถูกต้องมากขึ้น
ลองสมัครดูแล้วครับ
ก็เป็นแค่การคาดเดานะครับ แต่คิดว่าน่าจะเป็นเพราะอุปสรรคในการเริ่มต้นกับ Rust หายไปแล้ว
ปัญหาใหญ่ที่สุดคือเขียนโค้ดแล้วคอมไพล์ไม่ผ่านอยู่เรื่อย ๆ แต่ว่า AI ช่วยทำแทนให้ได้ไงครับ
ดูเหมือนว่าจะเป็นการทดสอบแบบ Joke สินะ
DIY, ขบวนการเมกเกอร์, อินดี้, พังก์, โอเพนซอร์ส ล้วนเป็นการโต้แย้งต่อการทำให้เป็นอุตสาหกรรม ทุนนิยม และบริโภคนิยม แต่กลับบอกว่าการก้าวข้ามข้อจำกัดของสิ่งเหล่านั้นคือการยอมรับบริโภคนิยมเสียอย่างนั้น
ผมเห็นด้วยว่าการเขียนโค้ดแบบไวบ์นั้นเข้ากับกรอบการบริโภคได้ดี คิดว่ามันเป็นเวอร์ชันการเขียนโค้ดของกระแสแกะกล่อง Temu กับ Ali ที่เคยฮิตกันเมื่อไม่นานนี้ (https://www.asiae.co.kr/article/2024053117460950053)
แต่ถ้าจะบอกว่ากรอบการบริโภคคือวิธีที่จะไม่เดินซ้ำรอยความล้มเหลวของขบวนการเมกเกอร์ ผมก็เห็นด้วยได้ยากในหลายแง่มุมเหมือนกับคอมเมนต์ใน HN นั่นแหละครับ
ไวบ์โค้ดดิงกำลังสืบทอดประวัติศาสตร์ของนักพัฒนาพลเมืองต่อไป
ตอนนี้ไวบ์โค้ดดิงกำลังก้าวไปสู่การเป็นสิ่งที่ทำให้การเขียนโค้ดง่าย รวดเร็ว และขาดไม่ได้ ราวกับไฟฟ้า
แม้แต่นักเขียนโปรแกรมอัจฉริยะในบริษัทจำนวนมากก็ยังเขียนโค้ดต่อไปด้วยพรอมป์ต์และเอเจนต์โดยไม่ต้องพิมพ์โค้ดสักบรรทัดแล้ว
แม้จะมีคนพยายามลดทอนคุณค่านี้ลง แต่ก็ยากจะโต้แย้งว่าไวบ์โค้ดดิงของ Andrej Karpathy กำลังเป็นเหตุการณ์สำคัญที่ฝากรอยไว้ในประวัติศาสตร์คอมพิวเตอร์
เป็นคำถามที่ดีครับ ที่จริงแล้วเงื่อนไขแบบ "ไฮบริด" ในการทดลองของเราก็คือแนวทางนั้นพอดี — คือการให้ทั้งสรุปที่จัดระเบียบแล้วควบคู่กับบันทึกประสบการณ์ดิบ
ผลลัพธ์คือแบบไฮบริดได้สูงสุดที่ 4.95/5.0 ครับ ถ้าให้แค่สรุปอย่างเดียวจะได้ 2.65 แต่พอแนบบันทึกกระบวนการอย่าง "ล้มเหลว" หรือ "ไม่ทราบสาเหตุ" เข้าไป กลับช่วยชดเชยจุดอ่อนของสรุปได้
ดังนั้นข้อสรุปคือ "ไม่ใช่ว่าตัวสรุปเองไม่ดี แต่ต้องเก็บทั้งกระบวนการและความไม่แน่นอนไว้ด้วย"
แต่เนื่องจาก N=1 จึงยังต้องมีงานวิจัยต่อเนื่องเพื่อดูว่าสามารถนำไปใช้ได้อย่างครอบคลุมกับผู้ใช้ที่หลากหลายหรือไม่
ถ้าอย่างนั้น หากออกแบบให้หน่วยความจำสังเคราะห์บรรจุกระบวนการ ความล้มเหลว และความสำเร็จของงานเหล่านั้นไว้ด้วย จะต่างออกไปไหม?
ใช่ครับ ตอนแรกผมเองก็คาดว่าอย่างน้อยหน่วยความจำสังเคราะห์ก็น่าจะดีกว่าเบสไลน์ แต่พอเห็นผลลัพธ์แล้วก็แปลกใจมาก
พอลองวิเคราะห์ดูก็พบว่าหัวใจสำคัญคือ "การคงไว้ซึ่งความไม่แน่นอน" ล็อกดิบจะทิ้งร่องรอยอย่าง "ลองอันนี้แล้วแต่ไม่ได้ผล", "ไม่รู้สาเหตุ" ไว้ ทำให้เอเจนต์ตอบได้ว่าอะไรที่มันไม่รู้ก็คือไม่รู้ แต่ในฉบับสรุป บริบทแบบนั้นกลับถูกลบหายไปหมด เลยกลายเป็นว่ามันตอบผิดอย่างมั่นใจเสียมากกว่า
จากประสบการณ์ก็พอรู้สึกแบบนี้อยู่เหมือนกัน แต่เมมโมรีสังเคราะห์นี่แย่ยับยิ่งกว่าที่ผมคิดไว้มาก
กะจะลองใช้ดูอยู่แล้วเชียว แต่รองรับได้แค่ถึง gemini 2.5 เอง... รายการโมเดลที่รองรับนี่ก็ใช้ไวบ์โค้ดดิ้งทำเหมือนกันเหรอ
น่าสนใจนะ แต่ก็แอบคิดเหมือนกันว่าสุดท้ายมันอาจจะวิวัฒน์ไปในทางที่ใช้โทเค็นของตัวเองเยอะ ๆ แล้วก็เก็บค่าใช้จ่ายแพงขึ้นหรือเปล่า และจริง ๆ แล้วไลบรารีบางส่วนก็ดูเหมือนว่า AI เรียนรู้มาแล้วเลยสร้างขึ้นมาได้เองหรือเปล่า
พอคิดว่าถ้าตัวเอเจนต์มีความชอบ ไลบรารีเฉพาะบางตัวเท่านั้นที่จะพัฒนาต่อ ก็รู้สึกแปลก ๆ เหมือนกันครับ
ท้ายที่สุดแล้วกระทรวงกลาโหมสหรัฐก็ทิ้ง Anthropic แล้วเลือก OpenAI แต่มีความต่างกันในเชิงถ้อยคำอย่างที่มักพูดกันอยู่
OpenAI เสนอ กลไกการดำเนินการที่เป็นรูปธรรม ไปพร้อมกัน เช่น การสร้างมาตรการความปลอดภัยทางเทคนิค, การส่ง FDE (วิศวกรภาคสนาม) เข้าไปประจำ, และการดีพลอยแบบเฉพาะสำหรับคลาวด์
Anthropic เรียกร้อง ข้อยกเว้นในระดับเงื่อนไขการใช้งาน
ในมุมของกระทรวงกลาโหมสหรัฐ จึงมองว่า "บริษัทเอกชนกำลังใช้อำนาจวีโต้ต่อกรณีการใช้งานรายกรณี" และประกาศออกมาในทำนองเหมือนลงโทษเชิงสั่งสอน
ข้อตกลงนี้ถูกประกาศไม่นานหลังจาก Anthropic ถูกระบุว่าเป็นความเสี่ยงด้านซัพพลายเชน และ
ถ้าดูจากบทความของ Axios กระทรวงกลาโหมใช้ความขัดแย้งกับ Anthropic เป็นเครื่องมือตั้งโทนในการเจรจากับบริษัท AI รายอื่น ๆ และ
OpenAI ก็เหมือนสามารถดึงข้อตกลงออกมาได้ในรูปแบบที่กระทรวงกลาโหมยอมรับได้ภายใต้แรงกดดันนั้น
ความต่างของถ้อยคำในจุดยืนอย่างเป็นทางการก็มากเหมือนกัน
Sam Altman บอกว่า "กระทรวงกลาโหมแสดงความเคารพต่อความปลอดภัยอย่างลึกซึ้ง" ขณะที่
ฝั่ง Anthropic ยังคงใช้น้ำเสียงแบบ "เราไม่อาจเห็นชอบต่อข้อเรียกร้องของกระทรวงกลาโหมได้ตามมโนธรรม" จนถึงที่สุด
ดูเหมือนว่าแม้จะเป็นหลักการเดียวกัน แต่ความต่างใหญ่คือจะรักษาหน้ากระทรวงกลาโหมหรือไม่ และ
สุดท้ายเมื่อ OpenAI ยอมรับ เงื่อนไขเลยออกมาดูแปลก ๆ
Sam Altman จึงใส่ประโยคว่า "ขอให้เสนอเงื่อนไขนี้แบบเดียวกันกับทุกบริษัท AI" ไว้ในตอนท้าย
ซึ่งก็ดูเหมือนเป็นการส่งสัญญาณอ้อม ๆ ว่าอยากให้ผ่อนมาตรการที่ใช้กับ Anthropic ลง
ขอให้คงความมินิมอลไว้เฉยๆ จะไม่ได้เหรอ...?
หรือไม่ก็ไหนๆ WordPad ก็หายไปแล้ว ออกตัวใหม่ที่เบากว่านี้มาสักตัวไปเลย...
ผมเป็นนักพัฒนาเดี่ยวที่ดูแลอยู่ 7 โปรเจกต์ และบทความนี้ก็แทงใจมากครับ
ด้วยอานิสงส์ของเครื่องมือ AI สำหรับเขียนโค้ด ความเร็วในการพัฒนาช่วงแรกพุ่งแบบบ้าคลั่งก็จริง แต่โค้ดที่กองขึ้นมาอย่างรวดเร็วโดยไม่มีเทสต์ สุดท้ายก็กลายเป็นนรกแห่งการรีแฟกเตอร์อยู่ดี โดยเฉพาะเวลาต้องดูแลหลายบริการพร้อมกัน โปรเจกต์ที่ไม่มีเทสต์นี่น่ากลัวจนไม่กล้าแตะ เพราะทุกครั้งที่ไปแก้ฟีเจอร์หนึ่ง ก็กังวลว่าจะมีที่อื่นพังตามมาหรือเปล่า
อุปมาเรื่อง "เทสต์ = คูเมือง" นี่แม่นมากครับ คู่แข่งอาจคัดลอกโค้ดได้ แต่การจะลอกแม้กระทั่ง test suite ที่ครอบคลุม edge case หลายพันแบบนั้นไม่ใช่เรื่องง่าย โดยเฉพาะเมื่อ AI อาจเก่งเรื่องสร้างโค้ด แต่การสร้างสถานการณ์ทดสอบที่มีความหมายยังเป็นพื้นที่ที่ต้องอาศัยความรู้เชิงโดเมนจากมนุษย์อยู่มาก ยิ่งทำให้ประเด็นนี้ชัดเจนขึ้นไปอีก
มีเรื่องที่ผมสงสัยอยากถามนักพัฒนาครับ ว่าทำไมช่วงหลังนี้โปรเจกต์ส่วนใหญ่ถึงมักพัฒนาด้วย Rust มากกว่า Golang? เหตุผลที่ใหญ่ที่สุดเป็นเพราะมีหรือไม่มี GC ใช่ไหม?
อันนี้ดีเลยนะ