2 คะแนน โดย GN⁺ 2023-08-11 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Bram Moolenaar ได้ทิ้ง ท่าทีที่มุ่งแก้ปัญหาเป็นศูนย์กลาง ไว้ในซอร์ส โค้ดเอกสาร และ vim_dev ของ Vim และ Neovim ก็มองตนเองว่าเป็นโครงการที่สืบทอดมรดกของ Vim และ Bram
  • จุดแข็งของ Bram ปรากฏผ่านวิธีที่ช่วยให้ ความเข้าใจต่อปัญหาก้าวหน้า มากกว่าการตอบโต้แบบหยาบคายหรือการตัดสินเชิงส่วนตัว และเขาถูกจดจำในฐานะผู้สร้างคุณค่าที่เงียบงันแต่ลึกซึ้ง
  • หลักการ Problem/Solution ในข้อความคอมมิตของ Vim เรียบง่ายแต่มีประสิทธิภาพ และท่าทีนี้ยังต่อเนื่องไปถึงการสนับสนุนยูกันดา โดยไม่ทำให้ทรัพยากรเป็นสิ่งนามธรรมแต่จัดการด้วยตนเองโดยตรง
  • ในฐานะ อนุพันธ์ ของ Vim นั้น Neovim ยอมรับทั้งความต่อเนื่องและการแตกแขนงไปพร้อมกัน และยึดการบำรุงรักษา การทำเอกสาร ความสามารถในการขยาย และการฝังตัวเป็นแกนหลักที่จะสานต่อ
  • แนวทางที่ Neovim ต้องการสืบทอดไม่ใช่ความใหม่เพียงอย่างเดียว แต่ใกล้เคียงกับ ปฏิบัตินิยม ที่ไม่ลืมเป้าหมายและเปรียบเทียบการกระทำกับผลลัพธ์

วิธีการแก้ปัญหาที่ Bram ทิ้งไว้

  • Bram แสดงให้เห็นทั้ง ท่าทีอันถ่อมตน และวิธีแก้ปัญหาที่ยึดโยงกับความเป็นจริง ยิ่งไปกว่าความเป็นช่างฝีมือทางเทคนิค
  • ใน vim_dev, ซอร์สของ Vim และเอกสารต่าง ๆ ไม่ได้เหลือเพียงคำพูดและการตัดสินใจของ Bram แต่ยังรวมถึงสิ่งที่เขาเลือกจะไม่ทำด้วย
    • ไม่พึ่งพาถ้อยคำที่หวือหวาหรือการตัดสินเชิงส่วนตัว
    • แม้จะได้รับการปฏิบัติอย่างหยาบคาย เขาก็มักตอบสนองในทางที่ช่วยให้เข้าใจปัญหาที่ต้องแก้ได้ดียิ่งขึ้น
  • คำขวัญ Problem/Solution ของข้อความคอมมิตใน Vim ทำงานเป็นหลักการทำงานที่เรียบง่ายแต่ทรงพลัง
  • Bram เลือกวิธีช่วย ผู้คนในยูกันดา แบบลงมือดูแลเองโดยตรง แทนที่จะจัดการทรัพยากรในเชิงนามธรรม
  • ความถ่อมตนคือกรอบความคิดที่ให้ความพยายามผ่านข้อจำกัดโดยสมัครใจแบบ “เอวคอด” และสามารถสร้างผลลัพธ์ที่ประกอบต่อกันได้มากขึ้นและทรงพลังกว่าเดิม
    • ปลั๊กอินอย่าง unimpaired คือกรณีตัวอย่างของการดัดแปลงแนวคิดนี้
  • ประโยชน์ของ ซอฟต์แวร์ที่เป็นวิถีชีวิต อย่าง Emacs และ Vim ไม่ได้อยู่ที่อุดมการณ์ แต่อยู่ที่ระบบนิเวศที่มีชีวิตและแรงขับที่ดำรงอยู่ได้ด้วยตัวเอง

