Không biết vì lý do gì mà các tài liệu học học lập trình Pascal ở Việt Nam chỉ lập trình dạng thủ tục, không thấy nói về lập trình hướng đối tượng (OOP). Chủ yếu dùng ngôn ngữ Pascal để làm toán, giải thuật, không có tài liệu hướng dẫn lập trình ứng dụng (hoặc mình không tìm thấy ? ). Thực tế Pascal thời xưa đã hỗ trợ lập trình OOP, lập trình với giao diện người dùng TUI - Text User Interface rất tốt dựa trên nền tảng Turbo Vision mà thế giới họ đã dùng để làm phần mềm ứng dụng rồi.
...
AlGol 60 được ra đời để tiêu chuẩn hóa lập trình cấu trúc và để tách rời khỏi ảnh hưởng của IBM (thời đại thập niên 1960's thì IBM còn là chúa tể).
Tuy nhiên Algol vẫn còn nhiều chỗ bó buộc và rất khó học cho nên Pascal được sử dụng như ngôn ngữ để dạy học. Và vào thời điểm ấy, hầu như tất cả các Đại Học Mẽo ủng hộ điều này.
Ngoài việc dạy học thì kẻ đưa Pascal lên hàng thông dụng là Borland, khi họ cho xài Turbo Pascal miễn phí.
Việc ĐH dạy Pascal vì vậy không chỉ xảy ra ỏ Việt Nam. Mà là hầu hết trên thế giới.
Theo thiển ý của tôi thì nếu không có Unix thì C/C++ khó chen chỗ đứng và Pascal vẫn còn đứng địa vị rất cao. Chú thích: C theo tiêu chuẩn Unix, dùng cấu trúc "thông ống/piping" cho nên chạy rất hiệu quả. Cho đến thời điểm này, tôi vẫn chưa thấy bằng chứng là Pascal hay các hậu duệ của nó cho phép pipe.
LTHĐT (OOP) ngày xưa rất ít người thông suốt (ngày nay, đếm ở VN cũng chẳng có mấy tay). Ngôn ngữ áp dụng được HĐT là ADA và Modula 3.
Tiêu chuẩn "thông suốt" của tôi không cao lắm, nhưng vẫn có thể gọi là khắt khe đối với nhiều người trên diễn đàn này. Đối với tôi, thông suất HĐT thì phải biết:
1. cách bảo vệ các thuộc tính private và trưng bày giao diện.
2. biết và thành thạo cách thiết kế lớp chủ và cách thức thừa kế cho các lớp con cháu.
3. cách làm việc với đa hình thì chỉ cần biết sơ, không quan trọng lắm.
Như vậy mới gọi là LTHĐT. Kỳ dư kiến thức của hầu hết dân diễn đàn này chỉ là sử dụng đối tượng.
Với điều kiện của tôi thì có lẽ Java mới đáp ứng được tốt nhất. Các ngôn ngữ thoát thai từ Java như JavaScript tuy đáp ứng được nhưng thông thường ta viết class trên Java và import chúng vào bài của mình viết trên ngôn ngữ khác.
Chú thích về từ "Piping":
Trong C, ví dụ a có lệnh x = 5 thì 5 là biểu thức bên phải, x là biểu thức bên trái. Piping có nghĩa là cả lệnh trên có thể coi như có trị 5 và có thể dùng để gán qua nơi khác.
y = z = x = 5; // sau lệnh này thì cả x, y, z đều được gán trị 5.
f(x=5); lệnh này gán 5 cho x và nạp 5 làm tham số cho hàm f(int x).