Nguồn: madhadron.com
Tóm tắt
Tác giả Frederick Ross lập luận rằng thay vì học nhiều ngôn ngữ lập trình riêng lẻ, lập trình viên nên hiểu bảy “ur-languages” — các mô hình tính toán căn bản mà từ đó mọi ngôn ngữ hiện đại đều xuất phát. Các mẫu lặp (loop patterns) trong C, Java hay Python về cơ bản là giống nhau; điểm khác biệt thực sự nằm ở cấp độ tư duy tính toán sâu hơn.
Bảy ur-languages được đề xuất bao gồm: FORTRAN (tính toán vòng lặp tuần tự), ALGOL (cấu trúc khối và phạm vi biến), LISP (xử lý ký hiệu và đệ quy), APL (thao tác mảng và lập trình hàm ngầm định), SNOBOL (khớp mẫu và xử lý chuỗi), PROLOG (lập trình logic), và Smalltalk (lập trình hướng đối tượng thuần túy). Mỗi ur-language đại diện cho một cách tư duy hoàn toàn khác biệt về tính toán.
Luận điểm của bài viết là: học thêm Java sau khi đã biết C không mang lại nhiều giá trị, nhưng học Haskell sau C sẽ mở ra toàn bộ tư duy lập trình hàm. Nhận biết được ngôn ngữ nào thuộc ur-language nào sẽ giúp lập trình viên học hiệu quả hơn và lựa chọn công cụ phù hợp hơn cho từng loại vấn đề.