Ông trùm của Vim, Bram Moolenaar
(neovim.io)- Bram Moolenaar đã để lại trong mã nguồn, tài liệu và
vim_devcủa Vim một thái độ lấy việc giải quyết vấn đề làm trung tâm, và Neovim nhìn nhận mình là dự án tiếp nối di sản của Vim và Bram - Điểm mạnh của Bram thể hiện ở cách ông thúc đẩy sự hiểu biết về vấn đề thay vì phản ứng thô lỗ hay phán xét cá nhân, và ông được nhớ đến như một người lặng lẽ nhưng tạo ra giá trị sâu sắc
- Nguyên tắc Problem/Solution trong các commit message của Vim tuy đơn giản nhưng hiệu quả, và cũng được nối dài trong cách ông hỗ trợ Uganda bằng việc trực tiếp quản lý nguồn lực thay vì trừu tượng hóa chúng
- Với tư cách là một nhánh phái sinh của Vim, Neovim đồng thời chấp nhận cả tính tiếp nối lẫn sự phân nhánh, và xem bảo trì, tài liệu hóa, khả năng mở rộng và nhúng là các trụ cột cốt lõi để tiếp tục phát triển
- Hướng đi mà Neovim muốn kế thừa không phải là bản thân sự mới lạ, mà gần hơn với chủ nghĩa thực dụng: không quên mục tiêu và đối chiếu hành động với kết quả
Cách Bram để lại phương thức giải quyết vấn đề
- Bram cho thấy không chỉ tay nghề kỹ thuật mà còn cả sự khiêm nhường và cách giải quyết vấn đề neo vào thực tế
- Trong
vim_dev, mã nguồn Vim và tài liệu, không chỉ lời nói và quyết định của Bram được lưu lại mà cả những lựa chọn ông đã không làm cũng còn hiện diện- Không dựa vào các cách diễn đạt giật gân hay phán xét cá nhân
- Ngay cả khi bị đối xử thô lỗ, ông thường phản ứng theo hướng giúp hiểu rõ hơn vấn đề cần giải quyết
- Khẩu hiệu Problem/Solution trong các commit message của Vim vận hành như một nguyên tắc làm việc đơn giản nhưng mạnh mẽ
- Ngay cả trong việc giúp đỡ người dân Uganda, Bram cũng chọn cách trực tiếp quản lý nguồn lực thay vì xử lý chúng một cách trừu tượng
- Sự khiêm nhường là một lối tư duy đưa các nỗ lực đi qua những ràng buộc tự nguyện kiểu “eo thắt hẹp”, từ đó có thể tạo ra kết quả mạnh mẽ hơn và dễ kết hợp hơn
- Các plugin như unimpaired là ví dụ biến tấu từ dòng chảy này
- Giá trị của những phần mềm gắn với lối sống như Emacs và Vim nằm ở hệ sinh thái sống động và động lực tự duy trì của chúng hơn là ở ý thức hệ
Những gì Neovim kế thừa và nơi nó rẽ nhánh
- Ngay từ đầu, Neovim đã định vị mình là một nhánh phái sinh của Vim, vừa tiếp tục nối dài Vim vừa mang trong mình tính cách khác với Vim
- Từ góc nhìn cho rằng fork tạo ra chứ không phá hủy năng lượng, dù không thể truyền lại chính Vim nếu thiếu Bram, vẫn có những yếu tố bản chất có thể tiếp tục được duy trì
-
Bảo trì và tài liệu hóa
- Maintenance: thử nghiệm là cần thiết, sự phá hủy mang tính sáng tạo và cả những thất bại tinh nghịch cũng có giá trị, nhưng Neovim không đại diện cho “neomania” — khao khát cái mới vì cái mới
- Documentation: thói quen tài liệu hóa của Vim là rất rõ ràng, và đây là một trong những lợi thế lớn mà Nvim có được khi được xây dựng trên nền Vim
-
Khả năng mở rộng và nhúng
- Extensibility: dự án Agide của Bram cũng hướng tới khả năng mở rộng tương tự Neovim, nhấn mạnh cách cắm vào các công cụ riêng biệt thay vì dồn mọi thứ vào một ứng dụng duy nhất
- Embedding:
:help design-notcủa Vim nói về hướng sử dụng Vim như một thành phần trong shell hoặc IDE, thay vì biến Vim thành shell hay hệ điều hành - Bram không quá coi trọng bản thân một cách nghiêm trọng, và ông cũng có khiếu hài hước riêng
- Neovim nên tiếp tục là một tượng đài dành cho Vim và Bram, nhưng chọn tính thực dụng thay vì giáo điều, và nhìn lại hành động của mình dựa trên mục tiêu và kết quả
1 bình luận
Ý kiến trên Hacker News
Xin cảm ơn Bram
Tôi đã dùng Vim hơn 30 năm, gần đây thỉnh thoảng cũng dùng Neovim, và ở trường từng dùng
vitrên nhiều hệ thống BSD. Trong suốt sự nghiệp, gần như ngày làm việc nào tôi cũng dùng nó, nhưng chưa từng tham gia danh sách thư Vim, chưa từng đặt câu hỏi, cũng chưa từng gửi báo cáo lỗiVì không cần thiết. Tôi chưa gặp lỗi nào, và mọi thắc mắc luôn được giải quyết bằng tài liệu tích hợp sẵn. Đó là một dự án phần mềm tuyệt vời do một con người tuyệt vời dẫn dắt, và là nguồn cảm hứng lớn
Ngược lại, cũng có những hệ thống tương đối đơn giản nhưng không có tài liệu, hoặc có lần vì tài liệu kinh khủng mà tôi phải hỏi han và đào bới nhiều hơn hẳn
Vim có linh hồn. Nó là thứ công cụ khiến ta cứ tiếp tục dùng, như chiếc đục được ông nội truyền lại
Dù không có tay cầm cao su mềm mại như sản phẩm mới, nó vẫn vừa tay và thoải mái. Một công cụ có lịch sử riêng của nó
Nhìn các bình luận ở đây, có vẻ tinh thần hacker vẫn còn sống. Những công ty trẻ mới nổi trị giá hàng chục tỷ đô la rồi 10–20 năm nữa sẽ bị thứ khác thay thế, nhưng Vim sẽ tiếp tục tồn tại. Một ngày nào đó tôi muốn tạo ra một thứ giống Vim của riêng mình
Sau khi Bram qua đời, tôi nhìn lại hành trình Vim của mình. Trong 10 năm qua, từ các dự án đại học đến FAANG, rồi đến startup nơi mọi thứ đều bốc cháy, nó là người bạn đồng hành nghề nghiệp duy nhất không thay đổi
Những việc tôi tự hào, những việc tôi xấu hổ, những việc dẫn đến thăng chức, và cả những việc dẫn đến sự cố trị giá hàng triệu đô la, tất cả đều được làm trong Vim. Hệ điều hành, cơ sở dữ liệu, ngôn ngữ lập trình, công ty, đồng nghiệp đến rồi đi, nhưng Vim luôn ở lại
Xin cảm ơn Bram
Bài viết được liên kết [0] có ảnh chụp hoạt động GitHub của Bram và đoạn sau
“Có lẽ chính vì tất cả những điều này tích tụ lại mà khi đọc tin Bram qua đời, tôi thấy nó chạm đến mình đến vậy. Thông điệp từ gia đình nói rõ rằng Bram đã bị bệnh. Đó là ‘một tình trạng y khoa tiến triển nhanh trong vài tuần qua’. Hầu hết mọi người không biết điều này, nên tin ấy càng gây bất ngờ hơn.”
“Và khi có người chỉ ra hoạt động GitHub gần đây của Bram, tôi còn buồn hơn.”
https://github.com/brammool
[0] https://j11g.com/2023/08/07/the-legacy-of-bram-moolenaar/
Ngoài ra, nhìn vào danh sách BDFL trên Wikipedia, Bram có vẻ là người đầu tiên được đánh dấu †
https://en.wikipedia.org/wiki/Benevolent_dictator_for_life
Hôm nay tôi thấy một điều đặc biệt ở ga tàu Utrecht, Hà Lan. Trên bảng chỉ dẫn có các chữ hjkl được ghi theo thứ tự ngược
Những chữ này cho biết nên đi vào khu vực nào trên sân ga. Chúng được hiển thị tùy theo chiều dài sân ga và vị trí cửa tàu
https://postimg.cc/mcCWhMXw
Đó có thể là một sự trùng hợp lớn, hoặc có lẽ trong công ty đường sắt Hà Lan NS có fan Vim nên đã tưởng nhớ Bram theo cách này
Rốt cuộc cũng có thể chỉ là trùng hợp, nhưng với tôi nó vẫn đặc biệt. Tôi chưa từng thấy thứ như vậy ở ga tàu, vậy mà ngay tuần sau khi Bram qua đời thì đột nhiên lại thấy
Video tiếng Hà Lan: https://www.youtube.com/watch?v=JPvh9SaQbUY
Trước đây tôi từng phỏng vấn một ứng viên thực tập, người đó khoe rằng đã tranh luận với Bram trên danh sách thư về một lỗ hổng có thể có. Bram nói nó không quan trọng, còn cậu bạn trẻ này cứ khăng khăng là quan trọng
Chúng tôi đã không tuyển cậu ấy. Đọc các bài tưởng nhớ Bram, có vẻ Bram mà mọi người nói đến là người đối lập với cậu ấy theo nghĩa tốt đẹp
Dù vậy tôi vẫn đứng về phía Bram. Ngay từ đầu, tính năng đó vốn không nhắm đến bảo mật theo nghĩa mật mã học
https://en.wikipedia.org/wiki/Benevolent_dictator_for_life có danh sách BDFL. Bram là BDFL đầu tiên trong danh sách đó qua đời
Trong 10 năm tới, hoặc sau đó, sẽ có sự chuyển giao thế hệ. Chuẩn bị cho điều đó là đúng đắn, và đó là cách bảo tồn di sản cùng cộng đồng
Tôi rất ấn tượng với cách gia đình và bạn bè Bram xử lý việc này, vừa tôn trọng di sản của ông vừa tôn trọng tương lai của Vim
Trong các bài được liên kết, tôi thích bài này của Jan van den Berg hơn
https://j11g.com/2023/08/07/the-legacy-of-bram-moolenaar/
Một câu rất ấn tượng là: “Vim là một kiệt tác, một công cụ chế tác sáng bóng và chính xác mà nhiều thứ hiện đại đã được đẽo gọt ra từ đó”
Và còn có liên kết này nữa
https://m.youtube.com/watch?v=eX9m3g5J-XA
“7 Habits for Effective Text Editing 2.0”
Video dài 1 giờ 20 phút, giá mà có ai có bản chép lời hoặc tóm tắt thì tốt. Bình luận đầu tiên khá buồn cười: “Tôi bật tự động phát trong lúc ngủ 7 tiếng, thế là từ Billie Eilish trôi đến video này”
Cuộc đời thật kỳ lạ, nhưng chính vì thế mà hay
Nói thêm, tôi không dùng (Neo)vim cũng không dùng Emacs. Vừa đọc thấy chữ “có thể lập trình” là tôi đã muốn tránh xa. Tôi thích dành vài phút cấu hình một trình soạn thảo có tính năng cố định hợp gu rồi dùng ngay hơn. Chỉ là sở thích của tôi thôi
Dù vậy, công cụ tốt thì hoàn thành tốt mục đích của nó. Một thế giới có những công cụ tốt và những người tạo ra chúng là một thế giới tốt đẹp hơn. Đôi khi di sản, triết lý và cách làm việc ấy tiếp tục sống trong phần code hoặc cộng đồng được để lại. Xin gửi lời tôn vinh đến Bram
Nó dùng key binding của Kakoune, và với tôi thì dễ hiểu hơn Vim hay Emacs rất nhiều. Cấu hình mặc định đã tốt sẵn và cũng có nhiều tính năng hữu ích. Tôi dùng hằng ngày, thấy nhanh và ổn
Nếu trong
PATHcó LSP thì nó tự động dùng, nên cần cấu hình rất ít. Cấu hình của tôi chỉ gồm theme và vài thay đổi nhỏ về style; nếu muốn có thể xem ở đây: https://github.com/RGBCube/NixOSConfiguration/blob/master/ma...set nocompatible,set ruler, backspace, thụt lề và chọn đại một bảng màu mặc định nào đó, gần như không cần “lập trình” gì cảTrên Neovim tôi có cài lightline, pathogen, bảng màu monokai và thêm một thứ gì đó nữa, có lẽ là tô sáng cú pháp cho một ngôn ngữ hơi lạ hơn
Điểm chính là trước khi gắn thêm đủ thứ vào, Vim là một trình soạn thảo có tính năng cố định
Nhờ tlamponi [1]: https://news.ycombinator.com/item?id=37013315
Vim đã thực sự ảnh hưởng đến cuộc đời tôi. Tôi đã dùng nó trong 15 năm qua, và mỗi khi nhận một host mới, tôi gần như lập tức thêm
set -o vihoặc thiết lập tương tự của psql/ipython vào file rcVô số giờ tôi ở trong shell đã trở nên dễ chịu hơn rất nhiều nhờ công trình của Bram
Cảm ơn vì đã đăng bài này, mong ông yên nghỉ
Từ lâu nó đã trở thành trí nhớ cơ bắp; việc chỉnh sửa văn bản và di chuyển con trỏ trên màn hình giờ không còn tốn sức chút nào
Đây là một trong những điều tôi luôn khuyên các lập trình viên mới. Có thể nói đường cong học Vim khá dốc, nhưng nó giúp họ nhìn việc tương tác với văn bản — thứ lập trình viên luôn phải làm — theo cách hiệu quả hơn
Ở bất cứ nơi nào được hỗ trợ, tôi đều bật chế độ Vi(m): trong shell và mọi nơi dùng Readline, trong Emacs thì đổi mặc định bằng evil-mode, v.v.
Giao diện dựa trên chế độ và các lệnh gợi nhớ có thể kết hợp vượt trội và trực quan hơn rất nhiều so với UI kiểu tổ hợp phím của Emacs. Tôi yêu Vim. Nó là công cụ đã đưa tôi vào hành trình này hơn 20 năm trước, và đến nay tôi vẫn dùng hằng ngày cho các chỉnh sửa nhanh. Tuy nhiên, với vai trò IDE, tôi thích Emacs hơn vì đó là môi trường có khả năng mở rộng tốt hơn. Nhờ evil-mode, tôi có được điểm mạnh của cả hai
Bram đã cải thiện cuộc sống của vô số người, và ông xứng đáng được ghi nhận trong hàng ngũ những nhân vật vĩ đại của ngành chúng ta. RIP
Trong thế giới phần mềm phù du, Vim là một kiệt tác vượt thời gian
Giá mà tôi từng có cơ hội trực tiếp cảm ơn Bram vì ảnh hưởng ông đã tạo ra đối với cuộc đời và sự nghiệp của tôi. Tôi nghĩ nếu không có Vim, tôi đã không đi được đến đây
Tôi mong nó sẽ tiếp tục sống trong suốt cuộc đời tôi, và cả sau đó nữa