Khi các công cụ lập trình AI ngày càng trở nên tinh vi, một cuộc tranh luận đang nổi lên trong giới lập trình viên về việc liệu chúng ta có đang giải quyết đúng vấn đề hay không. Trong khi các trợ lý AI có thể tạo mã nhanh hơn bao giờ hết, nhiều nhà phát triển có kinh nghiệm đặt câu hỏi liệu chúng ta có đơn thuần chỉ đang tự động hóa việc tạo ra các phần mềm tầm thường thay vì giải quyết các vấn đề cốt lõi trong phát triển phần mềm.
Chu kỳ Tái phát minh
Mối quan tâm cốt lõi xoay quanh việc liệu các công cụ lập trình AI có đơn giản chỉ giúp chúng ta tái phát minh chiếc bánh xe nhanh hơn hay không. Các mô hình ngôn ngữ lớn (LLM) tạo mã dựa trên các mẫu mà chúng đã thấy trong dữ liệu huấn luyện - điều này có nghĩa là chúng đặc biệt giỏi trong việc tái tạo các giải pháp vốn đã tồn tại hàng nghìn lần. Như một nhà phát triển nhận xét, điều này gợi ý rằng chúng ta đang bỏ lỡ cơ hội để tạo ra các phép trừu tượng tốt hơn và các khối xây dựng ở cấp độ cao hơn.
Nếu một LLM có khả năng viết mã boilerplate tốt cho bạn thì ngôn ngữ lập trình của bạn đang ở cấp độ quá thấp. Chúng ta cần những ngôn ngữ cấp cao hơn, nơi mà hầu hết các mẫu lặp đi lặp lại được trừu tượng hóa.
Nhận định này làm nổi bật một mâu thuẫn cơ bản: nếu AI có thể dễ dàng tái tạo các mẫu mã phổ biến, tại sao chúng ta chưa xây dựng các hệ thống tốt hơn để loại bỏ hoàn toàn nhu cầu cho công việc lặp đi lặp lại này? Cuộc thảo luận gợi ý rằng chúng ta có thể đang sử dụng công nghệ mới ấn tượng để củng cố các phương pháp lỗi thời thay vì thúc đẩy sự đổi mới có ý nghĩa.
Khoảng cách Thực tế với Sẵn sàng Sản xuất
Một điểm then chốt khác nổi lên từ các cuộc thảo luận của nhà phát triển là sự khác biệt giữa mã nguyên mẫu và phần mềm sẵn sàng cho sản xuất. Nhiều người ủng hộ nhiệt thành nhất cho các công cụ lập trình AI dường như đang tạo ra các nguyên mẫu hoặc học ngôn ngữ mới, hơn là duy trì các hệ thống sản xuất lâu dài. Các nhà phát triển có kinh nghiệm báo cáo rằng trong khi các công cụ AI mang lại sự tiện lợi cho các tác vụ thông thường, chúng không tăng tốc đáng kể công việc phức tạp của việc tạo ra mã chất lượng sản xuất, an toàn, có thể bảo trì.
Cuộc trò chuyện tiết lộ rằng các công cụ AI gặp khó khăn nhất với chính những khía cạnh làm nên sự khác biệt của mã sản xuất: độ tin cậy, bảo mật, khả năng bảo trì và các quyết định kiến trúc tinh tế ảnh hưởng đến sự phát triển lâu dài của hệ thống. Điều này gợi ý rằng những lời ca ngợi lớn nhất về năng suất lập trình AI có thể đến từ những người đang giải quyết các vấn đề khác với những vấn đề mà các nhóm phần mềm doanh nghiệp phải đối mặt hàng ngày.
Điều Trớ trêu về Tài liệu
Có lẽ cái nhìn sâu sắc trớ trêu nhất từ cuộc thảo luận cộng đồng liên quan đến yêu cầu và tài liệu. Các công cụ lập trình AI hoạt động tốt hơn đáng kể khi được cung cấp các yêu cầu rõ ràng và kiến trúc được tài liệu hóa tốt - chính xác là những gì các nhà phát triển con người đã yêu cầu trong nhiều thập kỷ. Các công ty trước đây từng coi việc tài liệu hóa kỹ lưỡng là không cần thiết thì giờ đây đang khám phá ra tầm quan trọng của nó khi làm việc với các trợ lý AI.
Điều này tạo ra một tình huống kỳ lạ khi cùng các tổ chức từng từ chối đầu tư vào tài liệu phù hợp cho các nhà phát triển con người thì giờ đây lại thấy nó thiết yếu cho các công cụ AI. Cộng đồng coi đây là bằng chứng cho thấy chúng ta đang giải quyết các triệu chứng thay vì nguyên nhân - sử dụng AI để khắc phục các quy trình kém thay vì sửa chữa các vấn đề cơ bản.
Vượt ra ngoài Lập trình dựa trên Văn bản
Một số nhà phát triển đang đặt ra những câu hỏi cơ bản hơn về việc liệu bản thân lập trình dựa trên văn bản có phải là mô hình đúng đắn hay không. Cuộc thảo luận khám phá liệu chúng ta có đang mắc kẹt trong các mô hình lỗi thời về việc lập trình nên là gì, với một số bình luận cho rằng các môi trường lập trình trực quan hoặc các ngôn ngữ đặc tả cấp cao hơn có thể đại diện cho tương lai thực sự.
Cuộc thảo luận chạm đến các nỗ lực lịch sử nhằm tạo ra các mô hình lập trình dễ tiếp cận hơn, từ COBOL đến các công cụ lập trình trực quan, và lý do tại sao chúng phần lớn thất bại trong việc thay thế lập trình dựa trên văn bản. Điều này gợi ý rằng ứng dụng có giá trị nhất của AI có thể không phải là tạo ra mã tốt hơn, mà là giúp chúng ta chuyển đổi sang những cách tốt hơn để xác định những gì chúng ta muốn phần mềm thực hiện.
Bối cảnh Lịch sử của các Mô hình Lập trình:
- COBOL: Được tiếp thị như một ngôn ngữ lập trình thân thiện với doanh nghiệp
- Visual Basic: Đã cố gắng làm cho lập trình trở nên dễ tiếp cận hơn
- SQL: Được gọi là "ngôn ngữ lập trình thế hệ thứ tư"
- Các công cụ lập trình trực quan: Nhiều nỗ lực khác nhau về phát triển dựa trên node
- Tất cả đều phải đối mặt với những thách thức về việc chính thức hóa và áp dụng cho các hệ thống phức tạp
Mối quan tâm về Giáo dục và Chất lượng
Các thành viên cộng đồng bày tỏ lo ngại về cách lập trình AI có thể ảnh hưởng đến chất lượng phần mềm và giáo dục nhà phát triển. Nếu các công cụ AI giúp tạo mã dễ dàng hơn mà không cần hiểu các nguyên tắc cơ bản, chúng ta có nguy cơ tạo ra nhiều mã kém chất lượng hơn - phần mềm hoạt động hời hợt nhưng thiếu sự mạnh mẽ cần thiết cho môi trường sản xuất. Cuộc thảo luận gợi ý rằng điều này có thể làm trầm trọng thêm các vấn đề hiện có về chất lượng phần mềm thay vì giải quyết chúng.
Một số người bình luận lưu ý rằng sự phấn khích hiện tại xung quanh lập trình AI thường đến từ những người không thường xuyên viết mã sản xuất, trong khi các nhà phát triển có kinh nghiệm vẫn giữ thái độ kỳ vọng thận trọng hơn. Sự chia rẽ này làm nổi bật cách các quan điểm khác nhau về điều gì cấu thành mã tốt có thể dẫn đến những đánh giá rất khác nhau về giá trị của AI.
Những mối quan ngại chính của cộng đồng về các công cụ lập trình AI:
- Tái tạo lại các giải pháp đã có sẵn thay vì đổi mới sáng tạo
- Khoảng cách giữa mã code nguyên mẫu và phần mềm sẵn sàng cho sản xuất
- Sự mỉa mai khi yêu cầu tài liệu hướng dẫn tốt hơn cho AI so với các lập trình viên con người
- Các câu hỏi về việc liệu lập trình dựa trên văn bản có phải là mô hình phù hợp hay không
- Tác động tiêu cực tiềm tàng đến chất lượng phần mềm và giáo dục lập trình viên
Hướng tới Tương lai
Cuộc thảo luận cộng đồng gợi ý rằng các công cụ lập trình AI đại diện cho công nghệ ấn tượng đang được áp dụng cho các vấn đề sai lầm. Thay vì chỉ đơn giản giúp tạo ra cùng một loại phần mềm nhanh hơn, các nhà phát triển đang đặt câu hỏi liệu chúng ta có nên sử dụng thời điểm này để suy nghĩ lại các khía cạnh cơ bản về cách chúng ta xây dựng phần mềm hay không. Ứng dụng có giá trị nhất của AI có thể là giúp chúng ta chuyển đổi sang các mô hình phát triển tốt hơn thay vì tối ưu hóa các mô hình hiện tại.
Khi công nghệ phát triển, câu hỏi then chốt vẫn còn đó: liệu chúng ta sẽ sử dụng AI để củng cố các thực hành hiện có hay sử dụng nó như một chất xúc tác cho sự cải thiện có ý nghĩa trong cách chúng ta tạo ra phần mềm? Cộng đồng nhà phát triển dường như bị chia rẽ, với một số người thấy sự tiện lợi và những người khác thấy các cơ hội bị bỏ lỡ cho sự tiến bộ thực sự.
Tham khảo: Solving The Wrong Problem
