Sự thân thiện với phần cứng máy tính
Nếu xét về sự thân thiện với phần cứng máy tính có thể chia ngôn ngữ lập trình ra thành 3 bậc như sau:
- Ngôn ngữ lập trình bậc thấp
- Ngôn ngữ lập trình bậc trung
- Ngôn ngữ lập trình bậc cao
C
là ngôn ngữ lập trình lâu đời kế sau hợp ngữ, có thể được xem là ngôn ngữ lập trình bậc thấp vì nó đơn giản hơn về cấu trúc thủ tục lập trình mà vẫn giữ được tốc độ gần như so với hợp ngữ, cho nên C
là lựa chọn đầu tiên để xây dựng các chương trình nhúng, xây dựng hệ điều hành, chương trình lõi, ...v.v.
C++
là phiên bản mở rộng của C
, C++
được tạo ra với mục đích khắc phục một số tính năng thiếu hụt của C
như hỗ trợ lập trình hướng đối tượng trong khi vẫn giữ được những tính năng ban đầu và tốc độ thực thi của C
. Trình biên dịch của C++
chuyển mã nguồn trực tiếp thành mã máy, hoàn toàn không có một lớp ảo hóa nào ở giữa, cho nên C++
có thể được xem là ngôn ngữ lập trình bậc trung.
C#
không giống như hai ông trên, hoàn toàn là một ngôn ngữ lập trình hướng đối tượng bậc cao tương tự như các ngôn ngữ lập trình bậc cao khác (Java, Python, ...), C#
hỗ trợ rất nhiều tính năng giúp lập trình viên dễ dàng lập trình hơn. Tương tự như Java hoặc Python, mã nguồn C#
được chuyển thành bytecode
thực thi trên máy ảo CLR (Common Language Runtime) trước khi nó chuyển thành mã máy.
Cơ chế dọn rác tự động (Garbage Collection)
C
và C++
không có cơ chế dọn rác tự động, nhưng đổi lại bạn được phép trực tiếp thao tác quản lý vùng nhớ của mình.
C#
hỗ trợ cơ chế dọn rác tự động, hoạt động như người vô hình giúp bạn quản lý vùng nhớ hiệu quả hơn mà không cần bạn nhúng tay vào.
C++ là ngôn ngữ mở rộng của C, còn C# là ngôn ngữ khác biệt được phát triển dựa theo nền tảng C.
Link tham khảo: Sự khác biệt giữa C, C++ và C#