4 điểm bởi GN⁺ 2025-11-17 | 4 bình luận | Chia sẻ qua WhatsApp
  • Các thư viện tiện ích nhỏ của JavaScript đang dần trở nên không còn cần thiết do khả năng sinh mã của LLM
  • Ví dụ, blob-util là một gói npm đã 10 năm tuổi, một bộ công cụ xử lý Blob, nhưng giờ đây AI có thể tạo ra mã tương tự ngay tại chỗ
  • Sự thay đổi này cho phép giảm phụ thuộc và phát triển nhanh hơn, nhưng cũng dẫn đến mất đi cơ hội học tập và thấu hiểu
  • Tiếp nối việc mở rộng các tính năng tích hợp sẵn của Node.js và trình duyệt, LLM đang đẩy nhanh sự kết thúc của các thư viện quy mô nhỏ
  • Trong tương lai, giá trị của open source nhiều khả năng sẽ tiếp tục nằm ở các lĩnh vực sáng tạo, quy mô lớn và chuyên môn sâu

Sự suy tàn của open source cỡ nhỏ và tác động của LLM

  • blob-util, được tạo ra cách đây 10 năm, là một bộ tiện ích đơn giản để chuyển đổi đối tượng Blob của JavaScript thành chuỗi hoặc ArrayBuffer, với hơn 5 triệu lượt tải mỗi tuần
    • Tác giả tạo ra nó sau khi thấy người dùng PouchDB gặp khó khăn trong việc xử lý Blob
  • Hiện nay khoảng 80% nhà phát triển sử dụng AI trong công việc, và vì vậy các tiện ích đơn giản có thể bị LLM thay thế
    • Ví dụ, Claude có thể tạo ngay một hàm TypeScript để chuyển Blob thành ArrayBuffer
  • Kết quả của Claude tương tự blob-util, nhưng dài dòng hơn, kiểm tra kiểu quá mức, trong khi cách xử lý lỗi lại được cải thiện
  • Tác giả cho rằng sự thay đổi này có thể được xem như giảm phụ thuộc và tăng độ vững chắc của mã

Sự mai một giá trị của open source phục vụ học tập

  • README của blob-util có kèm hướng dẫn dùng nhân vật Kirby, và mục tiêu của nó không chỉ là cung cấp chức năng mà còn giúp học JavaScript
  • Trong môi trường phát triển lấy LLM làm trung tâm, câu trả lời tức thì được ưu tiên hơn sự thấu hiểu và giáo dục, nên nhu cầu với kiểu open source mang tính học tập này giảm đi
  • Những nỗ lực như llms.txt dành cho tự động hóa tài liệu đang định nghĩa lại chính ý nghĩa của tài liệu

Hướng đi mới của open source

  • Tác giả vẫn tiếp tục làm open source, nhưng cho rằng thời đại của các thư viện nhỏ, giá trị thấp đã kết thúc
    • Xu hướng này đã bắt đầu từ trước nhờ sự mở rộng của các tính năng tích hợp sẵn trong Node.js và trình duyệt như node:glob, structuredClone
    • LLM đã tăng tốc xu hướng đó một cách quyết định
  • Những thư viện từng đóng vai trò giáo dục (ví dụ: Underscore.js) cũng ngày càng ít cần thiết hơn
    • Các chức năng đơn giản như nhóm mảng giờ đây có thể giải quyết bằng API tiêu chuẩn

Điều kiện để open source vẫn còn giá trị

  • Giá trị sẽ tập trung vào những dự án quy mô lớn, sáng tạo hoặc chuyên môn sâu mà LLM không thể dễ dàng tạo ra
    • Ví dụ, dự án fuitenghiên cứu phát hiện rò rỉ bộ nhớ là những công việc sáng tạo mà LLM khó tái hiện
  • Trong tương lai, ý nghĩa của open source nằm ở ý tưởng mới và sự sáng tạo của con người
    • Bài viết nhắc đến framework Ripple.js do Dominic Gannaway phát triển để nhấn mạnh tinh thần thử nghiệm của con người

Kết luận

  • LLM đã khiến một phần open source trở nên lỗi thời, nhưng vẫn còn cơ hội sáng tạo open source theo những hình thức mới
  • Sự sáng tạo và tinh thần thử nghiệm của nhà phát triển con người được xem là yếu tố cốt lõi để hệ sinh thái open source tiếp tục tồn tại trong kỷ nguyên AI

4 bình luận

 
savvykang 2025-11-20

Tôi nghĩ là ổn, miễn có thể ngăn được những thói quen kỳ quặc của hệ sinh thái như left-pad.

 
shakespeares 2025-11-19

