เจ้าแห่ง Vim, Bram Moolenaar
(neovim.io)- 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 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ขอบคุณ Bram
ผมใช้ Vim มานานกว่า 30 ปีแล้ว ช่วงหลัง ๆ ก็ใช้ Neovim เป็นครั้งคราว และตอนเรียนก็ใช้
viบนระบบ BSD หลายตัว ตลอดอาชีพการทำงานแทบทุกวันทำงานผมใช้มันมาตลอด แต่ไม่เคยเข้า Vim mailing list ไม่เคยถามคำถาม และไม่เคยส่งรายงานบั๊กเลยเพราะไม่มีความจำเป็น ผมไม่เคยเจอบั๊ก และข้อสงสัยต่าง ๆ ก็แก้ได้เสมอด้วย เอกสารในตัว มันเป็นโปรเจกต์ซอฟต์แวร์ที่ยอดเยี่ยมซึ่งนำโดยคนที่ยอดเยี่ยม และเป็นแรงบันดาลใจอย่างมาก
ในทางกลับกัน แม้แต่ระบบที่ค่อนข้างเรียบง่าย หากไม่มีเอกสาร หรือครั้งหนึ่งเพราะ เอกสารห่วยแตกมาก ก็ต้องซักไซ้และขุดคุ้ยมากกว่ามาก
Vim มีจิตวิญญาณ มันเป็นเครื่องมือที่คุณจะใช้ต่อไปเหมือนสิ่วที่ตกทอดมาจากคุณปู่
แม้จะไม่มีด้ามยางนุ่ม ๆ แบบของใหม่ แต่มันเข้ามือและสบาย เป็นเครื่องมือที่มีประวัติของตัวเอง
ดูจากคอมเมนต์ที่นี่แล้ว รู้สึกว่าจิตวิญญาณแฮกเกอร์ยังคงมีชีวิตอยู่ บริษัทดาวรุ่งมูลค่าหลายพันล้านดอลลาร์แห่งใหม่ ๆ อาจถูกแทนที่ด้วยอย่างอื่นในอีก 10–20 ปี แต่ Vim จะยังคงอยู่ต่อไป สักวันหนึ่งผมอยากสร้างอะไรที่เป็นเหมือน Vim ของผมเอง
หลังจาก 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 แบบนี้
สุดท้ายอาจเป็นเรื่องบังเอิญก็ได้ แต่สำหรับผมมันยังพิเศษอยู่ดี เพราะผมไม่เคยเห็นอะไรแบบนี้ที่สถานีรถไฟมาก่อน แล้วจู่ ๆ ก็มาเห็นในสัปดาห์ถัดจากที่ Bram จากไป
วิดีโอภาษาดัตช์: https://www.youtube.com/watch?v=JPvh9SaQbUY
ครั้งหนึ่งผมเคยสัมภาษณ์ผู้สมัครฝึกงาน เขาอวดว่าเคยถกเถียงกับ Bram ใน mailing list เรื่องช่องโหว่ที่เป็นไปได้ Bram บอกว่าไม่สำคัญ ส่วนหนุ่มคนนี้ยืนกรานว่าสำคัญ
เราไม่ได้รับเขาเข้าทำงาน พอได้อ่านบทความไว้อาลัย Bram แล้ว ดูเหมือนว่า Bram ที่ผู้คนพูดถึงจะตรงข้ามกับผู้สมัครคนนั้นในความหมายที่ดี
ถึงอย่างนั้นผมก็อยู่ข้าง Bram ฟีเจอร์นั้นตั้งแต่แรกไม่ได้มุ่งเป้าไปที่ ความปลอดภัยในความหมายเชิงวิทยาการเข้ารหัส
https://en.wikipedia.org/wiki/Benevolent_dictator_for_life มีรายชื่อ BDFL อยู่ Bram เป็น BDFL คนแรกในรายชื่อนั้นที่จากไป
ในอีก 10 ปีข้างหน้า หรือหลังจากนั้น จะมีการเปลี่ยนผ่านรุ่นเกิดขึ้น การเตรียมพร้อมไว้เป็นสิ่งที่ถูกต้อง และนั่นคือวิธีรักษามรดกกับชุมชนไว้
ผมประทับใจกับวิธีที่ครอบครัวและเพื่อน ๆ ของ Bram จัดการเรื่องนี้โดยเคารพมรดกของเขาและอนาคตของ Vim
ในบรรดาบทความที่ลิงก์มา ผมชอบบทความนี้ที่เขียนโดย 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
มันใช้คีย์ไบน์ดิงแบบ Kakoune ซึ่งเข้าใจได้สมเหตุสมผลกว่า Vim หรือ Emacs มาก ค่าเริ่มต้นก็จัดมาดีอยู่แล้ว และมีฟีเจอร์ที่มีประโยชน์เยอะ ผมใช้ทุกวัน เร็วและดี
ถ้ามี LSP อยู่ใน
PATHมันจะใช้อัตโนมัติ จึงต้องตั้งค่าน้อยมาก การตั้งค่าของผมมีแค่ธีมกับการปรับสไตล์เล็กน้อย ถ้าอยากดู ดูได้ที่นี่: https://github.com/RGBCube/NixOSConfiguration/blob/master/ma...set nocompatible,set ruler, backspace, indentation และหนึ่งในชุดสีพื้นฐานใน Neovim ผมติดตั้ง lightline, pathogen, ชุดสี monokai และอีกอย่างหนึ่ง ซึ่งน่าจะเป็น syntax highlighting ของภาษาที่แปลกกว่าหน่อย
ประเด็นสำคัญคือ Vim เป็น เอดิเตอร์ฟังก์ชันตายตัว จนกว่าจะไปพ่วงอะไรต่อมิอะไรใส่มันเต็มไปหมด
ขอบคุณ tlamponi [1]: https://news.ycombinator.com/item?id=37013315
Vim ส่งผลต่อชีวิตผมจริง ๆ ผมใช้มันมาตลอด 15 ปีที่ผ่านมา และเมื่อได้โฮสต์ใหม่ ผมมักใส่
set -o viหรือการตั้งค่าคล้าย ๆ กันของ psql/ipython ลงในไฟล์ rc แทบจะทันทีเวลานับไม่ถ้วนที่ใช้ในเชลล์สนุกขึ้นมากเพราะผลงานของ Bram
ขอบคุณที่นำบทความนี้มาโพสต์ และขอให้ไปสู่สุคติ
มันกลายเป็น muscle memory ไปนานแล้ว และตอนนี้การแก้ไขข้อความกับการเลื่อนเคอร์เซอร์บนหน้าจอก็ไม่รู้สึกเหนื่อยเลย
นี่เป็นหนึ่งในสิ่งที่ผมแนะนำโปรแกรมเมอร์ใหม่ ๆ เสมอ อาจพูดได้ว่า learning curve ของ Vim ชัน แต่ก็ช่วยให้มองการโต้ตอบกับข้อความ ซึ่งเป็นสิ่งที่โปรแกรมเมอร์ทำอยู่ตลอด ให้มีประสิทธิภาพขึ้น
ผมเปิดโหมด Vi(m) ไว้ทุกที่ที่รองรับ ทั้งเชลล์และทุกที่ที่ใช้ Readline รวมถึงเปลี่ยนค่าเริ่มต้นใน Emacs ด้วย evil-mode
อินเทอร์เฟซแบบมีโหมด และคำสั่งเชิงช่วยจำที่ประกอบกันได้ เหนือกว่าและเป็นธรรมชาติกว่า UI แบบคีย์คอมโบสไตล์ Emacs มาก ผมรัก Vim มันเป็นเครื่องมือที่ทำให้ผมเริ่มเส้นทางนี้เมื่อกว่า 20 ปีก่อน และทุกวันนี้ก็ยังใช้ทุกวันสำหรับการแก้ไขที่รวดเร็ว เพียงแต่ในฐานะ IDE ผมชอบ Emacs ซึ่งเป็นสภาพแวดล้อมที่ขยายความสามารถได้มากกว่า ด้วย evil-mode ทำให้ได้ข้อดีของทั้งสองฝั่ง
Bram ทำให้ชีวิตของผู้คนจำนวนนับไม่ถ้วนดีขึ้น และควรได้รับการยอมรับในหมู่บุคคลยิ่งใหญ่ของวงการเรา RIP
ในโลกซอฟต์แวร์ที่ไม่จีรัง Vim คือผลงานชิ้นเอกที่อยู่เหนือกาลเวลา
ผมหวังว่าจะเคยมีโอกาสขอบคุณ Bram โดยตรงสำหรับผลกระทบที่เขามีต่อชีวิตและอาชีพของผม ถ้าไม่มี Vim ผมคงมาไม่ถึงจุดนี้
ผมหวังว่ามันจะยังคงอยู่ต่อไปในช่วงที่ผมยังมีชีวิต และหลังจากนั้นด้วย