Mã nguồn mở như chúng ta từng biết đã chết

06 tháng 10, 2026·8 phút đọc

Mã nguồn mở đang thay đổi sâu sắc khi các PR do AI tạo ra tràn ngập GitHub, khiến nhiều dự án lớn phải đóng cửa đóng góp từ bên ngoài. Từ curl, Ladybird, Godot cho đến Hono, các maintainer đang phải đối mặt với làn sóng đóng góp kém chất lượng chưa từng có.

Mã nguồn mở như chúng ta từng biết đã chết

Tác giả của bài viết gốc đã gắn bó với mã nguồn mở từ năm 2011, khi anh tạo tài khoản GitHub đầu tiên. Hơn một thập kỷ sau, anh nhận ra rằng thứ mà anh từng yêu quý đang dần biến mất — và thủ phạm, theo anh, chính là AI.

Mã nguồn mở chưa bao giờ chỉ là những dòng code. Đó là cộng đồng, là những con người, là cảm giác được chào đón và tin tưởng. Nhưng khi làn sóng AI tràn vào, sự cân bằng mong manh ấy đã bị phá vỡ.

Khi code không còn là điều quan trọng nhất

Khi người ta nói về mã nguồn mở, họ thường nói về code — giấy phép, gói phần mềm, số lượt tải, số sao. Nhưng đó chưa bao giờ là điều khiến tác giả gắn bó.

Điều giữ anh lại là con người. Là việc sửa một lỗi chính tả trong README và nhận được lời cảm ơn. Là một người lạ ở nửa kia thế giới tìm thấy lỗi trong code của anh và gửi bản sửa trước khi anh thức dậy. Là những cuộc tranh luận (phần lớn là lịch sự) trong các issue thread, để rồi đi đến một giải pháp tốt hơn những gì mỗi người có thể làm một mình.

"Một PR không chỉ là một bản diff — đó là ai đó nói rằng 'Tôi đã dùng thứ của bạn, tôi quan tâm đủ để làm nó tốt hơn, và tôi tin tưởng giao sản phẩm của mình cho bạn'. Việc review nó là bạn nói 'Tôi thấy bạn, chúng ta cùng làm'."

Chính sự trao đổi ấy, được lặp đi lặp lại hàng triệu lần, đã xây dựng nên Internet mà tất cả chúng ta đang dùng mỗi ngày.

Khi niềm tin trở thành dấu hỏi

Tác giả nhớ lại PR thứ hai của mình, một bản "dọn dẹp toàn cục" chạm vào gần như mọi dòng trong file, gửi đến một dự án mà anh chưa bao giờ duy trì. Người maintainer đã merge cả hai PR vào sáng hôm sau — không qua lại, không checklist, không bot.

Nhưng ngày nay, điều đó khó có thể xảy ra.

Miguel Grinberg, người duy trì Flask-SocketIO, đã nói thẳng vào năm nay: "Ngày nay, một PR không được yêu cầu là một dấu hiệu đỏ."

Andreas Kling, khi Ladybird ngừng nhận PR công khai, cũng bày tỏ quan điểm tương tự:

"Một bản patch lớn từng ngụ ý một nỗ lực lớn, và nỗ lực đó là một đại diện hợp lý cho thiện chí. Giả định đó không còn đúng nữa."

Một người thật đã viết PR của tác giả, lo lắng, hy vọng nó đủ tốt. Nỗ lực chính là tín hiệu. Và đó là thứ đang biến mất.

Không còn vui nữa

Mở một PR trên repo phổ biến ngày nay có thể thấy ngay điều gì xảy ra. Trong vài giây, một bot để lại đánh giá AI tóm tắt lại chính thay đổi của bạn. Một bot khác đăng bản xem trước triển khai. Bot thứ ba đăng "walkthrough" kèm sơ đồ tuần tự mà không ai yêu cầu. Đôi khi bot thứ tư xuất hiện để trả lời bot thứ ba.

Đến khi có người thật thực sự xem xét, thread đã là một bức tường văn bản do máy tạo ra, và cuộc trò chuyện thực sự (phần của con người) bị chôn vùi ở đâu đó.

Trường hợp tồi tệ hơn là khi không ai thực sự viết PR đó cả — những PR "sửa" các vấn đề không tồn tại, viết lại nửa file với code tự tin, hợp lý nhưng hoàn toàn sai, hoặc báo cáo bảo mật đọc như thật cho đến khi nhận ra lỗ hổng đó được bịa ra.

Cánh cửa đang đóng lại

Làn sóng PR kém chất lượng do AI tạo ra khiến nhiều dự án lớn phải thay đổi chính sách:

  • curl chấm dứt chương trình bug bounty tiền mặt sau khi tỷ lệ tín hiệu trên nhiễu sụp đổ. Daniel Stenberg viết rằng tỷ lệ báo cáo thật đã giảm xuống dưới 5%: "Chưa đến một trong hai mươi là thật."
  • tldraw bắt đầu tự động đóng các PR bên ngoài.
  • Ghostty siết chặt chính sách AI. Mitchell Hashimoto cho biết các đóng góp AI chất lượng thấp đã làm số lượng đóng góp "xấu" tăng "gấp 10 lần, nếu không nói là hơn".
  • Jazzband, nơi tập hợp hàng chục dự án Python, đã đóng cửa hoàn toàn.
  • OpenJDK cấm đóng góp do LLM tạo ra.
  • Ladybird ngừng nhận PR công khai.
  • Godot yêu cầu code phải do con người viết và cấm các tác nhân tự trị.
  • COSMIC yêu cầu người đóng góp xác nhận PR không chứa code, bình luận hay mô tả do LLM tạo.
  • Codeberg bỏ phiếu cấm các dự án chủ yếu do AI tạo.

