2 điểm bởi GN⁺ 2023-08-11 | 1 bình luận | Chia sẻ qua WhatsApp
  • Bram Moolenaar đã để lại trong mã nguồn, tài liệu và vim_dev củ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-not củ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

 
GN⁺ 2023-08-11
Ý 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 vi trê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ỗi
    Vì 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

    • 25 năm trước, vào mùa thu, khi tôi được nhận vào làm ở bộ phận IT của trường đại học, sếp đưa cho tôi sách O'Reilly về Perl và vi, và tôi bắt đầu lập trình trên máy chủ Unix. Từ đó về sau, tôi dùng vi và Vim hằng ngày trong suốt sự nghiệp
    • Tôi từng làm việc với các hệ thống điều khiển phức tạp, và nhờ tài liệu quá tốt nên lúc nào cũng dễ dàng tìm được thông tin cần thiết
      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

    • Tuy vậy có một khác biệt nhỏ. Một người mới cầm chiếc đục của ông nội lên không có nghĩa là chiếc đục đó dính chặt vào tay, và phải Google ba câu thần chú thì mới gỡ ra được
    • Như chiếc lọ của Galadriel, nó giống ánh sáng soi rọi nơi tối tăm khi mọi ánh sáng khác đã tắt
  • 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

    • Nghĩ lại thì các chữ này đúng là liền nhau trong bảng chữ cái. Chỉ là thiếu chữ I giữa H và J, có lẽ vì nó dễ bị nhầm với chữ l thường nên có thể đã được bỏ có chủ ý
      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
    • Không phải trùng hợp cũng không phải tưởng niệm. Ở Anh nhiều năm trước cũng đã dùng kiểu tương tự. Chữ i dễ bị nhầm với số 1 hoặc chữ l, nên thường không được dùng cho mục đích như thế này
    • Dù tôi có dùng Vim, những chữ này khiến tôi nghĩ đến hàng phím cơ sở của gõ cảm ứng trước hơn là Vim
    • Biển này là chỉ báo vị trí cho biết tàu sẽ dừng ở đâu trên sân ga
      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

    • Tôi tự hỏi cuộc tranh luận đó có phải là về tính năng tự động mã hóa/giải mã tệp và việc Bram không muốn dùng một thuật toán an toàn về mặt mật mã học hay không. Đó là một thread rất dài và khá căng
      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

    • Sau khi tôi viết điều này, John Gruber đã được thêm vào với tư cách BDFL của Markdown. Đúng là ông ấy là người tạo ra nó, nhưng gọi là BDFL thì có vẻ hơi quá
  • 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

    • Tôi không biết có cần phải so đo giữa các bài tưởng niệm hay không, nhưng bài được đăng cũng rất xúc động. Tấm ảnh biểu đồ đóng góp GitHub của Bram thật khó quên
    • Nếu bạn không thích cụm “có thể lập trình” và muốn một trình soạn thảo có tính năng cố định hợp gu, Helix có thể là lựa chọn phù hợp
      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 PATH có 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...
    • Với Vim, ngoài 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
    • Tài liệu của “7 Habits for Effective Text Editing 2.0” ở đây: https://moolenaar.net/habits_2007.pdf
      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 vi hoặc thiết lập tương tự của psql/ipython vào file rc
    Vô 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ỉ

    • Học các lệnh Vim là một trong những việc có hiệu quả trên vốn đầu tư cao nhất mà tôi biết. Nó đã quý giá trong nhiều năm, và hẳn đã tiết kiệm cho tôi hàng trăm giờ tương tác với máy tính
      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 nghĩ đây là một trong những điểm quan trọng của Vim. Nó càng tồn tại lâu thì khả năng tiếp tục sống sót càng lớn. Nó đã trụ vững lâu hơn vô số trình soạn thảo văn bản hiện đại
      Tôi mong nó sẽ tiếp tục sống trong suốt cuộc đời tôi, và cả sau đó nữa