สิ่งที่ Neovim รับช่วงต่อและสิ่งที่แยกทาง

  • Neovim วางตัวเป็น อนุพันธ์ ของ Vim มาตั้งแต่ต้น และมีทั้งลักษณะที่สืบทอด Vim ต่อไปพร้อมกับแตกต่างจาก Vim ไปพร้อมกัน
  • จากมุมมองที่ว่า fork ไม่ได้ทำลายพลังงานแต่สร้างมันขึ้นมา แม้จะไม่อาจถ่ายทอด Vim ได้ทั้งหมดหากไม่มี Bram แต่บางองค์ประกอบที่เป็นแก่นแท้ก็ยังสืบต่อไปได้
  • การบำรุงรักษาและการทำเอกสาร

    • Maintenance: การทดลองเป็นสิ่งจำเป็น และทั้งการทำลายอย่างสร้างสรรค์กับความล้มเหลวแบบขี้เล่นก็มีคุณค่า แต่ Neovim ไม่ได้เป็นตัวแทนของ “neomania” หรือความหลงใหลในของใหม่
    • Documentation: ธรรมเนียมการทำเอกสารของ Vim นั้นชัดเจน และเป็นหนึ่งในข้อได้เปรียบสำคัญที่ Nvim ได้มาจากการสร้างอยู่บน Vim
  • ความสามารถในการขยายและการฝังตัว

    • Extensibility: โครงการ Agide ของ Bram ก็มีเป้าหมายด้านความสามารถในการขยายคล้ายกับ Neovim โดยเสนอแนวทางให้เชื่อมต่อเครื่องมือแยกต่างหากแทนการรวมทุกอย่างไว้ในแอปเดียว
    • Embedding: :help design-not ของ Vim พูดถึงทิศทางที่ให้ใช้ Vim เป็นคอมโพเนนต์ในเชลล์หรือ IDE มากกว่าจะทำให้ Vim กลายเป็นเชลล์หรือระบบปฏิบัติการ
    • Bram ไม่ได้มองตนเองอย่างเคร่งขรึมเกินไป และยังมีอารมณ์ขันในแบบของตัวเอง
    • Neovim ควรคงอยู่ในฐานะ อนุสรณ์ แด่ Vim และ Bram แต่เลือกความเป็นประโยชน์ใช้สอยเหนือความยึดมั่นแข็งกร้าว และย้อนทบทวนการกระทำโดยยึดเป้าหมายกับผลลัพธ์เป็นหลัก

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

 
GN⁺ 2023-08-11
ความคิดเห็นจาก Hacker News
  • ขอบคุณ Bram
    ผมใช้ Vim มานานกว่า 30 ปีแล้ว ช่วงหลัง ๆ ก็ใช้ Neovim เป็นครั้งคราว และตอนเรียนก็ใช้ vi บนระบบ BSD หลายตัว ตลอดอาชีพการทำงานแทบทุกวันทำงานผมใช้มันมาตลอด แต่ไม่เคยเข้า Vim mailing list ไม่เคยถามคำถาม และไม่เคยส่งรายงานบั๊กเลย
    เพราะไม่มีความจำเป็น ผมไม่เคยเจอบั๊ก และข้อสงสัยต่าง ๆ ก็แก้ได้เสมอด้วย เอกสารในตัว มันเป็นโปรเจกต์ซอฟต์แวร์ที่ยอดเยี่ยมซึ่งนำโดยคนที่ยอดเยี่ยม และเป็นแรงบันดาลใจอย่างมาก

    • เมื่อ 25 ปีก่อนในฤดูใบไม้ร่วง ตอนผมได้งานที่แผนก IT ของมหาวิทยาลัย หัวหน้าให้หนังสือ Perl และ vi ของ O'Reilly มา ผมจึงเริ่มเขียนโปรแกรมบนเซิร์ฟเวอร์ Unix ตั้งแต่นั้นมาก็ใช้ vi และ Vim ทุกวันตลอดอาชีพ
    • ผมเคยทำงานกับระบบควบคุมที่ซับซ้อน เอกสารดีมากจนหาข้อมูลที่ต้องการได้ง่ายเสมอ
      ในทางกลับกัน แม้แต่ระบบที่ค่อนข้างเรียบง่าย หากไม่มีเอกสาร หรือครั้งหนึ่งเพราะ เอกสารห่วยแตกมาก ก็ต้องซักไซ้และขุดคุ้ยมากกว่ามาก
  • Vim มีจิตวิญญาณ มันเป็นเครื่องมือที่คุณจะใช้ต่อไปเหมือนสิ่วที่ตกทอดมาจากคุณปู่
    แม้จะไม่มีด้ามยางนุ่ม ๆ แบบของใหม่ แต่มันเข้ามือและสบาย เป็นเครื่องมือที่มีประวัติของตัวเอง
    ดูจากคอมเมนต์ที่นี่แล้ว รู้สึกว่าจิตวิญญาณแฮกเกอร์ยังคงมีชีวิตอยู่ บริษัทดาวรุ่งมูลค่าหลายพันล้านดอลลาร์แห่งใหม่ ๆ อาจถูกแทนที่ด้วยอย่างอื่นในอีก 10–20 ปี แต่ Vim จะยังคงอยู่ต่อไป สักวันหนึ่งผมอยากสร้างอะไรที่เป็นเหมือน Vim ของผมเอง

    • แต่ก็มีความต่างอยู่เล็กน้อย มือใหม่หยิบสิ่วของคุณปู่ขึ้นมาแล้ว สิ่วคงไม่ติดหนึบกับมือจนต้องกูเกิลคาถาวิเศษสามคำถึงจะปล่อยออก
    • เหมือนขวดแก้วของ Galadriel เป็นแสงที่ส่องสว่างในที่มืดเมื่อแสงอื่นทั้งหมดดับลง
  • หลังจาก Bram จากไป ผมย้อนมองเส้นทาง Vim ของตัวเอง ตลอด 10 ปีที่ผ่านมา ตั้งแต่โปรเจกต์มหาวิทยาลัย ไปจนถึง FAANG และสตาร์ทอัพที่ทุกอย่างกำลังลุกเป็นไฟ มันเป็น เพื่อนร่วมทางในอาชีพเพียงสิ่งเดียวที่ไม่เคยเปลี่ยน
    งานที่ภาคภูมิใจ งานที่น่าอาย งานที่นำไปสู่การเลื่อนตำแหน่ง ไปจนถึงงานที่นำไปสู่เหตุขัดข้องมูลค่าหลายล้านดอลลาร์ ล้วนทำใน Vim ทั้งหมด ระบบปฏิบัติการ ฐานข้อมูล ภาษาโปรแกรม บริษัท เพื่อนร่วมงาน ต่างมาแล้วก็ไป แต่ Vim ยังอยู่เสมอ
    ขอบคุณ Bram

  • ในบทความที่ลิงก์ไว้ [0] มีภาพหน้าจอกิจกรรม GitHub ของ Bram และข้อความแบบนี้
    “ตอนที่อ่านข่าวว่า Bram จากไปแล้ว เหตุผลที่มันกระทบใจมากขนาดนี้ อาจเป็นเพราะทุกอย่างเหล่านี้สั่งสมรวมกัน ข้อความจากครอบครัวระบุชัดว่า Bram ป่วย เป็น ‘ภาวะทางการแพทย์ที่ดำเนินไปอย่างรวดเร็วในช่วงไม่กี่สัปดาห์ที่ผ่านมา’ คนส่วนใหญ่ไม่รู้เรื่องนี้ ข่าวจึงยิ่งน่าตกใจ”
    “และเมื่อมีใครชี้ให้ดูความเคลื่อนไหวล่าสุดของ Bram บน GitHub ก็ยิ่งเศร้าขึ้นไปอีก”
    https://github.com/brammool
    [0] https://j11g.com/2023/08/07/the-legacy-of-bram-moolenaar/
    นอกจากนี้ เมื่อดูรายชื่อ BDFL ใน Wikipedia แล้ว Bram ดูเหมือนจะเป็น คนแรกที่มีเครื่องหมาย †
    https://en.wikipedia.org/wiki/Benevolent_dictator_for_life

  • วันนี้ผมเห็นอะไรพิเศษที่สถานีรถไฟ Utrecht ในเนเธอร์แลนด์ ป้ายบอกทางมี ตัวอักษร hjkl เขียนเรียงย้อนลำดับอยู่
    ตัวอักษรเหล่านี้ใช้บอกว่าควรไปยืนบริเวณไหนของชานชาลา โดยจะแสดงตามความยาวชานชาลาและตำแหน่งประตูรถไฟ
    https://postimg.cc/mcCWhMXw
    อาจเป็นเรื่องบังเอิญสุด ๆ หรือไม่ก็มีแฟน Vim อยู่ในบริษัทรถไฟเนเธอร์แลนด์ NS เลยทำเป็นการอุทิศให้ Bram แบบนี้

    • พอมาคิดดู ตัวอักษรเหล่านี้ก็เรียงต่อกันในตัวอักษรอยู่แล้ว เพียงแต่ขาด I ระหว่าง H กับ J ซึ่งอาจตั้งใจเว้นไว้เพราะอาจสับสนกับตัว l พิมพ์เล็ก
      สุดท้ายอาจเป็นเรื่องบังเอิญก็ได้ แต่สำหรับผมมันยังพิเศษอยู่ดี เพราะผมไม่เคยเห็นอะไรแบบนี้ที่สถานีรถไฟมาก่อน แล้วจู่ ๆ ก็มาเห็นในสัปดาห์ถัดจากที่ Bram จากไป
    • ไม่ใช่ทั้งเรื่องบังเอิญและการอุทิศ ในอังกฤษก็ใช้แบบเดียวกันมาหลายปีแล้ว ตัวอักษร i สับสนกับเลข 1 หรือตัวอักษร l ได้ง่าย จึงมักไม่ใช้กับงานประเภทนี้
    • ผมก็ใช้ Vim นะ แต่ตัวอักษรพวกนี้ทำให้นึกถึง แถว home row ของการพิมพ์สัมผัส ก่อน Vim
    • ป้ายนี้เป็นเครื่องหมายตำแหน่งที่แสดงว่ารถไฟจะหยุดตรงไหนของชานชาลา
      วิดีโอภาษาดัตช์: https://www.youtube.com/watch?v=JPvh9SaQbUY
  • ครั้งหนึ่งผมเคยสัมภาษณ์ผู้สมัครฝึกงาน เขาอวดว่าเคยถกเถียงกับ Bram ใน mailing list เรื่องช่องโหว่ที่เป็นไปได้ Bram บอกว่าไม่สำคัญ ส่วนหนุ่มคนนี้ยืนกรานว่าสำคัญ
    เราไม่ได้รับเขาเข้าทำงาน พอได้อ่านบทความไว้อาลัย Bram แล้ว ดูเหมือนว่า Bram ที่ผู้คนพูดถึงจะตรงข้ามกับผู้สมัครคนนั้นในความหมายที่ดี

    • ผมสงสัยว่าเป็นการถกเถียงเรื่องฟีเจอร์เข้ารหัส/ถอดรหัสไฟล์อัตโนมัติ และเรื่องที่ Bram ไม่อยากใช้อัลกอริทึมที่ปลอดภัยในเชิงวิทยาการเข้ารหัสหรือเปล่า เธรดนั้นยาวมากและค่อนข้างเดือด
      ถึงอย่างนั้นผมก็อยู่ข้าง Bram ฟีเจอร์นั้นตั้งแต่แรกไม่ได้มุ่งเป้าไปที่ ความปลอดภัยในความหมายเชิงวิทยาการเข้ารหัส
  • https://en.wikipedia.org/wiki/Benevolent_dictator_for_life มีรายชื่อ BDFL อยู่ Bram เป็น BDFL คนแรกในรายชื่อนั้นที่จากไป
    ในอีก 10 ปีข้างหน้า หรือหลังจากนั้น จะมีการเปลี่ยนผ่านรุ่นเกิดขึ้น การเตรียมพร้อมไว้เป็นสิ่งที่ถูกต้อง และนั่นคือวิธีรักษามรดกกับชุมชนไว้
    ผมประทับใจกับวิธีที่ครอบครัวและเพื่อน ๆ ของ Bram จัดการเรื่องนี้โดยเคารพมรดกของเขาและอนาคตของ Vim

    • หลังจากเขียนข้อความนี้ John Gruber ถูกเพิ่มเข้าไปในฐานะ BDFL ของ Markdown เขาเป็นผู้สร้างก็จริง แต่จะเรียกว่า BDFL ก็ดูเกินไปหน่อย
  • ในบรรดาบทความที่ลิงก์มา ผมชอบบทความนี้ที่เขียนโดย Jan van den Berg มากกว่า
    https://j11g.com/2023/08/07/the-legacy-of-bram-moolenaar/
    ประโยคหนึ่งที่น่าประทับใจคือ “Vim คือผลงานชิ้นเอก เป็นเครื่องมือช่างที่เปล่งประกายและแม่นยำ ซึ่งสิ่งสมัยใหม่จำนวนมากถูกขัดเกลาต่อยอดออกมา”
    และยังมีลิงก์นี้ด้วย
    https://m.youtube.com/watch?v=eX9m3g5J-XA
    “7 Habits for Effective Text Editing 2.0”
    ยาว 1 ชั่วโมง 20 นาที ถ้ามีใครมี transcript หรือสรุปก็คงดี คอมเมนต์แรกตลกดี: “เปิด autoplay ทิ้งไว้ตอนนอน 7 ชั่วโมง แล้วมันพาผมจาก Billie Eilish มาถึงวิดีโอนี้”
    ชีวิตนี่แปลก แต่ก็เพราะอย่างนั้นแหละถึงดี
    ส่วนตัวแล้วผมไม่ได้ใช้ทั้ง (Neo)vim และ Emacs พออ่านคำว่า “programmable” ก็ถอยห่างทันที ผมชอบตั้งค่า เอดิเตอร์ฟังก์ชันตายตัว ที่ถูกใจสักไม่กี่นาทีแล้วใช้เลยมากกว่า แค่นี้เป็นรสนิยมส่วนตัวของผมเท่านั้น
    ถึงอย่างนั้น เครื่องมือที่ดีก็ทำหน้าที่ของมันได้ดี โลกที่มีเครื่องมือดี ๆ และผู้คนที่สร้างมันขึ้นมา ย่อมเป็นโลกที่ดีกว่า บางครั้งมรดก ปรัชญา และวิธีทำงานของมันก็ยังมีชีวิตอยู่ต่อไปในโค้ดหรือชุมชนที่เหลืออยู่ ขอคารวะ Bram

    • ไม่แน่ใจว่าจำเป็นต้องแข่งขันกันเรื่องบทความไว้อาลัยไหม แต่บทความที่นำมาก็ซาบซึ้งเหมือนกัน ภาพ กราฟการมีส่วนร่วมบน GitHub ของ Bram จะไม่มีวันลืม
    • ถ้าไม่ชอบคำว่า “programmable” และอยากได้เอดิเตอร์ฟังก์ชันตายตัวที่ถูกใจ Helix อาจเหมาะก็ได้
      มันใช้คีย์ไบน์ดิงแบบ Kakoune ซึ่งเข้าใจได้สมเหตุสมผลกว่า Vim หรือ Emacs มาก ค่าเริ่มต้นก็จัดมาดีอยู่แล้ว และมีฟีเจอร์ที่มีประโยชน์เยอะ ผมใช้ทุกวัน เร็วและดี
      ถ้ามี LSP อยู่ใน PATH มันจะใช้อัตโนมัติ จึงต้องตั้งค่าน้อยมาก การตั้งค่าของผมมีแค่ธีมกับการปรับสไตล์เล็กน้อย ถ้าอยากดู ดูได้ที่นี่: https://github.com/RGBCube/NixOSConfiguration/blob/master/ma...
    • Vim แทบไม่ต้อง “โปรแกรม” อะไรเลย นอกจากเลือกประมาณ set nocompatible, set ruler, backspace, indentation และหนึ่งในชุดสีพื้นฐาน
      ใน Neovim ผมติดตั้ง lightline, pathogen, ชุดสี monokai และอีกอย่างหนึ่ง ซึ่งน่าจะเป็น syntax highlighting ของภาษาที่แปลกกว่าหน่อย
      ประเด็นสำคัญคือ Vim เป็น เอดิเตอร์ฟังก์ชันตายตัว จนกว่าจะไปพ่วงอะไรต่อมิอะไรใส่มันเต็มไปหมด
    • เอกสารของ “7 Habits for Effective Text Editing 2.0” อยู่ที่นี่: https://moolenaar.net/habits_2007.pdf
      ขอบคุณ tlamponi [1]: https://news.ycombinator.com/item?id=37013315
  • Vim ส่งผลต่อชีวิตผมจริง ๆ ผมใช้มันมาตลอด 15 ปีที่ผ่านมา และเมื่อได้โฮสต์ใหม่ ผมมักใส่ set -o vi หรือการตั้งค่าคล้าย ๆ กันของ psql/ipython ลงในไฟล์ rc แทบจะทันที
    เวลานับไม่ถ้วนที่ใช้ในเชลล์สนุกขึ้นมากเพราะผลงานของ Bram
    ขอบคุณที่นำบทความนี้มาโพสต์ และขอให้ไปสู่สุคติ

    • การเรียนคำสั่ง Vim เป็นหนึ่งในสิ่งที่ให้ ผลตอบแทนต่อการลงทุนสูงที่สุด เท่าที่ผมรู้จัก มันมีค่ามาหลายปี และคงช่วยประหยัดเวลาที่ผมโต้ตอบกับคอมพิวเตอร์ไปได้หลายร้อยชั่วโมง
      มันกลายเป็น muscle memory ไปนานแล้ว และตอนนี้การแก้ไขข้อความกับการเลื่อนเคอร์เซอร์บนหน้าจอก็ไม่รู้สึกเหนื่อยเลย
      นี่เป็นหนึ่งในสิ่งที่ผมแนะนำโปรแกรมเมอร์ใหม่ ๆ เสมอ อาจพูดได้ว่า learning curve ของ Vim ชัน แต่ก็ช่วยให้มองการโต้ตอบกับข้อความ ซึ่งเป็นสิ่งที่โปรแกรมเมอร์ทำอยู่ตลอด ให้มีประสิทธิภาพขึ้น
      ผมเปิดโหมด Vi(m) ไว้ทุกที่ที่รองรับ ทั้งเชลล์และทุกที่ที่ใช้ Readline รวมถึงเปลี่ยนค่าเริ่มต้นใน Emacs ด้วย evil-mode
      อินเทอร์เฟซแบบมีโหมด และคำสั่งเชิงช่วยจำที่ประกอบกันได้ เหนือกว่าและเป็นธรรมชาติกว่า UI แบบคีย์คอมโบสไตล์ Emacs มาก ผมรัก Vim มันเป็นเครื่องมือที่ทำให้ผมเริ่มเส้นทางนี้เมื่อกว่า 20 ปีก่อน และทุกวันนี้ก็ยังใช้ทุกวันสำหรับการแก้ไขที่รวดเร็ว เพียงแต่ในฐานะ IDE ผมชอบ Emacs ซึ่งเป็นสภาพแวดล้อมที่ขยายความสามารถได้มากกว่า ด้วย evil-mode ทำให้ได้ข้อดีของทั้งสองฝั่ง
      Bram ทำให้ชีวิตของผู้คนจำนวนนับไม่ถ้วนดีขึ้น และควรได้รับการยอมรับในหมู่บุคคลยิ่งใหญ่ของวงการเรา RIP
  • ในโลกซอฟต์แวร์ที่ไม่จีรัง Vim คือผลงานชิ้นเอกที่อยู่เหนือกาลเวลา
    ผมหวังว่าจะเคยมีโอกาสขอบคุณ Bram โดยตรงสำหรับผลกระทบที่เขามีต่อชีวิตและอาชีพของผม ถ้าไม่มี Vim ผมคงมาไม่ถึงจุดนี้

    • ผมมองว่านี่เป็นหนึ่งในจุดสำคัญของ Vim ยิ่งมันอยู่มานานเท่าไร โอกาสที่จะอยู่รอดต่อไปก็ยิ่งมากขึ้นเท่านั้น มันทนยืนยาวกว่า text editor สมัยใหม่จำนวนมาก
      ผมหวังว่ามันจะยังคงอยู่ต่อไปในช่วงที่ผมยังมีชีวิต และหลังจากนั้นด้วย