Phê phán sự ngớ ngẩn của lập trình bằng ngôn ngữ tự nhiên
- Ngay từ thời kỳ đầu của máy tính tự động, đã có những người không hài lòng với cách lập trình đòi hỏi hệ ký hiệu hình thức
- Máy móc là “nô lệ trung thành” chỉ thực hiện đúng các lệnh được giao, nên ngay cả lỗi hiển nhiên cũng cứ thế được thực thi
- Một số người kỳ vọng rằng thay vì bỏ qua lỗi và tiếp tục chạy, máy sẽ hành xử “hợp lý” hơn
Sự xuất hiện và phát triển của ngôn ngữ lập trình bậc cao
- Ngôn ngữ máy được xem là một giao diện nguy hiểm vì hầu như không có phát hiện lỗi hay dư thừa bảo vệ
- Vì vậy, các ngôn ngữ lập trình bậc cao đã ra đời, cùng với những tiến bộ như thông báo lỗi để ngăn ngừa kết quả sai
- Tuy nhiên, lập trình vẫn đòi hỏi ký hiệu hình thức và vẫn cần độ chính xác tỉ mỉ
Lập luận ủng hộ việc lập trình bằng ngôn ngữ tự nhiên và phản biện đối với nó
- Đã từng có lập luận rằng nếu điều khiển máy bằng ngôn ngữ tự nhiên thì người dùng sẽ thoải mái hơn
- Lập luận này cho rằng khi máy trở nên phức tạp hơn, cách đó có thể hữu ích cho người dùng
- Nhưng thay đổi giao diện không điều chỉnh việc phân chia công việc, mà ngược lại còn làm phát sinh thêm khối lượng hợp tác và giao tiếp
- Trên thực tế, giao diện càng mở rộng thì khối lượng công việc ở cả hai phía thường càng tăng, khiến mọi thứ trở nên phức tạp hơn
Các ví dụ lịch sử về toán học và hệ ký hiệu
- Toán học Hy Lạp cổ đại dừng lại ở cách tiếp cận thiên về ngôn ngữ và hình vẽ, nên sự phát triển bị đình trệ
- Toán học Hồi giáo cũng bị gián đoạn vì không chấp nhận hệ ký hiệu
- Châu Âu đã đạt được bước nhảy vọt nhờ những nhân vật như Vieta, Descartes, Leibniz và Boole đưa vào các hệ ký hiệu hình thức
Ưu điểm của ngôn ngữ hình thức và giới hạn của ngôn ngữ tự nhiên
- Ngôn ngữ hình thức có thể ngăn ngừa nhiều lỗi chỉ với một vài quy tắc đơn giản
- Ký hiệu hình thức giúp cả sinh viên cũng có thể thực hiện tư duy logic vốn trước đây chỉ những thiên tài mới làm được
- Ngôn ngữ tự nhiên mơ hồ và dễ lẫn những lời vô nghĩa, nên không phù hợp cho biểu đạt logic không sai sót
Nếu ngôn ngữ tự nhiên là phương thức nhập/xuất duy nhất thì sao?
- Nếu ngay từ đầu con người chỉ điều khiển máy bằng ngôn ngữ tự nhiên, cuối cùng chúng ta vẫn sẽ cần một quá trình “bootstrap” để quay lại hệ thống hình thức
- Quá trình này có thể mất hàng nghìn năm, và rốt cuộc vẫn sẽ dẫn đến ngôn ngữ hình thức
Sự thoái lui trong giáo dục và hiện tượng “mù chữ kiểu mới”
- Trong vài thập kỷ gần đây, do sự suy yếu của rèn luyện trí tuệ, nhiều người thậm chí không thể sử dụng đúng cả tiếng mẹ đẻ của mình
- Hiện tượng tràn ngập những lời lẽ vô nghĩa trong các bài báo khoa học, báo cáo kỹ thuật và văn bản chính phủ là minh chứng cho điều đó
- Hiện tượng này khiến người ta có thể dự đoán trước sự thất bại của lập trình bằng ngôn ngữ tự nhiên
Trực giác kết luận
- Việc tạo ra một cỗ máy có thể được lập trình bằng ngôn ngữ tự nhiên sẽ khó chẳng kém gì việc sử dụng chính nó
1 bình luận
Ý kiến trên Hacker News
Có ý kiến cho rằng việc bênh vực LLMs (mô hình ngôn ngữ lớn) là điều “ngầu”
Gợi nhớ đến một câu trích dẫn cũ của Hal Abelson
Ngôn ngữ tự nhiên có những giới hạn bắt nguồn từ giới hạn nhận thức của con người
Máy ngôn ngữ được xem là một giao diện nguy hiểm một cách không cần thiết
Thay vì tạo chương trình máy tính bằng ngôn ngữ tự nhiên, nó cần được thực thi trực tiếp
Ngôn ngữ tự nhiên không phù hợp để truyền đạt quy tắc và mệnh lệnh
Ngôn ngữ cho một miền cụ thể cung cấp độ chính xác và rõ ràng mà ngôn ngữ tự nhiên không thể mang lại
Forth, PostScript, Assembly là những ngôn ngữ lập trình “tự nhiên” phù hợp với môi trường thực thi mã
Các phương pháp lập trình bậc cao sẽ bắt đầu trông giống ngôn ngữ lập trình hơn là ngôn ngữ tự nhiên
Việc sai sót xuất hiện dưới dạng thông báo lỗi là một cải tiến lớn