Trước hết, xin lưu ý rằng nhiều ngôn ngữ lập trình hiện đang được sử dụng (đặc biệt là "ngôn ngữ cấp cao hơn") là đa mô hình . Điều đó có nghĩa là bạn không bao giờ xây dựng các chương trình hoàn toàn là OOP (ngoại trừ trường hợp bạn có thể sử dụng Smalltalk hoặc Eiffel để xây dựng các dự án lớn của mình).
Hãy xem PHP chẳng hạn:
- Có nhiều yếu tố của OOP (kể từ phiên bản 5)
- Trước đây chủ yếu là thủ tục
- Có các phần tử của lập trình khai báo (ví dụ: các hàm mảng)
- Đã triển khai nhiều yếu tố của lập trình chức năng (kể từ phiên bản 5.4)
Về cơ bản, PHP đang dán nhiều mô hình khác nhau lại với nhau (và bản thân nó là một "ngôn ngữ keo").
Ngoài ra Java còn triển khai rất nhiều khái niệm không phải từ mô hình hướng đối tượng (ví dụ: từ lập trình chức năng).
Xem danh sách ngôn ngữ lập trình theo loại trong Wikipedia: https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Imperative_languages (không chính xác 100%).
Lập trình hàm (tập con của lập trình giải mã)
- Wideley được sử dụng trong thực tế (nó đã trở thành một phần của các ngôn ngữ gắn kết như PHP , Java và nhiều ngôn ngữ khác đã triển khai các khái niệm về lập trình hàm)
- Nhiều ý tưởng bắt nguồn từ LISP, điều này chắc chắn đáng xem
- Bạn có thể xây dựng toàn bộ ứng dụng, ví dụ như với Haskell do đó nó có thể "thay thế" OOP
Lập trình thủ tục
- C (như một ngôn ngữ chủ yếu là thủ tục) vẫn là một trong những ngôn ngữ được sử dụng rộng rãi nhất
- Nhiều ngôn ngữ keo hiện đại là thủ tục vào thời kỳ đầu
- Vẫn còn nhiều chương trình chủ yếu là thủ tục (vì vậy nếu bạn muốn nó có thể "thay thế" OOP)
Lập trình logic
- Ví dụ nổi bật nhất là Prolog. Điều này được sử dụng cho các tác vụ cụ thể được hưởng lợi từ các truy vấn logic dựa trên quy tắc
- Không thể "thay thế" OOP trong điều kiện xây dựng một dự án lớn nhưng có thể thay thế nó trong điều kiện khác
Ngôn ngữ khai báo / ngôn ngữ dành riêng cho miền nói chung
- Sử dụng SQL trong các dự án của bạn? Sau đó, chúng không hoàn toàn là OOP, SQL về cơ bản là khai báo.
- Nhiều ngôn ngữ dành riêng cho miền (như CSS) là ngôn ngữ khai báo
Lập trình mệnh lệnh nói chung
Danh sách này không hoàn chỉnh, nó sẽ chỉ đưa ra một ý tưởng. Chỉ cần lưu ý rằng bạn thường sử dụng nhiều mô hình khác nhau khi viết một ứng dụng lớn và thậm chí mỗi ngôn ngữ bạn đang sử dụng đang triển khai nhiều mô hình.
OOP thường được coi là một lựa chọn tốt để cấu trúc các mối quan hệ lớn, phức tạp khi mô hình hóa dữ liệu. Nó không phải lúc nào cũng đồng hành với nhiều nhiệm vụ khác.