Với câu hỏi của bạn, tôi tin rằng bạn đang hỏi có bao nhiêu sự phát triển trong tương lai sẽ có thể giảm thiểu khối lượng công việc mà một nhà phát triển phần mềm sẽ phải làm. Ngay cả khi bạn có một AI có thể viết toàn bộ chương trình của mình, bạn vẫn phải nói cho nó biết phải làm gì, giống như đối với một người xây dựng ô tô tự động, bạn vẫn phải cung cấp cho nó một kế hoạch chi tiết, và kế hoạch chi tiết đó đòi hỏi một số công việc.
Và nếu bạn có AI, bạn vẫn phải dạy nó và nó sẽ phải học qua một vài dự án. Do đó, tôi không nghĩ rằng AI phù hợp với loại công việc này, mà là một cách tiếp cận mang tính quyết định hơn, sử dụng các trình tạo mã. Các trình tạo mã này có thể trở nên rất phức tạp, nhưng không nhất thiết phải sử dụng máy học.
Điều đó nói rằng, đã có nghiên cứu trong các lĩnh vực được gọi là Thiết kế phần mềm định hướng tính năng và Thiết kế phần mềm hướng theo khía cạnh. Chúng xử lý việc lắp ráp các ứng dụng phần mềm bằng cách chọn một số tính năng cần có và sau đó mã được tạo cho điều đó. Mục tiêu là có các triển khai cho một số tính năng xuất hiện liên tục trong một miền cụ thể và lắp ráp chúng như các khối xây dựng, phù hợp với ứng dụng cụ thể của bạn. Ví dụ, để phát triển web, các tính năng sẽ bao gồm các giao dịch, số liệu thống kê, khả năng mở rộng, ghi nhật ký và bất cứ điều gì bạn có thể nghĩ là đặc điểm định kỳ của các ứng dụng web khác nhau.
Các tính năng và khía cạnh khác nhau so với các thành phần, vì chúng thường là mối quan tâm xuyên suốt. Lấy ví dụ đăng nhập. Bạn không thể lấy một thư viện và đưa nó vào ứng dụng của bạn và nói rằng bạn đã đăng nhập ngay bây giờ. Bạn phải truyền bá các cuộc gọi đăng nhập của mình trên tất cả các mã của bạn và đó là nơi các trình tạo mã tiện dụng. Gần đây tôi đã nghe về tất cả những thứ này từ cuộc phỏng vấn hai phần này trên Radio Engineering Radio .
Có vẻ như loại nghiên cứu này khá hợp thời ở Châu Âu và đặc biệt là Đức, ngay cả trong ngành, như tôi có thể nói từ kinh nghiệm cá nhân. Tạo mã có thể hữu ích để tạo mã cơ sở hạ tầng cần thiết, để nhà phát triển có thể tập trung hoàn toàn vào việc thực hiện hành vi cụ thể của ứng dụng của mình và không bận tâm đến cùng các vấn đề phụ trên mỗi dự án khác nhau.
Vẫn còn phải xem mã đó dành riêng cho ứng dụng có thể thu hẹp bao nhiêu. Nó chắc chắn không thể được loại bỏ hoàn toàn, chỉ giảm xuống một số loại bản thiết kế, như tôi đã đề cập ở phần đầu.