Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung)
92

Thủ thuật

Terence Tao dùng AI chuyển đổi ứng dụng Java từ năm 1999 sang JavaScript

(giờ Việt Nam)

Tóm tắt AI

Nhà toán học Terence Tao đã sử dụng AI để hiện đại hóa các applet Java cũ thành JavaScript chỉ trong vài giờ. Không chỉ khôi phục thành công, AI còn giúp ông sửa lỗi code gốc và tạo ra các công cụ trực quan hóa toán học mới một cách nhanh chóng.

Bản dịch AI

Old and new apps, via modern coding agents

Tôi đã quan tâm đến các phương pháp hỗ trợ bằng máy tính để thực hiện và giảng dạy toán học từ tận năm 1999, khi tôi bắt đầu lập trình một vài applet bằng Java 1.0 cho các khóa học giải tích phức và đại số tuyến tính của mình, nhằm trực quan hóa các đối tượng toán học mà tôi quan tâm (như cấu trúc tổ ong hay tập hợp Besicovitch). Việc này đạt được thành công ở mức độ vừa phải; tuy nhiên, các applet đó rất tốn thời gian để lập trình, và cuối cùng các tiêu chuẩn cho trang web đã ngừng hỗ trợ phiên bản Java này, khiến các applet không còn hoạt động được nữa.

Tuy nhiên, trong vài ngày qua, tôi đã bắt đầu quá trình chuyển đổi phần lớn dữ liệu từ trang web và blog cũ của mình sang một kho lưu trữ dễ bảo trì hơn, với sự hỗ trợ của AI hiện đại. Như một thử nghiệm, tôi đã yêu cầu tác nhân AI chuyển đổi các applet cũ của mình sang một ngôn ngữ hiện đại được hỗ trợ (chúng tôi đã chọn Javascript), và nó đã thực hiện xong chỉ trong vài giờ. Tất cả các applet cũ của tôi giờ đây đã hoạt động trở lại, thậm chí còn có một vài nâng cấp về đồ họa (ví dụ: applet tập hợp Besicovitch giờ đã có màu sắc, trái ngược với phiên bản đơn sắc ban đầu của tôi). Tôi đặc biệt vui mừng khi thấy applet cấu trúc tổ ong mà tôi viết cùng Allen Knutson vào năm 1999 được hồi sinh, vì đây là một applet đặc biệt khó để lập trình thủ công.

Các tác nhân lập trình dựa trên LLM nổi tiếng là có thể tạo ra nhiều lỗi rõ ràng hoặc tinh vi trong mã nguồn của chúng; nhưng trong quá trình chuyển đổi khoảng hai chục applet này, tôi chỉ tìm thấy một lỗi nhỏ (việc xử lý sự kiện kéo trong một trong các applet giải tích phức có hành vi không mong muốn khi kéo ra ngoài khung chính). Trên thực tế, tác nhân AI còn xác định được hai lỗi trong mã nguồn gốc mà tôi không hề hay biết, vì vậy xét về chất lượng mã nguồn thì kết quả cuối cùng là hòa. Dù sao đi nữa, vì các applet này chỉ đóng vai trò là công cụ hỗ trợ trực quan phụ trợ thay vì là thành phần quan trọng trong một lập luận toán học, nên rủi ro từ các lỗi như vậy là tương đối thấp.

Quá trình này diễn ra khá suôn sẻ đến mức tôi quyết định thử lập trình thêm một số ứng dụng mới, bên cạnh việc chuyển đổi các ứng dụng cũ. Quay lại năm 1999, tôi từng có một ý tưởng đầy tham vọng về một công cụ trực quan hóa cho thuyết tương đối hẹp; đó là thời điểm trước khi công cụ phần mềm Inkscape ra đời, nhưng ý tưởng trong đầu tôi về cơ bản là "Inkscape, nhưng trong không gian Minkowski". Tôi thậm chí đã bắt đầu viết mã Java cho ứng dụng này, nhưng độ phức tạp của mã nguồn đã trở nên quá sức đối với tôi và tôi đã từ bỏ dự án. Tuy nhiên, sau vài giờ "vibe coding" (lập trình theo cảm hứng) với một tác nhân AI, cuối cùng tôi đã có thể tạo ra một applet khớp với tầm nhìn mà tôi từng có vào năm 1999, hiện có thể tìm thấy tại đây. Bản tóm tắt cuộc trò chuyện giữa tôi và tác nhân AI để tạo ra mã nguồn này có thể xem tại đây (nó đã được biên tập lại để lược bỏ một lượng lớn các báo cáo triển khai kỹ thuật tẻ nhạt). Mặc dù tôi đã chơi thử ứng dụng một chút, tôi vẫn rất mong nhận được thêm phản hồi về phiên bản "alpha" này của applet, vì tôi chắc chắn rằng (đặc biệt là với mã nguồn do LLM tạo ra) vẫn còn một số lỗi và điểm chưa hoàn thiện cần được khắc phục.

Sau khi viết bài blog về bài báo phỏng đoán Gilbreath vào đầu ngày hôm nay, tôi nhận ra rằng mình cũng có thể yêu cầu tác nhân AI lập trình một công cụ trực quan hóa cho phỏng đoán Gilbreath để đi kèm với bài báo và bài blog đó. Sau vài giờ trò chuyện nữa, công việc này đã hoàn thành; bạn có thể dùng thử công cụ trực quan hóa tại đây. Một lần nữa, quy trình này khá dễ dàng (xem bản ghi chép quá trình này), và tôi nghĩ mình có thể sẽ thêm các công cụ trực quan hóa tương tác như vậy làm phần bổ sung cho các bài báo trong tương lai; vì những phần bổ sung này không mang tính quyết định đối với nội dung cốt lõi của bài báo, tôi cảm thấy rủi ro khi sử dụng sự tương tác có hướng dẫn với các tác nhân LLM để tạo ra các hình ảnh trực quan như vậy là hoàn toàn chấp nhận được.

Terence TaoAI lập trìnhJavaJavaScriptCông nghệ
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.