รายงานการตายของโค้ดนั้นเกินจริงไปมาก
(stevekrouse.com)สเปกภาษาอังกฤษไม่ได้แม่นยำอย่างที่คิด
- "คุณจะไม่รู้เลยว่าทุกอย่างคลุมเครือแค่ไหน จนกว่าจะพยายามทำให้มันแม่นยำ" — เบอร์ทรันด์ รัสเซลล์
- การเขียนโปรแกรมก็เหมือนการเขียน คือเป็นงานที่ค่อยๆ ขัดเกลาไปแบบวนซ้ำ
ข้อจำกัดของ vibe coding
- AI แปลงภาษาอังกฤษเป็นโค้ดได้ ทำให้ "vibe coding" เป็นไปได้
- ปัญหาคือมันทำให้เข้าใจผิดว่าความรู้สึกลางๆ (vibe) คือ abstraction ที่แม่นยำ
- เมื่อฟีเจอร์เพิ่มขึ้นหรือระบบขยายใหญ่ abstraction ก็จะรั่ว (
leaky abstraction) และเกิดบั๊ก - กรณีจริง: แอป vibe coding ของ Dan Shipper กลายเป็นไวรัลแล้วล่ม → "การทำงานร่วมกันแบบเรียลไทม์นั้นยากเป็นบ้า"
abstraction คือเครื่องมือพิชิตความซับซ้อน
- สมองมนุษย์จัดการได้พร้อมกันแค่ 7 เรื่อง (±2) → เอาชนะความซับซ้อนได้ด้วย abstraction เท่านั้น
- "เป้าหมายของ abstraction ไม่ใช่การทำให้คลุมเครือ แต่คือการสร้างระดับความหมายใหม่ที่สามารถแม่นยำได้อย่างสมบูรณ์" — Dijkstra
- การสร้าง abstraction ที่ดีคือแก่นแท้ของการเขียนโปรแกรม (ReactJS, TailwindCSS ฯลฯ)
แม้ในยุค AGI โค้ดก็ยิ่งสำคัญขึ้น
- ความคิดที่ว่า "ถ้า AGI มา เราก็มีอัจฉริยะ 100 คนใช้งานได้ แล้วจะไปสนใจรายละเอียดทำไม" เป็นความเข้าใจผิด
- ไม่มีเหตุผลจะเอาสติปัญญานั้นไปใช้ผลิตงานห่วย (
slop) จำนวนมาก - เหมือนที่ไม่มีใครพูดถึง "vibe writing" ตัวโค้ดเองก็เป็นผลลัพธ์ที่สำคัญ
- ถ้า AGI มาถึง สิ่งแรกที่ควรทำคือใช้ AI เพื่อแก้ปัญหา abstraction ที่ยากยิ่งกว่าเดิม
- ผู้เขียนเองก็ใช้ Opus 4.6 แก้โจทย์ยากของ full-stack React framework สำหรับ Val Town ได้แบบวันช็อต
สรุป
- คำพูดว่า "โค้ดตายแล้ว" ก็เหมือนกับการบอกว่า "การเล่าเรื่องตายแล้ว" ตอนที่มีการประดิษฐ์แท่นพิมพ์
- AI ไม่ได้ฆ่าการเขียนโค้ด แต่เป็นเครื่องมือที่ช่วยให้สร้างโค้ดที่ดีกว่าเดิมได้
- โค้ดเพิ่งเริ่มต้นเท่านั้น
2 ความคิดเห็น
"ปัญหาคือมันทำให้เราเข้าใจผิดว่าความรู้สึกคลุมเครือ (vibe) เป็นเหมือนการนามธรรมที่แม่นยำ" เห็นด้วยมากครับ การนามธรรมนี่แหละเป็นสิ่งที่มีได้เฉพาะคนที่เข้าใจระดับล่างแบบ Bottom-up เท่านั้น
ไม่ว่าจะมองยังไง ตอนนี้ก็ดูเหมือนเป็นโอกาสสุดท้ายที่จะประสบความสำเร็จ