Sự phát triển của các trợ lý lập trình được hỗ trợ bởi AI như Claude Code đã gây ra một cuộc tranh luận gay gắt trong cộng đồng nhà phát triển về việc liệu những công cụ này có đang cách mạng hóa lập trình hay tạo ra sự phụ thuộc không lành mạnh. Ngày càng nhiều lập trình viên so sánh trải nghiệm sử dụng các công cụ lập trình AI với việc chơi máy đánh bạc, nêu ra những phần thưởng không thể đoán trước và các mô hình chờ đợi gây nghiện khi yêu cầu AI tạo ra mã code.
Sự so sánh này xuất phát từ tính chất không thể dự đoán của chất lượng code do AI tạo ra. Đôi khi AI tạo ra những giải pháp xuất sắc, hoạt động tốt ngay từ lần đầu tiên. Những lúc khác, các nhà phát triển thấy mình bị mắc kẹt trong những vòng lặp tốn kém với các lần thử thất bại, dành hàng giờ và số tiền đáng kể cho các cuộc gọi API trong khi liên tục kéo cần với hy vọng nhận được code hoạt động.
Sự phân chia thế hệ trong việc áp dụng AI
Các cuộc thảo luận cộng đồng cho thấy một mô hình rõ ràng về việc ai chấp nhận và ai chống lại các công cụ lập trình AI. Những nhà phát triển bắt đầu lập trình trong vòng 15 năm qua, những người đã nghỉ việc một thời gian, và các lập trình viên tập trung vào xây dựng sản phẩm có xu hướng chào đón sự hỗ trợ của AI. Trong khi đó, những người kỳ cựu với hơn 25 năm kinh nghiệm, những người thực sự yêu thích bản thân quá trình lập trình lại thể hiện sự kháng cự nhiều hơn với những công cụ này.
Sự phân chia này phản ánh những động lực khác nhau trong lập trình. Một số nhà phát triển xem code như một phương tiện để đạt mục đích - một công cụ để xây dựng sản phẩm và giải quyết vấn đề. Đối với họ, AI loại bỏ công việc tẻ nhạt và tăng tốc quá trình phát triển. Những người khác tìm thấy niềm vui trong chính quá trình viết code, xem nó như một nghề thủ công không nên được tự động hóa.
Các nhóm lập trình viên có khả năng cao nhất sẽ áp dụng công cụ lập trình AI:
- Các lập trình viên bắt đầu sự nghiệp trong vòng 15 năm qua
- Các nhà phát triển đã tạm nghỉ sự nghiệp (trở thành giám đốc điều hành, tạm thời rời khỏi ngành)
- Các nhà phát triển tập trung vào sản phẩm, coi code như một phương tiện để đạt mục đích
- Những người làm việc với các ngôn ngữ lập trình/framework dài dòng
Nghịch lý năng suất
Trong khi các công cụ lập trình AI hứa hẹn những cải thiện năng suất to lớn, thực tế lại phức tạp hơn. Nhiều nhà phát triển báo cáo rằng AI xuất sắc trong việc tạo ra code mẫu, xử lý các tác vụ lặp đi lặp lại, và làm việc với các framework và thư viện đã được thiết lập tốt. Tuy nhiên, nó gặp khó khăn với các vấn đề mới lạ, kiến trúc hệ thống phức tạp, và duy trì chất lượng code theo thời gian.
Các công cụ hoạt động tốt nhất khi các nhà phát triển duy trì sự giám sát chặt chẽ, cẩn thận xem xét từng dòng code được tạo ra và cung cấp các yêu cầu chi tiết, cụ thể. Điều này đòi hỏi chuyên môn đáng kể để sử dụng hiệu quả - một cách mỉa mai, những nhà phát triển hưởng lợi nhiều nhất từ các công cụ lập trình AI thường là những người ít cần chúng nhất.
Tôi chỉ dành một phần nhỏ thời gian để xác minh sản phẩm LLM của code thông thường so với việc tôi phải viết nó. Tôi không hiểu tại sao mọi người luôn mong đợi điều này là một lời phản bác quyết định.
Công cụ lập trình AI hoạt động tốt nhất cho:
- Tạo mã boilerplate
- Tích hợp API và tra cứu tài liệu
- Chuyển đổi giữa các ngôn ngữ lập trình
- Tạo unit test và comment
- Làm việc với các framework đã được thiết lập ( React , Django , v.v.)
- Xử lý định dạng chuỗi lặp lại và thao tác dữ liệu
Thách thức mô hình tư duy
Một xu hướng đáng lo ngại nổi lên từ các cuộc thảo luận cộng đồng là tác động đến mô hình tư duy của các nhà phát triển về codebase của họ. Khi AI tạo ra những phần lớn code, các nhà phát triển có thể không phát triển được sự hiểu biết sâu sắc như khi họ viết thủ công. Điều này có thể dẫn đến những thách thức trong bảo trì và khó khăn trong việc debug các vấn đề phức tạp sau này.
Một số nhà phát triển có kinh nghiệm lo lắng về một thế hệ lập trình viên phụ thuộc nhiều vào AI mà không xây dựng các kỹ năng giải quyết vấn đề cơ bản. Nỗi sợ là khi các công cụ AI thất bại hoặc tạo ra những lỗi tinh vi, những nhà phát triển này sẽ không có chuyên môn để nhận diện và sửa chữa các vấn đề.
Các nhóm lập trình viên kháng cự nhất với công cụ lập trình AI:
- Những lập trình viên kỳ cựu với hơn 25 năm kinh nghiệm lập trình liên tục
- Các lập trình viên thực sự yêu thích bản thân quá trình viết code
- Những người thích hiểu rõ từng chi tiết trong codebase của họ
- Các lập trình viên làm việc với những vấn đề mới lạ hoặc có tính chuyên môn cao
Tìm kiếm sự cân bằng phù hợp
Bất chấp những lo ngại, nhiều nhà phát triển đang tìm ra cách sử dụng các công cụ lập trình AI một cách hiệu quả mà không rơi vào bẫy máy đánh bạc. Các cách tiếp cận thành công bao gồm sử dụng AI cho các tác vụ cụ thể, được định nghĩa rõ ràng thay vì toàn bộ tính năng, duy trì quy trình review code nghiêm ngặt, và coi AI như một công cụ tự động hoàn thành tinh vi thay vì thay thế cho kiến thức lập trình.
Chìa khóa dường như là hiểu khi nào nên sử dụng AI và khi nào nên code thủ công. AI hoạt động tốt cho các tác vụ thường xuyên, API không quen thuộc, và tạo ra các test case. Nó ít phù hợp hơn cho logic kinh doanh cốt lõi, code quan trọng về hiệu suất, và công việc thuật toán mới lạ.
Khi các công cụ lập trình AI tiếp tục phát triển, cộng đồng nhà phát triển vẫn đang học cách tích hợp chúng một cách hiệu quả vào quy trình làm việc của họ. Phép ẩn dụ máy đánh bạc đóng vai trò như một lời cảnh báo hữu ích về tiềm năng gây nghiện và phụ thuộc quá mức, đồng thời cũng làm nổi bật những phần thưởng không thường xuyên khiến những công cụ này trở nên hấp dẫn khi chúng hoạt động tốt.
Tham khảo: Claude Code is a Slot Machine