1 คะแนน โดย GN⁺ 2025-12-13 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ผู้เขียนซึ่งพัฒนาโค้ดเอดิเตอร์ส่วนตัว Boo อธิบายเหตุผลที่หยุดโปรเจ็กต์นี้ไว้ชั่วคราวเพื่อไปสร้างภาษาโปรแกรมใหม่
  • Boo เป็นเอดิเตอร์ที่พัฒนาด้วย Rust ซึ่งมี การนำทางด้วยคีย์บอร์ดแบบยึดมนุษย์เป็นศูนย์กลาง และ ระบบทดแทน LSP โดยตั้งใจทำไว้ใช้ส่วนตัวมากกว่าจะทำเชิงพาณิชย์
  • เขามองว่ากระบวนการพัฒนาที่ซ้ำๆ ทำให้ความคิดสร้างสรรค์ลดลง และให้ความสำคัญกับความสุขจากการสร้าง ซอฟต์แวร์ที่สร้างแรงบันดาลใจ
  • ยกตัวอย่าง การต่อเลโก้ และ The Legend of Zelda: Breath of the Wild เพื่อเน้นย้ำความสำคัญของงานสร้างสรรค์ที่น่าจดจำ
  • แทนที่จะเดินตามสูตรสำเร็จของความสำเร็จ เขายังคงยึด ปรัชญาการพัฒนาที่ขับเคลื่อนด้วยความสนใจและการเรียนรู้ของตนเอง และมีแผนจะเขียน Boo ใหม่อีกครั้งด้วยภาษาที่เขาสร้างขึ้นเอง

โปรเจ็กต์ Boo และแรงจูงใจในการพัฒนา

  • Boo เป็นโปรเจ็กต์ที่ผู้เขียนสร้างขึ้นเป็น โค้ดเอดิเตอร์สำหรับตัวเอง โดยให้ความสำคัญกับประโยชน์ใช้สอยส่วนบุคคลมากกว่าความสำเร็จในวงกว้าง
    • Boo มีความสามารถด้าน การนำทางคีย์บอร์ดสำหรับมนุษย์ และใช้ระบบที่เร็วกว่าและสร้างภาระต่อ OS น้อยกว่า LSP(Language Server Protocol)
    • ตอนนี้มันทำงานได้ดีพอจะใช้กับงานประจำวันแล้ว แต่ไม่มีแผนจะเผยแพร่เป็นโอเพนซอร์ส
  • ทั้ง Boo และ Rio Terminal ถูกเขียนด้วย Rust และมีโครงสร้างกับกระบวนการเผยแพร่ที่คล้ายกัน
    • ความคล้ายกันเหล่านี้ทำให้เขารู้สึกว่าเป็นงานซ้ำๆ และลดความสนุกในการพัฒนา

ความสัมพันธ์ระหว่างการสร้างสรรค์กับแรงบันดาลใจ

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

ตัวอย่างซอฟต์แวร์ที่น่าจดจำ

  • ยก The Legend of Zelda: Breath of the Wild เป็นตัวอย่าง โดยกล่าวถึงความสมบูรณ์แบบที่ทำให้แม้แต่คนที่ไม่ได้เล่นเกมก็ยังอยากซื้อคอนโซล
    • เขาเน้นพลังของผลงานที่มอบประสบการณ์ซึ่งยังคงอยู่ในความทรงจำไปอีกนานแม้หลังจากเล่นจบแล้ว
  • เขาอธิบายว่าซอฟต์แวร์ที่สร้างขึ้นด้วยความใส่ใจในระดับนี้สามารถทิ้ง ความประทับใจทางอารมณ์ ไว้ให้ผู้คนได้

การหยุด Boo และการพัฒนาภาษาใหม่

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

ปรัชญาและทัศนคติในการพัฒนา

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

