1 điểm bởi GN⁺ 2025-12-13 | 1 bình luận | Chia sẻ qua WhatsApp
  • Tác giả của Boo, trình soạn thảo mã cá nhân, giải thích lý do tạm dừng dự án và chuyển sang tạo một ngôn ngữ lập trình mới
  • Boo là một trình soạn thảo viết bằng Rust dành cho mục đích cá nhân, có điều hướng bàn phím lấy con người làm trung tâmhệ thống thay thế LSP
  • Tác giả cho rằng quá trình phát triển lặp đi lặp lại làm suy giảm tính sáng tạo, nên coi trọng niềm vui khi tạo ra phần mềm truyền cảm hứng
  • Lấy ví dụ từ lắp ghép khối LegoThe Legend of Zelda: Breath of the Wild để nhấn mạnh tầm quan trọng của những sản phẩm sáng tạo đáng nhớ
  • Thay vì chạy theo công thức thành công, tác giả giữ vững triết lý phát triển xoay quanh hứng thú và học hỏi của bản thân, và có kế hoạch viết lại Boo bằng chính ngôn ngữ mình tạo ra sau này

Dự án Boo và động lực phát triển

  • Boo là dự án mà tác giả tạo ra như một trình soạn thảo mã cho riêng mình, tập trung vào tính hữu dụng cá nhân hơn là thành công đại chúng
    • Boo có tính năng điều hướng người-bàn phím và sử dụng một hệ thống nhanh hơn, ít gây tải cho hệ điều hành hơn thay cho LSP (Language Server Protocol)
    • Hiện tại Boo đã hoạt động đủ tốt để dùng cho công việc hằng ngày, nhưng không có kế hoạch phát hành dưới dạng mã nguồn mở
  • Cả Boo và Rio Terminal đều được viết bằng Rust, có cấu trúc và quy trình phát hành tương tự nhau
    • Chính sự tương đồng này khiến công việc trở nên lặp lại và làm giảm niềm vui phát triển

Mối quan hệ giữa sáng tạo và cảm hứng

  • Lấy ví dụ từ trò chơi lắp ghép Lego, tác giả giải thích rằng sự tự do tạo ra hình dạng khác nhau mỗi lần chính là niềm vui của sáng tạo
    • Thay vì lặp đi lặp lại cùng một bộ phận, việc thêm các yếu tố bên ngoài để tạo ra kết quả mới là điểm cốt lõi tạo nên hứng thú
  • Khi việc lập trình càng lặp lại, khả năng tạo ra những sản phẩm mang hiệu ứng “wow” càng giảm
    • Tác giả nhấn mạnh rằng phải được truyền cảm hứng thì mới có thể tạo ra phần mềm truyền cảm hứng

Ví dụ về phần mềm đáng nhớ

  • Lấy The Legend of Zelda: Breath of the Wild làm ví dụ, tác giả nhắc đến mức độ hoàn thiện khiến cả những người vốn không chơi game cũng phải mua máy chơi game
    • Tác giả nhấn mạnh sức mạnh của những tác phẩm mang lại trải nghiệm còn đọng lại rất lâu sau khi chơi
  • Theo tác giả, phần mềm được tạo ra với mức độ chăm chút như vậy sẽ để lại ấn tượng cảm xúc nơi người dùng

Tạm dừng Boo và phát triển ngôn ngữ mới

  • Boo là dự án sở thích, không phục vụ mục đích kinh doanh nên không có áp lực doanh thu hay thời hạn
    • Tác giả cũng không có ý định tạo ra một dự án khổng lồ như VS Code, nên không ép mình phải tiếp tục
  • Để có thể quay lại khi cảm hứng trở lại, tác giả tạm dừng Boo và hiện đang phát triển ngôn ngữ lập trình riêng
    • Về lâu dài, tác giả dự định sẽ viết lại Boo bằng ngôn ngữ này

Triết lý và thái độ phát triển

  • Việc phát triển một ngôn ngữ mới đòi hỏi rất nhiều công sức, nhưng tác giả xem đó là quá trình học hỏi đầy thú vị
    • Qua đó, tác giả mở rộng hiểu biết về binary và compiler, đồng thời tiến hành theo nhịp độ của riêng mình
  • Thay vì làm theo công thức thành công hay lời khuyên từ bên ngoài, tác giả tiếp tục phát triển xoay quanh cách suy nghĩ và hứng thú của bản thân
  • Chính bài viết này cũng được viết bằng Boo

