Bài học 1978 của Dijkstra: Vì sao lập trình bằng ngôn ngữ tự nhiên là ảo tưởng

Công nghệ23 tháng 10, 2026·5 phút đọc

Năm 1978, Edsger Dijkstra đã viết bài tiểu luận nổi tiếng phản bác ý tưởng lập trình bằng ngôn ngữ tự nhiên. Gần nửa thế kỷ sau, khi các mô hình ngôn ngữ lớn bùng nổ, những lập luận của ông về giới hạn của sự mơ hồ và giá trị của ký hiệu hình thức vẫn còn nguyên tính thời sự.

Trong bối cảnh làn sóng AI tạo sinh đang khiến nhiều người tin rằng chỉ vài câu lệnh bằng tiếng Việt hay tiếng Anh là đủ để "ra lệnh" cho máy tính làm mọi thứ, một tiểu luận viết từ năm 1978 của Edsger W. Dijkstra — một trong những người đặt nền móng cho khoa học máy tính hiện đại — đang được cộng đồng công nghệ quốc tế chia sẻ lại rộng rãi. Bài viết có tiêu đề On the foolishness of "natural language programming" (Về sự ảo tưởng của "lập trình bằng ngôn ngữ tự nhiên") đưa ra những lập luận sắc bén mà cho đến nay vẫn chưa hề cũ.

Giấc mơ cũ: ra lệnh cho máy như nói với người

Dijkstra mở đầu bằng việc chỉ ra rằng ngay từ những ngày đầu của máy tính tự động, đã có người coi việc lập trình đòi hỏi sự cẩn trọng và chính xác của ký hiệu hình thức là một "khuyết điểm". Họ đổ lỗi cho cỗ máy vì sự phục tùng máy móc của nó: nó thực hiện mệnh lệnh một cách nghiêm ngặt, kể cả khi chỉ cần một phút suy nghĩ là nhận ra mệnh lệnh đó có lỗi hiển nhiên.

Để dễ dùng hơn, người ta đã đề xuất thiết kế những cỗ máy có thể được chỉ dẫn bằng tiếng mẹ đẻ. Lập luận nghe có vẻ hợp lý: nếu máy gánh vác nhiều hơn, con người sẽ nhẹ nhõm hơn. Nhưng liệu lập luận này có đứng vững?

Giao diện không phải là phép chia đơn giản

Điểm cốt lõi trong lập luận của Dijkstra nằm ở cách nhìn về giao diện. Ông cho rằng lựa chọn giao diện không phải là việc chia đều một khối lượng công việc cố định, bởi công sức để phối hợp và giao tiếp qua giao diện phải được cộng thêm vào. Kinh nghiệm thực tế cho thấy thay đổi giao diện có thể làm tăng công việc ở cả hai phía, thậm chí tăng mạnh.

Chính vì thế mà ngày nay người ta ngày càng ưa chuộng cái được gọi là "giao diện hẹp" (narrow interface).

Do đó, dù chuyển sang giao tiếp bằng ngôn ngữ tự nhiên sẽ làm tăng gánh nặng cho máy rất nhiều, chúng ta vẫn phải đặt câu hỏi liệu điều đó có thực sự đơn giản hóa cuộc sống của con người.

Bài học từ lịch sử toán học

Để chứng minh, Dijkstra nhìn lại lịch sử toán học. Toán học Hy Lạp bị đình trệ vì vẫn là hoạt động bằng lời nói và hình ảnh. "Đại số" Hồi giáo sau một lần thử chạm đến ký hiệu đã chết khi quay về lối diễn giải bằng lời. Thế giới hiện đại chỉ có thể trỗi dậy khi Tây Âu thoát khỏi xiềng xích của kinh viện trung cổ — một nỗ lực vô vọng nhằm đạt tới sự chính xác bằng lời — nhờ những hệ thống ký hiệu hình thức được thiết kế có ý thức bởi Vieta, Descartes, Leibniz và sau đó là Boole.

Ông cũng chỉ ra một góc nhìn quan trọng:

  • Ưu điểm của văn bản hình thức là các phép biến đổi của chúng chỉ cần thỏa mãn vài quy tắc đơn giản để hợp lệ.
  • Đây là công cụ cực kỳ hiệu quả để loại bỏ mọi thứ vô nghĩa mà ngôn ngữ tự nhiên gần như không thể tránh khỏi.

Thay vì coi việc dùng ký hiệu hình thức là gánh nặng, Dijkstra cho rằng ta nên xem đó là đặc ân: nhờ có chúng, trẻ em đi học có thể làm được những điều mà ngày xưa chỉ thiên tài mới làm được.

Kết luận gây tranh cãi

Điểm châm biếm sâu sắc nhất của bài viết là khi tác giả chỉ ra rằng "tính tự nhiên" của ngôn ngữ mẹ đẻ thực chất chỉ là sự dễ dàng tạo ra những phát biểu mà cái vô nghĩa của chúng không dễ nhận ra. Ông cũng nhắc đến hiện tượng "mù chữ mới" (The New Illiteracy): sự suy giảm khả năng sử dụng ngôn ngữ hiệu quả ngay cả với những người lẽ ra phải nắm vững nó.

Giả thuyết của tôi là: máy móc được lập trình bằng tiếng mẹ đẻ — dù là tiếng Hà Lan, Anh, Mỹ, Pháp, Đức hay Swahili — sẽ khó chế tạo chẳng kém gì khó sử dụng.

Vì sao điều này vẫn đúng với độc giả Việt Nam hôm nay

Gần 50 năm sau, khi các chatbot AI có thể sinh mã nguồn từ một câu mô tả tiếng Việt, nhiều người vội kết luận rằng "lập trình bằng ngôn ngữ tự nhiên" cuối cùng đã thành hiện thực. Nhưng thực tế trong các dự án phần mềm cho thấy bức tranh phức tạp hơn:

  • Mô hình AI vẫn cần các đặc tả chính xác để hiểu đúng yêu cầu; sự mơ hồ của ngôn ngữ tự nhiên chuyển hóa thành lỗi khó truy vết.
  • Kiểm chứng kết quả đầu ra đòi hỏi người kỹ sư hiểu rõ ngôn ngữ hình thức mà máy tạo ra.
  • Kỹ năng đặt câu lệnh (prompt) tốt thực chất chính là kỹ năng diễn đạt các ràng buộc một cách có cấu trúc — gần với tư duy hình thức hơn là nói năng hàng ngày.

Nói cách khác, AI không xóa bỏ nhu cầu về ký hiệu hình thức; nó chỉ đặt ra thách thức mới trong việc thiết kế những giao diện hẹp nhưng đủ biểu đạt giữa con người và máy móc. Với các kỹ sư phần mềm Việt Nam đang ngày càng phụ thuộc vào công cụ AI, bài học của Dijkstra là lời nhắc rằng sự rõ ràng và chính xác không phải là rào cản, mà chính là công cụ để làm việc hiệu quả.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