- 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
fuite và nghiê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
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.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ì.
Ý 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
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
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ỏ
Đị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ã
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ó 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
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
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ế
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
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
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”
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ị
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
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
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.