1 bình luận

 
GN⁺ 2025-12-13
Ý kiến trên Hacker News
  • Sau khi đọc bài viết nói rằng hôm nay thức dậy, uống cà phê, rồi vì gia đình đã ngủ nên buổi chiều được rảnh, tôi tự hỏi múi giờ của họ khác nhau kiểu gì. Cũng tưởng tượng có khi đó là một gia đình ngủ vào buổi chiều, hoặc là người bắt đầu ngày mới vào buổi tối

    • Đùa rằng có khi thú vui khác của anh ấy là gây mê. Có thể là nhà có trẻ ngủ trưa, nhưng dù vậy thì chắc thời gian rảnh cũng chỉ khoảng hai tiếng
    • Thái độ như thể thích việc không phải dành thời gian với gia đình khiến tôi thấy hơi kỳ lạ. Có vẻ đó không phải chuyện đáng để chúc mừng
    • Nhìn ví dụ như “Breath of the Wild”, cảm giác như đang đọc một bài blog từ chiều không gian khác
    • Có lẽ là ở Tây Ban Nha. Biết đâu là nhờ truyền thuyết siesta nổi tiếng của họ
  • Câu “trình soạn thảo này tồn tại để làm tôi vui” nghe rất mới mẻ. Dạo này có áp lực rằng mọi side project đều phải phát triển thành mã nguồn mở hoặc SaaS, mà điều đó nhiều khi lại giết chết sự sáng tạo. Những dự án thử nghiệm như Boo hay Rio dường như xuất phát từ chính sự tự do đó

    • Mã nguồn mở thì tốt, nhưng tôi cũng nghĩ việc không nhận yêu cầu vá lỗi mà chỉ đơn giản công khai mã nguồn cũng hoàn toàn ổn
    • Giờ đây không chỉ dừng ở mã nguồn mở hay SaaS, mà còn có cảm giác mọi thứ đều phải đạt tới quy mô cấp doanh nghiệp mới nghiêm trọng hơn. Ngôn ngữ nhỏ, thử nghiệm, self-hosting, tinh thần DIY lại trở thành phản văn hóa
    • Tôi đồng cảm với câu “tồn tại để làm tôi vui”. (Emacs)
  • Câu “tôi làm nó cho chính mình” là cách làm của nhiều nghệ sĩ. Tolkien cũng vậy, và đa số đều tạo ra thứ gì đó cho bản thân trước rồi mới cho thế giới xem sau. Nhưng thường thì chẳng ai quan tâm, hoặc chỉ được chú ý sau khi qua đời. Dù vậy cũng không sao. Điều quan trọng là bản năng con người muốn biểu đạt trí tưởng tượng ra bên ngoài

    • Tôi cũng đã tạo thư viện canvas của mình với tâm thế đó. Ban đầu chỉ vì muốn thể hiện thơ theo cách mới trên website, vậy mà nó đã chiếm hơn 10 năm thời gian rảnh của tôi. Kết quả nằm ở trang bài thơ này
    • Có lần tôi viết một email trong cơn giận dữ, rồi theo gợi ý của bạn mà nó được đăng thành một bài bình luận (op-ed) trên báo địa phương. Tôi rất vui vì có ai đó thật sự quan tâm đến những gì tôi viết
    • Nếu thật sự làm cho bản thân, thì không nên bận tâm đến ánh mắt người khác. Trước đây tôi cũng từng nghĩ “người khác sẽ nghĩ gì nhỉ”, nhưng khi bắt đầu làm thật sự cho mình thì cảm giác hoàn toàn khác hẳn
    • Ngày trước, để nghệ sĩ theo đuổi tầm nhìn của mình thì cần có người bảo trợ (patron). Giờ thì bảo trợ đã được dân chủ hóa, nhưng đổi lại số lượt click lại quyết định kế sinh nhai. Thật tiếc khi giới bảo trợ giàu có biến mất, còn tiền thì lại đổ vào crypto hay AI
    • “Nghệ sĩ chỉ được chú ý sau khi chết” làm tôi nhớ đến họa sĩ Hà Lan bị mất một bên tai
  • Khi lập trình trở nên lặp đi lặp lại thì yếu tố ‘wow’ cũng giảm đi. Nhưng những dự án hỗ trợ nhiều website như yt-dlp là ngoại lệ. Việc tạo ra vô số bộ phân tích dữ liệu thì chán thật, nhưng kết quả lại mang đến cảm giác “chạy được ở khắp nơi”

  • Tôi làm ra phần mềm khiến con người cảm thấy cảm xúc — chủ yếu là tức giận. Rốt cuộc chỉ có hai loại phần mềm: bị phớt lờ, hoặc được dùng đủ nhiều để người ta phải phàn nàn

    • Ví dụ như Microsoft Teams hay Office 365 rõ ràng khơi gợi cảm xúc, nhưng không phải niềm vui
    • Phần mềm DRM cũng vậy. Đặc biệt những vụ như scandal rootkit của Sony BMG thì đã thành huyền thoại
    • Tôi cũng nhận ra những công cụ mình tạo ra để giải quyết vấn đề gặp hằng ngày thường cho chất lượng tốt nhất. Nếu khái quát hóa quá sớm thì ngược lại sẽ chậm hơn và chất lượng kém đi
  • Emacs và Emacspeak mang đến cho tôi cảm xúc cực lớn. Toàn bộ như một cuốn hướng dẫn thống nhất, chỉ cần nhấn C-h m là mọi lệnh hiện ra ngay. Không có gì bị giấu đi, không cần phải đào bới tài liệu HTML. Nếu có gì chưa làm được thì tôi sẽ sửa bằng Codex để ép nó làm điều tôi muốn

  • Trong trường hợp lý tưởng, phát triển phần mềm nên được xem như một nghề thủ công (craft). Giống như nghề mộc, nó vừa hữu dụng vừa có thể là nghệ thuật. Nhưng nhiều dự án lại đối xử với lập trình viên như công nhân nhà máy. Văn hóa coi trọng số lượng hơn chất lượng mới là vấn đề.
    Đồng thời, chỉ nhìn phần mềm như nghệ thuật cũng không thực tế. Mục đích của code không phải để ngắm mà là để chạy. Dù vậy, thật đáng tiếc khi cụm “phần mềm được làm bằng tinh thần thủ công” lại nghe có vẻ xa lạ

    • Nghề mộc suy cho cùng cũng là làm ra chiếc ghế để ngồi, chứ không phải để ngắm. Vậy mà tôi không hiểu sao phần mềm lại không được nhìn bằng lăng kính thủ công
  • Các công ty FAANG như Meta hay Google cũng đã tạo ra phần mềm khiến con người cảm thấy cảm xúc — giận dữ, u uất, đôi khi cả vui vẻ. Nhưng đó cũng cho thấy công nghệ khởi đầu với ý tốt có thể bị bóp méo như thế nào. Giống như câu “con đường tới địa ngục được lát bằng thiện ý”, nhiều khi theo đuổi điều tốt lại sinh ra điều xấu.
    Mượn lời Knuth, động lực của tiến bộ là “hãy để hàng nghìn nhà khoa học máy tính được tự do làm điều họ muốn”. Bell Labs từng như vậy, và tự do khám phá là điều quan trọng.
    Dạo này người ta ám ảnh với tối ưu hóa nhưng lại kém về mặt toán học, để rồi cuối cùng trở thành một xã hội đã ngừng khám phá. Tôi nghĩ vì thế mà tiến bộ chậm lại

    • Tôi có câu thế này: “nếu muốn chăn mèo, bạn phải tự biến mình thành mèo”. Muốn dẫn dắt những thiên tài thì phải trở nên giống họ. Đôi khi cũng phải một mình gánh nhiều vai trò
  • Đây là thói quen tôi học từ Casey Muratori và Jonathan Blow: tôi cũng thích tạo ra thế giới nhỏ của riêng mình. Đó là những dự án mà tôi vừa là người dùng duy nhất vừa là đối tượng duy nhất. Không deadline, không yêu cầu, không runtime, chỉ là một không gian của niềm vui thuần túy

    • Có người hỏi liệu câu “tạo ra thế giới của riêng mình” có phải đang chỉ một thế giới địa lý hư cấu hay không. Tolkien và Stevenson cũng bắt đầu như vậy
    • Nhưng Blow và Casey thì đã rất lâu rồi không ra được thành phẩm
  • Dạo này phần lớn phần mềm đều khơi gợi ở tôi cảm xúc rất mạnh

    • Đặc biệt là khi nhìn thấy node_modules thì tôi nổi giận. Mỗi khi thấy ứng dụng dựa trên Electron, tôi lại nghĩ “rốt cuộc chúng ta đã sai từ đâu”. Tôi cũng ghét việc chồng giao diện di động lên desktop