Cái quái gì thế, tôi sẽ kêu gọi với 0,02 đô la của tôi.
Trong nhiều trường hợp, có một sự khác biệt thực sự hoặc cảm nhận giữa các ngôn ngữ "hệ thống" và ngôn ngữ cấp cao hơn. Tôi sẽ bỏ qua hầu hết các ngôn ngữ "cấp cao hơn", vì không ai (ít nhất là không nhiều) sẽ lập luận rằng đối với nhiều tác vụ, các ngôn ngữ như Python, Ruby, v.v ... đơn giản hơn để làm việc.
C được thiết kế để trở thành ngôn ngữ hệ thống, có nghĩa là nó được thiết kế là ngôn ngữ mà hệ điều hành Unix được viết. Như vậy, nó được thiết kế đơn giản, mạnh mẽ và nhanh chóng. Một ngôn ngữ đơn giản tăng sức mạnh bằng cách có nghĩa là những người không lập trình hệ thống thường coi nguy hiểm: con trỏ, quản lý bộ nhớ thủ công, v.v. Như đã đề cập, C khá đơn giản. K & R là cuốn sách nhỏ nhất trên kệ lập trình của tôi cho đến nay (không tính Tài liệu tham khảo bỏ túi của O'Reilly) và nó chỉ "lớn hơn" một chút so với Tài liệu tham khảo Ruby Pocket của tôi. C khá mạnh. Nếu bạn cần nói chuyện với phần cứng, hãy kiểm tra thủ công và xoay vòng với bộ nhớ, vv C có khả năng.
Tuy nhiên, từ quan điểm của một lập trình viên, C không đơn giản như vậy. Tốc độ và sức mạnh đi kèm với giá quản lý bộ nhớ thủ công và không có nhiều hỗ trợ OOP được tích hợp trong ngôn ngữ. C ++ (không phải ngôn ngữ yêu thích của tôi) đơn giản hơn nhiều từ góc độ của lập trình viên, nhưng đơn giản hơn nhiều so với quan điểm của nhà soạn nhạc. Objective-C (có thể là ngôn ngữ yêu thích của tôi) có cùng sự đánh đổi, với một chút nghiêng về hướng giữ cho ngôn ngữ đơn giản (ví dụ, bộ sưu tập rác là một người mới đến Objective-C). Nhưng vì thế giới điện toán như nhiều người trong chúng ta biết nó được viết bằng C, nên các ngôn ngữ mới hơn, phức tạp hơn nhưng "dễ dàng" hơn để có được sự chấp nhận rộng rãi.
Trong một số trường hợp, đặc biệt là khi "tiêu chuẩn" hiện tại "đủ tốt" như C, đơn giản là không có nhiều động lực cho thứ gì đó "tốt hơn" (C ++, Objective-C, D, v.v.) để đạt được lực kéo, khi có thậm chí là đủ khuyến khích để tạo ra một cái gì đó "tốt hơn".