ยุคใหม่ของซอฟต์แวร์ที่ปรับแต่งได้: ทำไม Open Source จึงสำคัญกว่าที่เคย

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

การปรับแต่งซอฟต์แวร์เป็นเรื่องง่ายขึ้นอย่างน่าทึ่ง

สิ่งที่เป็นไปได้ในวันนี้คือการใช้ "เอเจนต์" หรือโปรแกรมที่ทำงานอัตโนมัติ เพื่อช่วยในการปรับแต่งซอฟต์แวร์ได้อย่างง่ายดาย โดยมีหลักการสำคัญ 2 ข้อ คือ:

  1. การดาวน์โหลดและแก้ไขซอร์สโค้ด: สั่งให้เอเจนต์ดาวน์โหลดซอร์สโค้ดของซอฟต์แวร์ที่ต้องการ แล้วทำการแก้ไขตามความต้องการเฉพาะของเรา พร้อมบันทึกแรงจูงใจในการเปลี่ยนแปลงนั้นไว้ในระบบควบคุมเวอร์ชัน
  2. การจัดการการอัปเดตอัตโนมัติ: ตั้งค่าให้เอเจนต์ตรวจสอบการเปลี่ยนแปลงจากเวอร์ชันต้นฉบับ (upstream) เป็นประจำทุกคืน และทำการรวมการแก้ไขของเราเข้ากับเวอร์ชันใหม่ ตรวจสอบความถูกต้อง และอัปเดตซอฟต์แวร์ให้ทันสมัยอยู่เสมอ

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

ตัวอย่างการปรับแต่ง: Shelley และ Meat

ลองนึกภาพเครื่องมือที่ช่วยให้เราตรวจสอบโค้ดที่แตกต่างกัน (diffs) โดยใช้ LLM (Large Language Model) เพื่อตัดส่วนที่ไม่สำคัญออกไป เช่น บล็อกการนำเข้า (import blocks) หรือการจัดการข้อผิดพลาด (error handling) เพื่อให้เราโฟกัสเฉพาะส่วนเนื้อหาสำคัญจริง ๆ เครื่องมือนี้ชื่อว่า "meat.dev"

หากเราต้องการนำ "meat.dev" มาใช้กับ "Shelley" (ซึ่งเป็นเอเจนต์ที่ผู้เขียนบทความใช้) เราสามารถสั่งงานด้วยพรอมต์เดียว เช่น: "โปรดรวม meat.dev เข้ากับ Shelley ติดตั้งเวอร์ชันล่าสุดใน PATH เมื่อ Shelley สร้าง commit ให้เริ่มประมวลผล commit นั้นด้วย meat โดยอัตโนมัติ เพิ่มปุ่มสลับในมุมมอง Diffs ของ Shelley หาก commit ยังอยู่ระหว่างการประมวลผล ให้แสดงสถานะแก่ผู้ใช้"

พรอมต์เดียวนี้สามารถทำให้ "meat.dev" ทำงานร่วมกับ "Shelley" ได้อย่างราบรื่น ช่วยประหยัดเวลาในการรอโมเดลประมวลผลก่อนที่เราจะเริ่มรีวิวโค้ด

ซอฟต์แวร์ที่ปรับแต่งได้คืออนาคต

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

แต่เมื่อต้นทุนเหล่านี้ลดลงอย่างมากด้วยความช่วยเหลือจากเอเจนต์ ทำให้การปรับแต่งซอฟต์แวร์สำหรับผู้ใช้คนเดียว หรือแม้แต่ทีมขนาดเล็ก กลายเป็นเรื่องที่ทำได้จริง

ซอฟต์แวร์หลายประเภทต้องถูกคิดค้นใหม่

การที่ซอฟต์แวร์สามารถปรับแต่งได้ ทำให้เราไม่จำเป็นต้องซื้อเครื่องมือจัดการงาน (task manager) หรือระบบจัดการเนื้อหา (CMS) ที่มีการตั้งค่าซับซ้อนอีกต่อไป แต่สามารถประกอบฟีเจอร์ที่ต้องการจากส่วนประกอบพื้นฐานที่มีอยู่ได้

ตัวอย่างเช่น บล็อกที่ท่านกำลังอ่านอยู่นี้ก็เป็นซอฟต์แวร์ที่สร้างขึ้นเองโดยใช้ "Shelley" เพราะง่ายกว่าในการนำไลบรารีต่างๆ เช่น "Tiptap" มาประกอบและปรับแต่งให้ตรงตามความต้องการ มากกว่าที่จะพยายามปรับแต่งซอฟต์แวร์ที่มีอยู่เดิม

ความแตกต่างระหว่าง Codex, Claude Code และ Open Source