1 ความคิดเห็น

 
GN⁺ 2025-12-13
ความเห็นจาก Hacker News
  • พออ่านว่าเขาตื่นขึ้นมาดื่มกาแฟ แล้วครอบครัวหลับกันหมดจนมีเวลาว่างช่วงบ่าย ก็อดสงสัยไม่ได้ว่าทำไม ตารางเวลาในบ้านถึงไม่ตรงกัน บางทีอาจเป็นครอบครัวที่นอนตอนบ่าย หรือเป็นคนที่เพิ่งตื่นมาเริ่มวันตอนเย็นก็ได้

    • มีคนแซวว่า งานอดิเรกอีกอย่างของเขาคือ วางยาสลบ หรือเปล่า อาจเป็นแค่มีเด็กงีบหลับตอนกลางวันก็ได้ แต่ถึงอย่างนั้น เวลาว่างก็คงมีแค่ราว ๆ สองชั่วโมง
    • ท่าทีที่เหมือนจะดีใจกับการไม่ต้องใช้เวลากับครอบครัวมัน ชวนให้รู้สึกแปลก ๆ นิดหน่อย ไม่น่าใช่เรื่องที่ควรฉลอง
    • พอเขายก “Breath of the Wild” มาเป็นตัวอย่าง ก็ให้ความรู้สึกเหมือนกำลังอ่าน โพสต์บล็อกจากอีกมิติหนึ่ง
    • อาจจะอยู่ที่ สเปน ก็ได้ เพราะเรื่อง siesta ระดับตำนานของที่นั่น
  • ประโยคที่ว่า “editor นี้มีไว้เพื่อทำให้ฉันมีความสุข” ฟังดูสดใหม่ดี ทุกวันนี้มีแรงกดดันให้ทุก side project ต้องพัฒนาไปเป็น โอเพนซอร์สหรือ SaaS ซึ่งหลายครั้งกลับฆ่าความคิดสร้างสรรค์เสียเอง โปรเจกต์ทดลองอย่าง Boo หรือ Rio ดูเหมือนจะเกิดจากอิสระแบบนี้

    • โอเพนซอร์สนั้นดี แต่ผมก็คิดว่าแบบ เปิดโค้ดเฉย ๆ โดยไม่รับแพตช์ ก็โอเคเหมือนกัน
    • เดี๋ยวนี้บรรยากาศหนักกว่าแค่โอเพนซอร์สหรือ SaaS อีก คือทุกอย่างต้องไปสู่ระดับ enterprise scale ให้ได้ ภาษาขนาดเล็ก การทดลอง self-hosting และจิตวิญญาณแบบ DIY กลับกลายเป็นวัฒนธรรมสวนกระแสไปแล้ว
    • ผมเห็นด้วยกับประโยค “มีไว้เพื่อทำให้ฉันมีความสุข” มาก (Emacs)
  • คำว่า “ฉันทำมันเพื่อตัวเอง” เป็นวิธีแบบ ศิลปินจำนวนมาก Tolkien ก็เป็นแบบนั้น ส่วนใหญ่เริ่มจากทำเพื่อตัวเองก่อนแล้วค่อยเอาออกมาให้โลกเห็น แต่โดยมากก็ไม่มีใครสนใจ หรือกว่าจะได้รับความสนใจก็ตอนเสียชีวิตไปแล้ว ถึงอย่างนั้นก็ไม่เป็นไร สิ่งสำคัญคือ สัญชาตญาณความเป็นมนุษย์ที่จะถ่ายทอดจินตนาการออกมาสู่ภายนอก

    • ผมเองก็สร้าง ไลบรารี canvas ของตัวเองด้วยความรู้สึกแบบนั้น เริ่มจากอยากนำเสนอบทกวีบนเว็บไซต์ในรูปแบบใหม่ ๆ แล้วมันก็กินเวลาว่างของผมมากว่าสิบปีโดยไม่รู้ตัว ผลลัพธ์อยู่ที่ หน้าบทกวีนี้
    • เคยมีอีเมลที่ผมเขียนด้วยความโกรธ แล้วเพื่อนแนะนำให้นำไปส่งลงหนังสือพิมพ์ท้องถิ่นเป็น บทความแสดงความคิดเห็น (op-ed) ผมดีใจที่มีคนสนใจสิ่งที่ผมเขียน
    • ถ้าทำเพื่อตัวเองจริง ๆ ก็ไม่ควรใส่ใจกับสายตาคนอื่น ผมเองเมื่อก่อนก็เคยคิดว่า “คนอื่นจะมองยังไง” แต่พอเริ่มทำเพื่อตัวเองจริง ๆ ความรู้สึกมันเปลี่ยนไปหมดเลย
    • เมื่อก่อนถ้าศิลปินจะเดินตามวิสัยทัศน์ของตัวเองจริง ๆ มักต้องมี ผู้อุปถัมภ์ (patron) ทุกวันนี้การอุปถัมภ์ถูกทำให้เป็นประชาธิปไตยขึ้น แต่แทนที่ด้วยยอดคลิกที่ชี้ชะตาปากท้อง น่าเสียดายที่แทนที่จะมีผู้อุปถัมภ์ผู้มั่งคั่ง เงินกลับไหลไปอยู่กับ คริปโตหรือ AI
    • พูดถึง “ศิลปินที่เพิ่งดังหลังเสียชีวิต” ก็ทำให้นึกถึง จิตรกรชาวดัตช์ที่ไม่มีหูข้างหนึ่ง
  • ถ้าการเขียนโปรแกรมกลายเป็นงานซ้ำ ๆ องค์ประกอบแบบ ‘ว้าว’ จะลดลง แต่โปรเจกต์อย่าง yt-dlp ที่รองรับเว็บไซต์หลากหลายนั้นเป็นข้อยกเว้น การทำ data parser จำนวนมากนั้นน่าเบื่อก็จริง แต่ผลลัพธ์คือความรู้สึกว่า “ใช้ได้ทุกที่”

  • ผมสร้าง ซอฟต์แวร์ที่ทำให้คนรู้สึกบางอย่าง — ส่วนใหญ่คือความโกรธ ท้ายที่สุดแล้วซอฟต์แวร์มีอยู่แค่สองแบบ: แบบที่ไม่มีใครสนใจ กับแบบที่มีคนใช้มากพอจะบ่นถึงมัน

    • อย่าง Microsoft Teams หรือ Office 365 ก็กระตุ้นอารมณ์ได้แน่ ๆ แต่ ไม่ใช่ความสุข
    • ซอฟต์แวร์ DRM ก็เหมือนกัน โดยเฉพาะกรณี Sony BMG rootkit scandal ที่ถึงขั้นเป็นตำนาน
    • เครื่องมือที่ผมทำเพื่อแก้ปัญหาที่เจอทุกวันมักออกมามี คุณภาพดีที่สุด ถ้าพยายามทำให้เป็นนามธรรมทั่วไปเร็วเกินไป มันกลับจะช้าลงและคุณภาพตก
  • Emacs กับ Emacspeak ทำให้ผมมี อารมณ์ร่วมอย่างมาก มันเหมือนทั้งระบบคือคู่มือเล่มหนึ่ง กดแค่ C-h m ก็เห็นคำสั่งทั้งหมดได้ทันที ไม่มีอะไรซ่อนอยู่ และไม่ต้องไปคุ้ยเอกสาร HTML ถ้ามันทำไม่ได้ ผมก็แก้ด้วย Codex จนมันทำอย่างที่ต้องการได้

  • ในอุดมคติแล้ว การพัฒนาซอฟต์แวร์ควรถูกมองเป็นงานช่างฝีมือ (craft) เหมือนงานไม้ที่ทั้งมีประโยชน์และเป็นศิลปะได้ แต่หลายโปรเจกต์กลับปฏิบัติต่อนักพัฒนาเหมือนแรงงานโรงงาน ปัญหาคือวัฒนธรรมที่ให้ความสำคัญกับ ปริมาณมากกว่าคุณภาพ
    ในขณะเดียวกัน การมองซอฟต์แวร์เป็นแค่งานศิลปะก็ไม่ค่อยสอดคล้องกับความจริง เพราะจุดประสงค์ของโค้ดไม่ใช่เพื่อการชื่นชม แต่เพื่อให้มันทำงาน ถึงอย่างนั้นก็น่าเสียดายที่คำว่า “ซอฟต์แวร์ที่มีงานช่างฝีมืออยู่ในนั้น” ฟังดูแปลกหู

    • งานไม้เองสุดท้ายก็ทำ เก้าอี้ไว้ให้นั่ง ไม่ใช่ไว้ดู แล้วทำไมเราถึงไม่มองซอฟต์แวร์ในฐานะงานช่างฝีมือบ้างก็ไม่รู้
  • FAANG อย่าง Meta, Google เองก็สร้าง ซอฟต์แวร์ที่ทำให้คนรู้สึกบางอย่าง มาแล้ว — ทั้งความโกรธ ความหดหู่ และบางครั้งก็ความสุขด้วย แต่มันก็แสดงให้เห็นว่าเทคโนโลยีที่เริ่มต้นด้วยเจตนาดีสามารถ บิดเบือนไปได้อย่างไร อย่างที่ว่า “ถนนสู่นรกปูไว้ด้วยความตั้งใจดี” การไล่ตามความดีมักลงเอยด้วยการก่อผลร้าย
    ถ้าจะอ้างคำพูดของ Knuth ก็ต้องว่า “ปล่อยให้นักวิทยาการคอมพิวเตอร์หลายพันคนทำในสิ่งที่พวกเขาอยากทำอย่างอิสระ” นั่นคือแรงขับของความก้าวหน้า Bell Labs ก็เป็นแบบนั้น เสรีภาพในการสำรวจค้นหา จึงสำคัญ
    ทุกวันนี้เราหมกมุ่นกับการ optimize แต่กลับไม่แม่นคณิตศาสตร์นัก สุดท้ายก็กลายเป็น สังคมที่หยุดสำรวจ ไปแล้ว ผมเลยคิดว่านี่คือเหตุผลที่ความก้าวหน้าช้าลง

    • ผมมีวลีอยู่ประโยคหนึ่งว่า ถ้าอยาก “ต้อนแมว” คุณก็ต้อง กลายเป็นแมวเสียเอง ถ้าจะนำพวกอัจฉริยะ คุณก็ต้องเป็นแบบพวกเขาเอง บางครั้งก็ต้องรับหลายบทบาทพร้อมกัน
  • ผมได้อุปนิสัยนี้มาจาก Casey Muratori กับ Jonathan Blow คือผมชอบสร้าง โลกใบเล็กของตัวเอง เป็นโปรเจกต์ที่มีผมเป็นทั้งผู้ใช้และกลุ่มเป้าหมายเพียงคนเดียว ไม่มีเดดไลน์ ไม่มีคำขอ ไม่มี runtime เป็นพื้นที่แห่งความสุขล้วน ๆ

    • มีคนถามว่า “สร้างโลกของตัวเอง” นี่หมายถึง โลกภูมิศาสตร์สมมติ หรือเปล่า Tolkien กับ Stevenson ก็เริ่มแบบนั้นเหมือนกัน
    • แต่ Blow กับ Casey ใช้เวลานานมากกว่าจะมีผลงานออกมา
  • ทุกวันนี้ซอฟต์แวร์ส่วนใหญ่ทำให้ผมเกิด อารมณ์รุนแรง

    • โดยเฉพาะพอเห็น node_modules แล้วหงุดหงิดมาก พอเห็นแอปที่ทำบน Electron ก็อดคิดไม่ได้ว่า “พวกเราพลาดกันตรงไหน” และผมก็ไม่ชอบการเอา UI มือถือมาครอบบนเดสก์ท็อปด้วย