Ngày 1 tháng 10, Sindre Sorhus — người có code xuất hiện trong gần như mọi dự án JavaScript suốt thập kỷ qua — đã tắt PR bên ngoài trên tất cả repo của mình:

"Vì AI, tôi đã tắt PR bên ngoài trên tất cả repo của mình. Mã nguồn mở, như chúng ta từng biết, đã vui trong suốt thời gian qua. (Đã 15 năm với tôi)."

Nỗi đau mang tên Hono

Tuần này, Yusuke Wada đã tắt PR từ người đóng góp bên ngoài trên Hono — một trong những dự án được yêu thích nhất trong cộng đồng phát triển Workers.

"Tin buồn. Chúng tôi đã tắt PR từ người đóng góp bên ngoài trên honojs/hono... Hono không đứng được ở đây nếu không có các PR. Tôi sẽ không bao giờ quên PR mà @usualoma tạo cho RegExpRouter. Một HTTP router cực nhanh mà chúng tôi chưa từng thấy! Nhưng PR không còn hiệu quả trong thời đại này. Hãy đóng góp bằng cách khác. Cảm ơn."

Trích dẫn này đau lòng vì nó chứa đựng toàn bộ mâu thuẫn. Hono được định hình bởi PR của một người ngoài, và người ngoài đó vẫn đang đóng góp bốn năm sau. Giờ Hono phải đóng cánh cửa mà chính họ đã bước qua. Đó không phải là đạo đức giả, mà là nỗi đau.

Ngay cả nền tảng cũng lên tiếng

Tháng Hai, GitHub công bố bài viết "Chào mừng đến với Eternal September của mã nguồn mở", với thông điệp: "Chi phí để tạo đã giảm nhưng chi phí để review thì không."

Ngày hôm sau, họ phát hành tính năng cho phép tắt hoàn toàn pull request. Kể từ đó, họ bổ sung giới hạn PR mở cho mỗi người dùng (AI agent cũng tính), cách hạn chế ai có thể mở issue, và cách lưu trữ PR rác để không ai thấy.

Nền tảng đã làm nên tên tuổi của pull request đang dành cả năm để xây dựng cách tắt nó đi.

Một số dự án không chờ GitHub sửa. Zig đã chuyển sang Codeberg năm ngoái, và ngày càng nhiều người tự dựng instance Forgejo hoặc Gitea. Nhưng mỗi dự án rời đi lại mang theo issue, lịch sử và con người đến một nơi mới — thêm một tài khoản để tạo, thêm một nơi để tìm. Điều đó phân mảnh mọi thứ hơn nữa, và khiến người lạ tiếp theo càng ít có khả năng ghé vào.

Tác giả cũng là một phần của vấn đề

Tác giả thừa nhận mình dùng AI mỗi ngày, viết code với nó, review code với nó, thậm chí nhờ nó giúp sắp xếp những ghi chú lộn xộn thành bài viết này. Anh không ở đây để khuyên ai ngừng dùng AI.

Nhưng anh cho rằng nhiều người (kể cả anh) đang đối xử với chi phí của AI như thể nó bằng không. Sự thật không phải vậy — chi phí chỉ chuyển chỗ.

"Khi tạo một PR mất mười giây và review nó đúng cách mất ba mươi phút, tất cả những gì bạn làm là chuyển công việc từ người muốn điều gì đó sang người phải nói không — và người nói không gần như luôn là một tình nguyện viên vốn đã kiệt sức."

AI làm cho việc đóng góp trở nên rẻ. Nó không làm cho việc duy trì rẻ hơn chút nào — nếu có, nó làm việc đó đắt đỏ hơn rất nhiều.

Không có giải pháp dễ dàng

Tác giả thừa nhận mình không có câu trả lời gọn gàng. Cấm PR do AI tạo có vẻ là quyết định đúng cho nhiều dự án, nhưng đó cũng là công cụ thô thiển. Nó bắt cả người dùng AI để viết một test tốt lẫn kẻ chĩa agent vào hàng nghìn repo. Nó dựa vào sự trung thực, hoặc vào phát hiện vốn không thực sự hiệu quả, và nó đẩy chúng ta về một thế giới nơi repo mặc định đóng, nơi bạn cần được bảo chứng trước khi được phép giúp đỡ, và nơi câu trả lời mặc định cho người lạ là không.

Có thể đó chính là nơi chúng ta đang hướng tới — những vòng tròn nhỏ hơn, tin cậy hơn, với mã nguồn công khai nhưng đóng góp chỉ theo lời mời.

Nhưng phiên bản đầu thập niên 2010 của tác giả, người lo lắng gửi cho người lạ 300 dòng "dọn dẹp", sẽ không vượt qua được cánh cửa đó. Và anh nghĩ chúng ta mất đi điều gì đó thật sự khi những người như vậy không thể bước vào nữa.

Anh không biết giải pháp là gì. Anh chỉ biết mình nhớ cảm giác ngày xưa.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