Khi đây dần trở thành thời đại mà mức độ hài lòng nhận được so với nỗ lực bỏ ra ngày càng thấp, có lẽ các tiện ích nhỏ sẽ bị quay lưng vì bị đánh giá là không còn xứng đáng với công sức cần cho việc bảo trì.

 
GN⁺ 2025-11-17
Ý kiến Hacker News
  • Khoảng 80% lập trình viên hiện nay đang sử dụng AI trong công việc
    Các tiện ích như blob-util giờ phần lớn có thể được tạo trực tiếp bằng LLM
    Nhưng cách tiếp cận này là con dao hai lưỡi. Mã chưa được kiểm chứng có thể để lại gánh nặng bảo trì và có thể thất bại ở các trường hợp biên
    Vì vậy trong hệ sinh thái Java, các bộ tiện ích chuẩn đáng tin cậy như Apache Commons đã có chỗ đứng vững chắc

    • Các thư viện tiện ích lâu năm đã được kiểm chứng trong nhiều môi trường nên ổn định
      Ngược lại, mã do LLM tạo ra nhìn bề ngoài có vẻ hợp lý nhưng rất dễ ẩn chứa những lỗi kỳ quặc
  • Chúng ta đã bước vào thời đại mà AI tạo ra hàng loạt mã và hướng dẫn, khiến chất lượng suy giảm và spam hóa tăng tốc
    Động lực để tạo blog cá nhân hoặc thư viện nhỏ cũng giảm đi

    • Thực ra web từ lâu đã tràn ngập spam hướng dẫn chất lượng thấp
      Nội dung do LLM tạo ra cũng ở mức tương tự, nên thậm chí còn cảm thấy dễ lọc hơn
      Tôi kiểm tra giá trị thực của hướng dẫn bằng cách chạy mã trong devcontainer. Nếu chạy được thì đáng xem, không thì bỏ
    • Hôm nay khi tìm một chủ đề cụ thể trên YouTube, tôi ngạc nhiên vì chỉ thấy video do AI tạo ra xuất hiện liên tục
    • Câu nói “thời đại của spam chất lượng thấp đang đến” thực ra đã là hiện thực
    • Có lập trình viên web đùa rằng “giờ nhanh hơn gấp 10 lần thì sao có thể xấu cho nhân loại được”
    • Có người mỉa mai bằng cách ném ra mã assembly và nói “không giải thích được cái này thì không phải lập trình viên thật sự”
  • Địa ngục vi phụ thuộc của JS từng là một cơn ác mộng
    Giờ thời đó đang dần kết thúc, và mong rằng chúng ta quay lại thời kỳ lập trình viên tự học cách viết mã

    • Những bộ tiện ích nhỏ được gói thành một package như jQuery hay lodash đã cho kết quả tốt nhất
    • Nhưng có người nghi ngờ tuyên bố “giờ mọi chuyện đã kết thúc”. Ngược lại, tình hình có thể còn tệ hơn vì làn sóng mã do AI tạo ra
    • Khi mã LLM tăng lên, các hàm cùng chức năng sẽ bị phân tán thành nhiều phiên bản, và việc sửa lỗi cũng phải làm riêng lẻ ở từng nơi
    • Dùng LLM không có nghĩa là con người sẽ học được nhiều hơn. Khi có vấn đề thì họ sẽ lại giao việc refactor cho LLM
    • Có người thêm ngắn gọn: “giờ là thời đại của vibe coder”
  • Có câu hỏi liệu bài toán đảo ngược cây nhị phân có thực sự tồn tại hay không

    • Có vẻ đây là cách nhắc đến bài toán mà nhà sáng lập Homebrew từng trượt trong buổi phỏng vấn ở Google
    • Có lẽ chỉ là lỗi nhầm đơn giản của tác giả, và nếu thật sự làm thì cũng chỉ là bài tập vô nghĩa kiểu đổi chiều toán tử so sánh mà thôi
  • Có người đồng tình với nhận định rằng “thời đại của những thư viện nhỏ, giá trị thấp đã kết thúc”
    Go vốn dĩ không có địa ngục phụ thuộc, còn vấn đề của npm là do yếu tố văn hóa
    Giờ đây, thay vì tiện ích, việc tạo ra sản phẩm thực sự hoạt động mới có giá trị và thú vị hơn

    • Như châm ngôn của Go, có triết lý rằng “một ít sao chép vẫn tốt hơn một ít phụ thuộc” (Go Proverbs)
    • Cũng có người hỏi không biết đặc điểm nào của Go đã ngăn được kiểu vấn đề phụ thuộc này
  • Tôi cho rằng bản thân vi phụ thuộc là vô nghĩa
    Thà liệt kê các hàm trong Markdown để người khác tự sao chép còn hơn
    Cách tiếp cận thư viện nhỏ dựa trên file header của C thực tế hơn

    • Sau đó có phản ứng nửa đùa nửa thật: “nếu vậy thì sao không đưa luôn các thư viện header này vào thư viện chuẩn của C?”
    • Nhưng cũng có phản biện thực tế rằng “nếu dùng kiểu copy-paste thì cập nhật bảo mật sẽ làm thế nào?”
  • Có người đặt câu hỏi: giờ thì kiểu nguồn mở nào còn mang ý nghĩa nữa
    Vì mã đã công khai rốt cuộc sẽ bị hấp thụ làm dữ liệu huấn luyện AI
    Vì thế, thay vì FOSS hoàn chỉnh, mô hình source-available có thể là một phương án thay thế

    • Có người phản bác: “nếu càng nhiều người có thể dùng thì đó chẳng phải chính là lợi ích của nguồn mở sao?”
      Tác giả nhấn mạnh rằng ý nghĩa của đóng góp lớn hơn chuyện chỉ được ghi tên
    • Nhưng cũng có ý kiến hoài nghi rằng “source-available rồi cuối cùng vẫn sẽ bị đem đi huấn luyện thôi”
    • Cũng có quan điểm cho rằng “không ai có nghĩa vụ phải cho thế giới tri thức miễn phí”, nên cần từ chối chia sẻ thiếu tính tương hỗ
    • Có ý kiến khác nói rằng phân phối mã không tự do là phi đạo đức, và phải giữ vững nguyên tắc phần mềm tự do
    • Có người nói mình “đã mất hứng thú với nguồn mở” và đã chuyển toàn bộ dự án sang riêng tư
  • Tôi tin rằng nguồn mở sẽ không biến mất mà còn mạnh hơn nữa
    Những lập trình viên thật sự sáng tạo sẽ dùng AI để tạo ra đổi mới mà doanh nghiệp không thể làm được
    Nguồn mở vẫn là nơi kiểm chứng giá trị thật sự, đồng thời là không gian để vượt qua giới hạn và học hỏi thông qua AI

    • Đổi mới thực sự sẽ đến từ nguồn mở
      Nhưng người này dự đoán rằng chính phủ và các tập đoàn lớn sẽ tìm cách quản lý hệ thống AI cục bộ, và sớm sẽ xuất hiện ranh giới về “AI mà công dân được phép sử dụng”
    • Ngược lại, các dự án nguồn mở hiện đã đau đầu vì các bản đóng góp mã do AI tạo ra
      Thời gian lãng phí cho việc rà soát và thảo luận chính sách ngày càng tăng, và đặc biệt trong các lĩnh vực phức tạp như trình biên dịch thì AI hoàn toàn không giúp được gì
  • Có người nhấn mạnh rằng dù không được thêm thành package, việc công khai mã tự thân nó vẫn có giá trị

    • Tôi cũng vậy, khi thấy một đoạn mã nhỏ thì sẽ sao chép rồi chỉnh lại cho phù hợp với tiêu chuẩn của mình. Cảm giác đó giống tinh thần chia sẻ của khoa học
      Nếu LLM thay mình viết mã thì gánh nặng học tập sẽ giảm đi, và có thể tập trung vào những chủ đề sâu hơn
    • Có người cho rằng giấy phép copyleft tốt hơn. Nó ngăn doanh nghiệp tùy tiện lấy dùng, và buộc họ phải trực tiếp tuyển người
    • Ngay cả khi không chạy thử, việc đọc mã của người khác để học hỏi vẫn rất có giá trị. Họ cho rằng việc tự giải quyết vấn đề đã là một món quà
    • Nhưng rốt cuộc nguồn mở vẫn là sự đầu tư thời gian và công sức.
      Ví dụ, có người nói mình đã duy trì rubygems.org suốt 14 năm, rồi rời đi vì thất vọng với cấu trúc đã bị doanh nghiệp hóa
  • Có ý kiến chỉ ra rằng “việc viết mã bằng AI rốt cuộc cũng chỉ là một dạng phụ thuộc
    Dán vào mà không kiểm chứng thì không khác gì thêm một thư viện bên ngoài

    • Nhưng mã do LLM tạo ra có thể được thiết kế hẹp theo đúng nhu cầu, nên giảm bớt tính năng thừa và có thể hiệu quả hơn
    • Ngoài ra, nó còn có lợi thế là không có gánh nặng từ tấn công chuỗi cung ứng hay cập nhật liên tục
    • Ngược lại, thư viện theo thời gian vẫn có thể tự động được hiện đại hóa, còn các đoạn mã LLM thì không
    • Cuối cùng, vấn đề không nằm ở công cụ mà là thói quen copy-paste không kiểm chứng. Lập trình viên thiếu trách nhiệm thì dùng công cụ nào cũng cho ra cùng một kết quả
 
haytsir 2025-11-18

Vào đầu năm 2024, khi làm một dự án nhỏ,
tôi đã nhờ Claude 3.5 tạo một mô-đun store state có thể dùng trong pure JavaScript,
và tôi vẫn nhớ đã rất ngạc nhiên vì nó viết ra đoạn mã vừa gọn gàng vừa xử lý được cả các tình huống migration.

Với các thư viện nhỏ, hẳn sẽ có rất nhiều đoạn mã do những người có suy nghĩ tương tự công khai, và nếu nghĩ rằng AI sẽ dễ biến chúng thành một cấu trúc chuẩn hóa, thì đây là một hiện tượng khá tất yếu.

Giống như copyparty, ai cũng có thể nghĩ ra, nhưng rất khó để một cá nhân duy trì lâu dài.
Tôi cũng thấy tiếc ở chỗ sau này có thể sẽ khó còn được thấy những dự án được mài giũa gọn gàng, được tạo ra nhờ kiên trì đẩy những kiểu dự án đó đến cùng.