Nếu nhìn vào mã nguồn, chúng ta có thể thấy C++, Java hay Python có vẻ giống nhau, nhưng thực ra, đằng sau đó, chúng vận hành, thực thi theo những cách rất khác nhau. Trong bài này chúng ta sẽ nghiên cứu xem những khác biệt chính từ đó có thể phát huy điểm mạnh và trường hợp sử dụng của từng ngôn ngữ.
- C++
C++ là một ngôn ngữ biên dịch (compiled language). Quá trình bắt đầu khi mã nguồn được gửi đến Compiler. Compiler phân tích mã nguồn sau đó dịch thành mã máy: các chỉ lệnh đơn giản như add (thêm), move (di chuyển), và jump (nhảy).
Compiler xuất ra một tệp có thể thực thi chứa mã máy. Tệp này là một chương trình độc lập và có thể chạy trên bất kỳ máy tính phù hợp.
Điều này khiến C++ có hiệu suất cực tốt. Nó thường được lựa chọn cho các tác vụ yêu cầu hiệu suất cao như game hoặc lập trình ở mức hệ thống.
Các ngôn ngữ biên dịch như C++, Go, Rust cần nhiều thời gian hơn để biên dịch ban đầu, nhưng chúng chạy rất nhanh vì CPU không cần phải thông dịch hoặc biên dịch mã nguồn.
- Python
Giờ hãy tìm hiểu Python, một ngôn ngữ thông dịch. Nó sử dụng một cách tiếp cận khác, thay vì biên dịch, Python gửi mã nguồn thẳng tới bộ thông dịch. Bộ thông dịch sẽ đọc và thực thi mã nguồn. Điều này khiến cho Python linh hoạt và thân thiện với người dùng.
Nó lý tưởng cho các trường hợp cần việc phát triển nhanh và việc đọc hiểu mã nguồn là rất cần thiết.
Với việc sử dụng thông dịch, Python nổi tiếng đối với các nhà khoa học dữ liệu, giảng viên và nhà phát triển web.
Tuy vậy thì điều này đồng nghĩa với việc nó sẽ chậm hơn các ngôn ngữ biên dịch. Mỗi dòng code phải được thông dịch khi thực thi.
Các ngôn ngữ thông dịch nổi tiếng khác như Javascript, Ruby, Perl.
- Java
Java sử dụng một cách độc nhất, cách tiếp cạch kết hợp. Đầu tiên mã nguồn Java được biên dịch thành bytecode, mã mà sẽ được thực thi bởi JVM (Java Virtual Machine).
JVM có một Just-In-Time compiler, nó sẽ linh động chuyển bytecode thành mã máy tương ứng trước khi thực thi.
Điều này có nghĩa Java nhanh hơn đáng kể so với các ngôn ngữ phiên dịch như Javascript, Ruby, Python.
Một điểm mạnh của Java chính là tính di động. Từ khi JVM có mặt trên mọi hệ điều hành. Java code có thể chạy trên bất kì thiết bị nào mà không cần phải biên dịch lại.
Java cũng được thiết kế bộ nhớ an toàn và bảo mật như tự động quản lý bộ nhớ. Điều này khiến nó phù hợp với các ứng dụng doanh nghiệp phức tạp và lớn, những ứng dụng cần sự ổn định, bảo mật và khả năng mở rộng cao.
(nguồn tham khảo: System Design Interview by Alex Xu & Sahn Lam)
Giảng viên: Lê Thị Anh Đào
Bộ môn Công nghệ Thông tin
Trường Cao đẳng FPT Mạng cá cược bóng đá
cơ sở Đà Nẵng