เทคนิคการใช้พรอมต์เพื่อทำให้เอเจนต์สามารถปรับแต่งได้นั้น สามารถนำไปใช้กับเอเจนต์ Open Source อื่นๆ ได้อย่างง่ายดาย เช่น "Pi" หรือ "Codex"

แต่เมื่อเจอกับ "Claude Code" ซึ่งเป็นซอฟต์แวร์แบบปิด (closed-source) เราจะไม่สามารถปรับแต่งได้โดยตรง เราทำได้เพียงหวังว่าการทำงานที่เราต้องการนั้นจะเข้ากันได้กับ "hooks" ที่ผู้พัฒนาเตรียมไว้ให้ หากไม่เป็นเช่นนั้น ทางออกที่ดีที่สุดคือการเปลี่ยนไปใช้เอเจนต์ที่เปิดให้เราสามารถปรับแต่งได้

กุญแจสำคัญคือซอร์สโค้ด

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

#OpenSource #PersonalizedSoftware #SoftwareDevelopment

ขอบคุณ แหล่งข้อมูล
https://blog.exe.dev/devtools-must-be-open-source

ยุคใหม่ของซอฟต์แวร์ที่ปรับแต่งได้: ทำไม Open Source จึงสำคัญกว่าที่เคยเมื่อไม่กี่ปีที่ผ่านมา ซอฟต์แวร์ส่วนใหญ่ที่เราใช้ล้วนถูกสร้างขึ้นโดยผู้อื่น แม้เราจะสามารถปรับแต่งการทำงานผ่านไฟล์ตั้งค่า ปลั๊กอิน หรือส่วนขยายต่างๆ ได้ แต่ก็ยังคงมีข้อจำกัดเมื่อเทียบกับการสร้างสรรค์ซอฟต์แวร์ขึ้นมาเพื่อตอบสนองความต้องการเฉพาะตัวของเราเอง การสร้างซอฟต์แวร์ส่วนตัวนั้นอาจดูเหมือนเป็นเรื่องที่ใช้เวลาและไม่คุ้มค่าในอดีต แต่ปัจจุบัน เทคโนโลยีได้เปลี่ยนแปลงมุมมองนี้ไปโดยสิ้นเชิงการปรับแต่งซอฟต์แวร์เป็นเรื่องง่ายขึ้นอย่างน่าทึ่งสิ่งที่เป็นไปได้ในวันนี้คือการใช้ "เอเจนต์" หรือโปรแกรมที่ทำงานอัตโนมัติ เพื่อช่วยในการปรับแต่งซอฟต์แวร์ได้อย่างง่ายดาย โดยมีหลักการสำคัญ 2 ข้อ คือ:การดาวน์โหลดและแก้ไขซอร์สโค้ด: สั่งให้เอเจนต์ดาวน์โหลดซอร์สโค้ดของซอฟต์แวร์ที่ต้องการ แล้วทำการแก้ไขตามความต้องการเฉพาะของเรา พร้อมบันทึกแรงจูงใจในการเปลี่ยนแปลงนั้นไว้ในระบบควบคุมเวอร์ชันการจัดการการอัปเดตอัตโนมัติ: ตั้งค่าให้เอเจนต์ตรวจสอบการเปลี่ยนแปลงจากเวอร์ชันต้นฉบับ (upstream) เป็นประจำทุกคืน และทำการรวมการแก้ไขของเราเข้ากับเวอร์ชันใหม่ ตรวจสอบความถูกต้อง และอัปเดตซอฟต์แวร์ให้ทันสมัยอยู่เสมอหัวใจสำคัญคือ เอเจนต์ไม่ได้เพียงแค่เขียนโค้ดตามคำสั่ง แต่ยังสามารถจัดการกระบวนการซิงโครไนซ์การเปลี่ยนแปลงกับเวอร์ชันต้นฉบับได้โดยอัตโนมัติ ทำให้การปรับแต่งซอฟต์แวร์นั้นทั้งเริ่มต้นได้ง่ายและดูแลรักษาได้ต่อเนื่องตัวอย่างการปรับแต่ง: Shelley และ Meatลองนึกภาพเครื่องมือที่ช่วยให้เราตรวจสอบโค้ดที่แตกต่างกัน (diffs) โดยใช้ LLM (Large Language Model) เพื่อตัดส่วนที่ไม่สำคัญออกไป เช่น บล็อกการนำเข้า (import blocks) หรือการจัดการข้อผิดพลาด (error handling) เพื่อให้เราโฟกัสเฉพาะส่วนเนื้อหาสำคัญจริง ๆ เครื่องมือนี้ชื่อว่า "meat.dev"หากเราต้องการนำ "meat.dev" มาใช้กับ "Shelley" (ซึ่งเป็นเอเจนต์ที่ผู้เขียนบทความใช้) เราสามารถสั่งงานด้วยพรอมต์เดียว เช่น: "โปรดรวม meat.dev เข้ากับ Shelley ติดตั้งเวอร์ชันล่าสุดใน PATH เมื่อ Shelley สร้าง commit ให้เริ่มประมวลผล commit นั้นด้วย meat โดยอัตโนมัติ เพิ่มปุ่มสลับในมุมมอง Diffs ของ Shelley หาก commit ยังอยู่ระหว่างการประมวลผล ให้แสดงสถานะแก่ผู้ใช้"พรอมต์เดียวนี้สามารถทำให้ "meat.dev" ทำงานร่วมกับ "Shelley" ได้อย่างราบรื่น ช่วยประหยัดเวลาในการรอโมเดลประมวลผลก่อนที่เราจะเริ่มรีวิวโค้ดซอฟต์แวร์ที่ปรับแต่งได้คืออนาคตในอดีต ต้นทุนในการเรียนรู้โค้ดและทำการเปลี่ยนแปลงนั้นสูง ทำให้ซอฟต์แวร์ที่ซับซ้อนมักมาพร้อมกับไฟล์ตั้งค่าจำนวนมาก หรือระบบปลั๊กอินที่ซับซ้อน การจะเรียนรู้โค้ดเบสขนาดใหญ่เพื่อเพิ่มฟีเจอร์เล็กๆ น้อยๆ เพียงเพื่อใช้ส่วนตัวนั้นดูเป็นเรื่องที่ไม่สมเหตุสมผลแต่เมื่อต้นทุนเหล่านี้ลดลงอย่างมากด้วยความช่วยเหลือจากเอเจนต์ ทำให้การปรับแต่งซอฟต์แวร์สำหรับผู้ใช้คนเดียว หรือแม้แต่ทีมขนาดเล็ก กลายเป็นเรื่องที่ทำได้จริงซอฟต์แวร์หลายประเภทต้องถูกคิดค้นใหม่การที่ซอฟต์แวร์สามารถปรับแต่งได้ ทำให้เราไม่จำเป็นต้องซื้อเครื่องมือจัดการงาน (task manager) หรือระบบจัดการเนื้อหา (CMS) ที่มีการตั้งค่าซับซ้อนอีกต่อไป แต่สามารถประกอบฟีเจอร์ที่ต้องการจากส่วนประกอบพื้นฐานที่มีอยู่ได้ตัวอย่างเช่น บล็อกที่ท่านกำลังอ่านอยู่นี้ก็เป็นซอฟต์แวร์ที่สร้างขึ้นเองโดยใช้ "Shelley" เพราะง่ายกว่าในการนำไลบรารีต่างๆ เช่น "Tiptap" มาประกอบและปรับแต่งให้ตรงตามความต้องการ มากกว่าที่จะพยายามปรับแต่งซอฟต์แวร์ที่มีอยู่เดิมความแตกต่างระหว่าง Codex, Claude Code และ Open Sourceเทคนิคการใช้พรอมต์เพื่อทำให้เอเจนต์สามารถปรับแต่งได้นั้น สามารถนำไปใช้กับเอเจนต์ Open Source อื่นๆ ได้อย่างง่ายดาย เช่น "Pi" หรือ "Codex"แต่เมื่อเจอกับ "Claude Code" ซึ่งเป็นซอฟต์แวร์แบบปิด (closed-source) เราจะไม่สามารถปรับแต่งได้โดยตรง เราทำได้เพียงหวังว่าการทำงานที่เราต้องการนั้นจะเข้ากันได้กับ "hooks" ที่ผู้พัฒนาเตรียมไว้ให้ หากไม่เป็นเช่นนั้น ทางออกที่ดีที่สุดคือการเปลี่ยนไปใช้เอเจนต์ที่เปิดให้เราสามารถปรับแต่งได้กุญแจสำคัญคือซอร์สโค้ดการที่ซอฟต์แวร์จะเป็น "Personalized Software" ได้อย่างแท้จริง ไม่ว่าจะเป็นสำหรับผู้ใช้คนเดียวหรือทีมขนาดเล็กนั้น จำเป็นต้องมีซอร์สโค้ดที่เข้าถึงได้ การปรับแต่งที่เคยมีต้นทุนสูงในอดีต ได้กลายเป็นเรื่องง่ายด้วยเทคโนโลยีปัจจุบัน ทำให้ซอฟต์แวร์ที่สามารถปรับแต่งได้นั้นทรงพลังยิ่งขึ้น และทั้งหมดนี้เริ่มต้นจากการที่เรามี "ซอร์สโค้ด" เป็นพื้นฐาน#OpenSource #PersonalizedSoftware #SoftwareDevelopmenthttps://blog.exe.dev/devtools-must-be-open-source
Shared content
BLOG.EXE.DEV
Devtools must be open source - exe.dev blog
The age of personalized software is here.
6 Σχόλια 0 Μοιράστηκε 283 Views 0 Προεπισκόπηση