- Gần đây, mô hình ngôn ngữ lớn (LLM) đã phát triển đến mức có thể gần như tự mình hoàn thành các dự án quy mô vừa, cho thấy cách lập trình đang thay đổi một cách căn bản
- Nhu cầu trực tiếp viết mã đang giảm dần, và năng lực quan trọng hơn đang chuyển sang khả năng suy nghĩ về việc sẽ làm gì và mô tả nó như thế nào
- Antirez, người sáng lập Redis, đã dùng Claude Code để hoàn thành bốn công việc chỉ trong vài giờ: thêm hỗ trợ UTF-8, sửa lỗi trong bài kiểm thử Redis, tạo thư viện C cho embedding BERT, và tái tạo cấu trúc nội bộ của Redis Streams
- AI đang thúc đẩy dân chủ hóa phát triển phần mềm, tạo ra môi trường nơi các nhóm nhỏ cũng có thể cạnh tranh với các tập đoàn lớn
- Tuy nhiên, vẫn cần có phản ứng xã hội đối với rủi ro tập trung hóa công nghệ AI và vấn đề suy giảm việc làm; thay vì phớt lờ AI, cần chủ động tận dụng nó
Sự thay đổi của lập trình và vai trò của LLM
- Các LLM mới nhất có thể gần như tự hoàn thành một dự án quy mô vừa nếu chỉ được cung cấp đủ gợi ý
- Thành công hay không phụ thuộc vào loại hình lập trình và khả năng diễn đạt rõ ràng vấn đề
- Những công việc có thể biểu đạt bằng văn bản như lập trình hệ thống đặc biệt mang lại hiệu quả cao
- Trong phần lớn dự án, tự tay viết mã là không hiệu quả; giờ đây điều quan trọng hơn là hiểu phải làm gì và làm như thế nào
- Tác giả Antirez đã dùng AI để thực hiện bốn công việc sau
- Thêm hỗ trợ UTF-8 cho thư viện linenoise và xây dựng framework kiểm thử dựa trên terminal giả lập
- Công việc trước đây từng bị bỏ qua vì giá trị không tương xứng với chi phí kiểm thử nay đã được hiện thực hóa nhờ AI
- Giải quyết vấn đề thất bại ngắt quãng liên quan đến timing và TCP deadlock trong kiểm thử Redis
— Claude Code đã phân tích trạng thái tiến trình để sửa lỗi
- Tạo thư viện C thuần để suy luận mô hình embedding họ BERT chỉ trong 5 phút
- Chậm hơn PyTorch 15% nhưng cho kết quả tương đương. Quy mô khoảng 700 dòng mã
- Bao gồm công cụ Python để chuyển đổi mô hình GTE-small
- Tái tạo công việc thay đổi cấu trúc nội bộ Redis Streams chỉ từ tài liệu thiết kế
- Nếu không tính thời gian rà soát và phê duyệt chạy, công việc hoàn tất trong khoảng 20 phút
- Từ những trải nghiệm này, tác giả xác nhận rằng AI đang thay đổi bản chất của lập trình
Mối quan hệ giữa AI và lập trình viên
- Dù AI có viết mã, vai trò của lập trình viên không biến mất
- Điều quan trọng là khả năng định nghĩa vấn đề, đồng thời rà soát và điều chỉnh đoạn mã do AI tạo ra
- AI đóng vai trò đối tác (partner) giúp tối đa hóa năng suất phát triển
- Khả năng sinh lời của các công ty AI, giá cổ phiếu hay phát ngôn của CEO không quan trọng về dài hạn
- Sự thay đổi mang tính bản chất của lập trình là điều không thể đảo ngược
- Bản thân tác giả đánh giá tích cực việc mã do mình viết được dùng để huấn luyện LLM
- Ông xem đây là một quá trình dân chủ hóa tri thức và hệ thống
- Giống như mã nguồn mở từng làm trong thập niên 1990, AI cũng được kỳ vọng sẽ tăng sức cạnh tranh cho các nhóm nhỏ
Dân chủ hóa công nghệ AI và lo ngại tập trung hóa
- Hiện tại, một mức độ dân chủ hóa nhất định đang diễn ra khi các mô hình mở từ Trung Quốc và những nơi khác xuất hiện
- Ngay cả khi so với các mô hình dẫn đầu từ các phòng thí nghiệm đóng, chênh lệch hiệu năng cũng không quá lớn
- Tuy nhiên, sự cân bằng này có thể không tồn tại vĩnh viễn
- Có lo ngại rằng công nghệ AI sẽ tập trung vào một số ít doanh nghiệp
- Các mạng nơ-ron quy mô lớn về bản chất thể hiện năng lực đáng kinh ngạc; không tồn tại thứ “phép màu” nào mà chỉ một vài công ty mới có thể độc quyền
Tác động xã hội và cách ứng phó
- Có lo ngại rằng AI có thể dẫn tới suy giảm việc làm
- Chưa rõ doanh nghiệp sẽ cắt giảm nhân sự hay sẽ thúc đẩy nhiều dự án hơn
- Ở một số ngành, cũng có nguy cơ con người bị thay thế hoàn toàn
- Vì vậy, vai trò của chính phủ là rất quan trọng
- Cần các chính sách hỗ trợ người mất việc và giúp xã hội thích ứng với thay đổi
- Tác giả dự đoán rằng khi sa thải gia tăng, áp lực chính trị cũng sẽ tăng theo, theo hướng đòi hỏi bảo vệ xã hội mạnh hơn
Lời khuyên dành cho lập trình viên
- Từ chối hoặc né tránh AI không giúp ích cho sự nghiệp
- Cần trực tiếp thử nghiệm và sử dụng lâu dài các công cụ mới
- Đừng vội kết luận chỉ sau thử nghiệm ngắn hạn; hãy tiếp tục thử trong nhiều tuần và duy trì việc thử nghiệm
- Cần tìm cách mở rộng năng lực của bản thân thông qua AI
- Bản chất của việc lập trình không phải là “viết”, mà là niềm vui tạo ra thứ gì đó; với AI, bạn có thể tạo ra nhiều hơn và tốt hơn
5 bình luận
Nghĩ kỹ thì trong thực tế không có nhiều vấn đề có thể giải quyết bằng code như ta tưởng. Code có thể giải quyết khá nhiều vấn đề, nhưng phần lớn vấn đề lại nằm ở bên ngoài code hay màn hình.
Tôi nghĩ rằng cũng như sự ngờ vực cố chấp là sai, niềm tin mù quáng tuyệt đối cũng sai. Điều quan trọng là phải cân nhắc kỹ ưu và nhược điểm để sử dụng cho phù hợp, còn việc chỉ đơn thuần tạo ra bầu không khí FOMO thì theo tôi đó là chiêu trò thương mại của các công ty AI.
Ý kiến trên Hacker News
Đam mê khiến tôi thức trắng đêm viết code và ngắm dự án chạy được chính là “niềm vui tạo ra thứ gì đó”
Tia lửa đó ở mỗi người có hình dạng khác nhau. Có người được thúc đẩy bởi cảm giác “điều khiển máy tính theo ý mình”, có người bởi việc “giải quyết vấn đề cho người khác”, và có người nữa bởi việc “tạo ra thứ gì đó khơi gợi cảm xúc”
Với tôi, ban đầu tôi học lập trình vì muốn phá web của người khác, nhưng rồi quá trình tạo ra và chia sẻ lại trở nên vui hơn. Vì thế, lắng nghe phản hồi từ người khác đã trở thành tia lửa của tôi
Rốt cuộc, mỗi lập trình viên đều có lý do riêng; với một số người, LLM làm tăng niềm vui, nhưng với số khác, nó lại là thứ lấy mất phần vui cốt lõi
Tôi hoàn toàn đồng ý với bài viết của antirez. AI đang mang lại lợi thế lớn cho developer, và hiện chúng ta đang ở giữa cuộc cách mạng công nghệ lớn nhất kể từ Internet
Tuy vậy, ông ấy không phân tích nhược điểm của AI hay lý do tồn tại góc nhìn phản AI. Tôi thấy tiếc vì bài viết không đề cập đến tác động xã hội, đặc biệt là nỗi lo về tương lai của ngành kỹ nghệ phần mềm
Tôi không hiểu câu “nếu không lên chuyến tàu AI thì sẽ bị bỏ lại phía sau”. Hiện giờ nó chưa giúp ích nhiều cho công việc của tôi, nên tôi nghĩ đợi đến khi công cụ đủ tốt rồi bắt đầu cũng chưa muộn
Cụm từ “làn sóng phản AI” là một cách nhìn quá đơn giản hóa. Về mặt kỹ thuật, nó vẫn còn thô nhưng tính hữu dụng là rõ ràng, và nó sẽ không biến mất
Tuy nhiên, về mặt kinh doanh thì mô hình doanh thu vẫn chưa rõ ràng. Công nghệ sẽ còn đó, nhưng nhiều khả năng sẽ có sự sụp đổ của các startup xây trên nó
Sau 5 năm nữa, AI sẽ được dùng nhiều hơn, nhưng phần lớn các công ty AI hiện nay có lẽ sẽ biến mất
Có một cuộc tranh luận bất tận giữa “AI sẽ thay đổi lập trình mãi mãi” và “cứ dùng đầu mà nghĩ đi”. Tôi nghiêng về vế sau. Chỉ nói về ưu điểm của AI thì không giải quyết được vấn đề
Nói rằng “LLM mới nhất gần như tự mình hoàn thành một dự án cỡ vừa” là phóng đại. Nếu một người có kiến thức miền đưa ra đặc tả cụ thể thì năng suất có thể tăng mạnh, nhưng chất lượng đầu ra vẫn phản ánh trình độ hiểu biết của người dùng
Phép so sánh rằng dù có đưa máy kéo tốt thì tay nghề người nông dân vẫn quan trọng là rất đúng
Khi công cụ phát triển ngày càng được trừu tượng hóa, sức ảnh hưởng và phần thưởng dành cho developer thực ra lại ngày càng tăng. LLM cũng chỉ là sự tiếp nối của xu hướng đó
Trừu tượng hóa giúp công việc dễ hơn, nhưng đồng thời cũng cho phép làm được nhiều việc hơn và sinh ra những độ phức tạp mới. Cuối cùng, niềm tin và tầm ảnh hưởng trở nên quan trọng hơn. Đó là lý do CEO được trả cao hơn nhân viên rất nhiều
LLM sẽ còn làm tăng thêm sức mạnh và tầm ảnh hưởng của developer
Cuối cùng, thời kỳ “hoặc leo lên cao hơn (out), hoặc biến mất” kiểu cũ có thể quay lại. Nếu không học kỹ năng làm việc với con người và cảm quan kinh doanh, bạn có nguy cơ ngày càng trở thành một sự hiện diện vô nghĩa
Đừng rơi vào kiểu quá tự tin với AI theo phong cách “Look ma, no hands”.
Với tổ hợp Antirez + LLM + CFO, có thể tạo ra một công ty Redis trị giá hàng tỷ USD, nhưng đó là vì ông ấy hiểu Redis một cách hoàn hảo.
Nếu là một codebase xa lạ như Postgres thì sẽ khó đạt được kết quả tương tự, và phần lớn developer làm việc trong những môi trường xa lạ như thế.
Rốt cuộc, giá trị thực sự của LLM nằm ở chuyên gia miền, và nếu tổ chức muốn tận dụng AI cho đúng thì đầu tư vào đào tạo và học tập cho nhân viên là điều bắt buộc
Nếu thiết lập tốt hệ thống kiểm chứng theo cách này thì ngay cả ở lĩnh vực xa lạ vẫn có thể đạt kết quả. Cuối cùng, điều cần thiết là trực giác, tư duy phản biện và tư duy khoa học
Tôi không đồng ý với câu “tôi vui vì LLM đã học từ code của tôi”.
Tôi thì không. Ngược lại, tôi thấy chất lượng phần mềm đang đi xuống, và tôi không nghĩ LLM tạo ra code tốt hơn
Tôi đồng cảm với câu “việc từ chối AI không thể làm thế giới dừng lại”.
Tôi cũng khuyên bạn bè rằng “hãy tự dùng thử rồi hãy phán đoán”. Đừng chỉ nghịch 5 phút rồi kết luận, mà hãy thử nghiệm trong vài tuần.
Phần lớn truyền thông hiện nay đang bán một câu chuyện tiêu cực để kiếm click. Muốn đánh giá chính xác thì không còn cách nào khác ngoài việc tự dùng thử.
Và vào lúc này, ta cần chú ý kỹ hơn tới những tín hiệu tích cực. Các trường hợp “tôi đã làm được việc này bằng nó” có giá trị hơn nhiều so với câu “cái này vẫn chưa làm được”
Có vẻ vẫn còn khá nhiều lập trình viên không dùng AI mà lại nói chỉ tạo ra toàn mã rác. Thật kỳ lạ...
Mặt khác, tôi nghĩ cũng không nên phớt lờ những tiếng nói chỉ ra các vấn đề. Tôi cảm thấy khá nhiều trường hợp ngay cả một chút phê bình cũng bị xem như chỉ là công kích.