Vài tuần làm việc, xong trong 20 phút: Cha đẻ Redis nói kỷ nguyên gõ code thủ công đã chấm dứt

Tác giả của bài viết này, antirez, là người tạo ra cơ sở dữ liệu trong bộ nhớ nổi tiếng Redis. Phần mềm của ông đang vận hành hoạt động của hàng chục triệu doanh nghiệp trên toàn thế giới. antirez từng là người hoài nghi về AI -- ông thậm chí còn viết một cuốn tiểu thuyết để bày tỏ nỗi lo sợ về việc tự động hóa bằng AI thay thế con người. Nhưng trải nghiệm gần đây đã chứng minh rằng thực tế của lập trình đã thay đổi vĩnh viễn. Trong các bài kiểm tra của antirez, Claude Code đã thể hiện hiệu suất mang tính bước ngoặt. Nó có thể viết 700 dòng code C chặt chẽ, hiệu suất cao trong 5 phút. Nó có thể tự động lặp lại để tái hiện và sửa các lỗi deadlock cũng như lỗi timing cực kỳ khó trong Redis. Ngay cả việc tái cấu trúc nội bộ phức tạp của Redis Streams cũng chỉ mất 20 phút. antirez tin rằng lập trình viên ngày nay không nên mãi chăm chăm gõ code từng dòng, vì trong hầu hết các trường hợp, đó không còn là sự lựa chọn hợp lý nữa. Ông khuyên mọi người nên học cách trở thành người cộng tác giỏi với AI, dồn năng lượng vào việc định nghĩa vấn đề và thiết kế giải pháp. Ông khuyến khích mọi lập trình viên bắt đầu học và sử dụng sâu Claude Code. Như antirez nói: đừng vì từ chối đối mặt thực tế mà bỏ lỡ cơ hội định hình tương lai. Hãy dành vài tuần để thử nghiệm những công cụ mới này và tìm cách nhân đôi năng suất của mình. Niềm vui thuần khiết nhất của lập trình là xây dựng, và AI sẽ cho phép bạn xây dựng nhiều hơn, xây dựng tốt hơn, và xây dựng với nhiều niềm vui hơn.
Tôi thích viết phần mềm, từng dòng một. Có thể nói, cả sự nghiệp của tôi là hành trình theo đuổi việc viết ra những đoạn code gọn gàng, tinh tế và có gu. Thú thật, tôi không muốn AI chiến thắng về mặt kinh tế. Tôi cũng không quan tâm liệu hệ thống kinh tế hiện tại có bị AI phá vỡ hay không -- nếu nó dẫn đến sự phân phối lại tài sản ở quy mô lớn, tôi thậm chí còn vui mừng. Nhưng cố tình giả vờ rằng thực tế không tồn tại chỉ vì quan điểm của tôi về phần mềm và xã hội, thì đó là sự phản bội lại lý trí của chính mình. Sự thật vẫn là sự thật. AI đang thay đổi, và sẽ thay đổi vĩnh viễn, công việc lập trình máy tính.
Năm 2020, tôi nghỉ việc để viết tiểu thuyết. Nội dung về AI, thu nhập cơ bản toàn dân, và một xã hội đang thích nghi với tự động hóa lao động giữa muôn vàn thử thách. Cuối năm 2024, tôi bắt đầu mở một kênh chuyên bàn về AI, cách nó được sử dụng trong các tác vụ lập trình, và những tác động có thể xảy ra. Mặc dù tôi nhận ra sớm rằng những thay đổi này sẽ xảy ra, tôi vẫn luôn cho rằng chúng ta còn vài năm nữa trước khi lập trình thực sự bị định hình lại. Giờ tôi không còn nghĩ vậy nữa. Ngày nay, với các mô hình ngôn ngữ lớn tiên tiến nhất, bạn chỉ cần đưa ra một bộ mục tiêu rõ ràng là mô hình có thể hoàn thành các nhiệm vụ con lớn -- thậm chí cả các dự án quy mô trung bình -- gần như hoàn toàn tự động, với rất ít sự can thiệp của con người. Hiệu quả tốt hay không phụ thuộc vào loại lập trình bạn làm (càng độc lập và càng dễ mô tả bằng văn bản thì càng tốt -- lập trình hệ thống là một ví dụ rất phù hợp), và phụ thuộc vào khả năng bạn suy nghĩ thấu đáo vấn đề và truyền đạt chính xác cho mô hình. Nhưng nhìn chung, bây giờ đã rõ: ngoại trừ việc code chỉ cho vui, viết code thủ công trong hầu hết các dự án không còn là lựa chọn hợp lý nhất.
Trong tuần qua, tôi chủ yếu viết prompt, thỉnh thoảng xem lại code và đưa ra hướng dẫn. Chỉ trong vài giờ, tôi đã hoàn thành bốn việc sau đây -- khối lượng công việc mà trước đây sẽ mất của tôi vài tuần.
Tôi đã sửa đổi thư viện linenoise của mình để hỗ trợ UTF-8. Tôi cũng xây dựng một framework kiểm thử trình chỉnh sửa dòng, có mô phỏng terminal với khả năng báo cáo nội dung của từng ô ký tự. Đây là điều tôi luôn muốn làm. Nhưng thật khó biện minh cho việc đầu tư nhiều công sức vào một sub-project nhỏ chỉ để phục vụ mục đích kiểm thử. Giờ bạn chỉ cần mô tả điều mình muốn, và nó biến thành code. Tình hình hoàn toàn khác rồi.
Tôi đã sửa các lỗi thất thường trong bộ kiểm thử của Redis. Công việc này cực kỳ tẻ nhạt, liên quan đến phối hợp thời gian, deadlock TCP, và các vấn đề tương tự. Claude Code liên tục lặp lại, dành đủ thời gian để tái hiện sự cố, kiểm tra trạng thái của từng tiến trình, tìm ra chuyện gì đang xảy ra, rồi sửa lỗi.
Hôm qua, tôi muốn có một thư viện C thuần có thể chạy suy luận với các mô hình embedding kiểu BERT. Claude Code viết nó trong 5 phút. Hiệu suất suy luận của thư viện này ngang ngửa PyTorch, chỉ chậm hơn khoảng 15%. Toàn bộ thư viện chỉ có 700 dòng code C. Nó thậm chí còn tạo ra một tiện ích Python để chuyển đổi mô hình GTE-small.
Trong vài tuần qua, tôi đã chỉnh sửa phần bên trong của Redis Streams. Tôi viết một tài liệu thiết kế cho công việc này. Tôi đưa tài liệu cho Claude Code, và nó đã làm lại toàn bộ công việc của tôi trong khoảng 20 phút. Phần lâu hơn là do chính tôi xem xét và xác nhận các lệnh.
Những gì đang xảy ra bây giờ là không thể phớt lờ. Trong hầu hết các trường hợp, con người không còn cần tự tay viết code nữa. Phần thú vị hơn đã trở thành việc tìm ra cần làm gì và làm như thế nào. Về phía "làm như thế nào", các mô hình lớn là những cộng tác viên tuyệt vời. Dù các công ty AI có thu hồi được vốn đầu tư hay không, hay thị trường chứng khoán có sụp đổ hay không, về lâu dài đều không quan trọng. Những điều kỳ quặc hay vô lý mà CEO của một công ty unicorn nào đó nói cũng không quan trọng. Dù thế nào đi nữa, lập trình đã bị thay đổi vĩnh viễn.
Đối với tôi, việc code tôi viết đã được dùng để huấn luyện các mô hình lớn là một điều tuyệt vời. Tôi xem đó là sự tiếp nối của một niềm đam mê suốt đời: dân chủ hóa code, hệ thống và tri thức. Các mô hình ngôn ngữ lớn sẽ giúp chúng ta viết phần mềm tốt hơn, nhanh hơn. Chúng cũng sẽ cho các đội ngũ nhỏ khả năng cạnh tranh với các tập đoàn lớn. Giống như phần mềm mã nguồn mở đã làm trong thập niên 1990.
Là một lập trình viên, bây giờ tôi muốn viết mã nguồn mở hơn bao giờ hết. Tôi muốn nhặt lại một số repo đã bị gác lại vì thiếu thời gian và cải thiện chúng. Tôi muốn dồn toàn lực cho AI trong quy trình làm việc Redis của riêng mình. Trước tiên cải thiện triển khai Vector Sets, rồi chuyển sang các cấu trúc dữ liệu khác, giống như tôi đang làm với Streams bây giờ.
Nhưng tôi lo cho những người sẽ mất việc. Vẫn chưa rõ chính xác những thay đổi nào sẽ diễn ra. Các công ty có thể muốn nhiều người hơn để làm nhiều việc hơn. Hoặc điều ngược lại có thể xảy ra: ít lập trình viên hơn nhưng thành thạo AI hơn, để giảm chi phí lương. Tôi cũng lo rằng trong nhiều ngành nghề khác, con người có thể trở nên gần như hoàn toàn có thể thay thế.
Về cách lập trình. Tôi chỉ có một lời khuyên cho bạn, người bạn của tôi. Dù bạn tin rằng điều gì là "đúng đắn" thì cũng không thể bị ảnh hưởng bởi việc phủ nhận thực tế. Chọn không dùng AI chẳng có lợi gì cho bạn hay sự nghiệp của bạn. Hãy suy nghĩ kỹ. Hãy thử nghiệm những công cụ mới này một cách nghiêm túc. Dành vài tuần, chứ không phải năm phút chơi cho có chỉ để xác nhận những gì bạn đã tin. Tìm cách nhân bản chính mình. Nếu lần đầu chưa tìm được cách phù hợp, hãy thử lại sau vài tháng.
Bạn có thể nghĩ đến việc mình đã vất vả thế nào để học lập trình, rồi bây giờ máy móc viết code thay bạn. Nhưng ngọn lửa đã giữ bạn thức khuya đến tận đêm, chỉ để thấy dự án của mình thành hình -- đó là niềm vui sáng tạo. Nếu bạn tìm được cách sử dụng AI hiệu quả, bạn sẽ sáng tạo được nhiều hơn và sáng tạo được tốt hơn. Niềm vui vẫn còn đó, nguyên vẹn.